Skip to content

Campaign Request Basics

The versioned input for astraeus campaign-plan is normally written in YAML with schema_version: campaign_plan_request_v1.

Main Blocks

Block Purpose
campaign Campaign ID, type, objective, and high-level constraints.
deployment_assets Launchers, OTVs, carriers, availability, release policy, and initial state.
satellites Explicit spacecraft to place.
satellite_groups Compact repeated spacecraft definitions.
target_structure Requested planes, slots, distribution, and orbital target.
assignment Automatic assignment policy and deliberate overrides.
environment Reference epoch and related planning context.
solver Strategy, refinement, execution, and artifact-detail policy.

A request needs campaign, deployment_assets, target_structure, and either explicit satellites or satellite groups.

Compact Example

schema_version: campaign_plan_request_v1
campaign:
  campaign_id: deployment-study
  type: constellation_deployment
  objective:
    plane_count: 2
    slots_per_plane: 2
    target_orbit:
      apo_alt_km: 500
      peri_alt_km: 500
      tolerances:
        apo_alt_km: 1
        peri_alt_km: 1
  constraints:
    max_campaign_duration_s: 172800
deployment_assets:
  - asset_id: launcher-1
    asset_type: launcher_insertion
satellite_groups:
  - satellite_id_prefix: STUDY-SAT
    count: 4
    deployed_by: launcher-1
target_structure:
  distribution_mode: round_robin
  planes:
    - plane_id: plane-1
      slot_count: 2
    - plane_id: plane-2
      slot_count: 2
solver:
  strategy_id: constellation_deployment

The deployment example adds initial orbit, spacecraft, propulsion, assignment, and epoch detail needed for an executable study.

Assets And Spacecraft

Campaigns are asset-centered. Each satellite or group names the asset that deploys it; the asset's type, availability, release timing, and initial orbital state affect assignment and mission generation.

Use satellites when spacecraft differ materially or must carry explicit IDs. Use satellite_groups when repeated spacecraft share mass and propulsion assumptions. Group expansion still produces individual assignments and missions in the result.

Targets And Assignment

target_structure defines what completion means. Plane and slot counts, distribution policy, orbital targets, tolerances, and campaign constraints should be explicit enough that campaign_summary.target_summary can explain closure.

Automatic assignment is the normal baseline. Add overrides only for deliberate constraints or comparison cases; extensive overrides can obscure whether the strategy itself is effective.

Solver And Artifact Detail

The solver selects a compatible strategy and may refine assignment or timing. The common artifact policies are:

  • summary: one self-contained campaign result
  • full: the result plus per-satellite mission side bundles

Begin with summary mode. Full mission bundles increase output volume and are most useful after the campaign summary identifies specific missions for investigation.

Validate every edited request before execution:

astraeus campaign-plan validate --input <request.yaml>

For exact fields and constraints, use the Campaign request reference. Next: Running campaigns.