Argus
Message support

The UCI messages Argus speaks.

The C2 Minimum Message Set is 262 messages. A-GRA requires correctness on the interactions a C2 application implements, not coverage of all of them, so Argus grows this set in tiers, in the order that best tests the pipeline.

LegendLive in the router table or template store todayNext the next tier being builtPlanned designed, scheduled afterDeferred intentionally out of scope for now

Direction is from the point of view of Argus: out means Argus sends, in means Argus receives. Names are the UCI message types without their MT suffix.

Tier 0 — Envelope and session

Nothing works without these. Everything Argus sends rides inside a DataPayload command; everything it receives arrives inside a DataPayload.

MessageDirRoleStatus
MA_TxDataPayloadCommandoutThe envelope every outbound message rides inLive
MA_RxDataPayloadinThe envelope every inbound message arrives inLive
MA_TxDataPayloadCommandStatusinTransmission status from the busPlanned
SystemStatusin / outHeartbeat both ways; inbound it classifies each platformLive
Operatorin / outDeclares the operator role; the entry point to commandingPlanned
MA_OperatorRolein / outThe role roster, broadcast on every changePlanned
MA_SystemNotificationin / outCOP acknowledgement out; unauthorized replies inPlanned

Tier 1 — The picture

Three disjoint feeds, selected by message type: ownship, our own platforms, and the fused picture.

MessageDirRoleStatus
MA_PositionReportDetailedinOwnship only: the platform this console is aboardLive
MA_PositionReportinSelf-reports from each autonomous platformLive
NavigationReportinFuel and navigation state on the same streamPlanned
Entityin / outThe fused picture from a COP leader; inbound firstPlanned
PackageStatusinTeam membership and healthPlanned

Tier 2 — First command: MA_FlightCommand

The best test of the pipeline: the only fully specified end-to-end status lifecycle, with accept, reject, an activity loop, and a counter-proposal.

MessageDirRoleStatus
MA_FlightCapabilityin / outWhat the platform can currently do; the second gateNext
MA_FlightCapabilityStatusinAvailability changes mid-missionNext
MA_FlightCommandoutThe command: direct heading, speed and altitude, or waypointsNext
MA_FlightCommandStatusinReceived, accepted, or rejectedNext
MA_FlightActivityinOngoing execution feedbackNext
MA_Taskin / outThe counter-proposal of the platform on rejectionNext

Tier 3 — Return to base by plan activation

Cheap once Tier 2 exists and operationally essential. Activation acknowledges normally, so it reuses the same state machine.

MessageDirRoleStatus
MA_MissionPlanActivationCommandoutActivate a pre-loaded plan, RTB includedPlanned
MA_MissionPlanActivationCommandStatusinAccept or rejectPlanned
MA_MissionPlanActivationStatusinWhich plans are activePlanned
MA_MissionPlanExecutionStatusinExecution progressPlanned

Tier 4 — Task-level command

Tell a platform what to achieve rather than how to fly. CAP first: positional, renders on a map, and carries no weapons path.

MessageDirRoleStatus
MA_Taskin / outThe task; CAP first, then FlightPlanned
MA_TaskStatusinExecution statePlanned
MA_CAP_ExecutionStatusReportinCAP-specific feedbackPlanned
MA_TaskPlanin / outTask plan containerPlanned

Tier 5 — Obligations

Not commands, but a C2 node that ignores these is a broken peer. A platform may be blocked awaiting an approval it never gets.

MessageDirRoleStatus
MA_ApprovalRequestinThe platform asks Argus to approve its own actionPlanned
MA_ApprovalRequestStatusoutThe answer; the platform may be waiting on itPlanned
MissionContingencyAlertinComms loss and other stateful conditionsPlanned

Deferred, with reasons

Strike and weapons employment

Deferred

A Strike task pulls in target designation, release consent, engagement zones, shot queues, rules of engagement, and approval routing. A strike task without them is a half-wired weapons path, so it waits until the whole flow is in scope.

Mission plan upload

Deferred

The one operation with no success acknowledgement. Plan activation assumes plans are already loaded through the normal mission-data path.

Contributing tracks to fusion

Deferred

Entity inbound is Tier 1. Publishing our own tracks to the COP leader comes later.

Everything else in the 262

Deferred

Sensor tasking, communications management, geozones, tactics, threat assessment, and debrief grow with adoption. The standard requires correctness on what is implemented, not coverage.

On the wire

Envelope

Every message is a JSON object keyed by its message name, carrying SecurityInformation, MessageHeader, and MessageData. Outbound rides inside MA_TxDataPayloadCommand; inbound arrives inside MA_RxDataPayload with the inner message hex-encoded in EncodedPayload.

Transport

OWP over WebSocket to the LA-CAL broker: INIT, PUB, SUB, and UNSUB out; +OK, -ERR, INFO, and MSG in. The session reconnects on its own and replays subscriptions.

Identity

UUIDs travel as bare 32-digit lowercase hex, the lexical form of the schema's 16-byte hexBinary type. Every participant on the bus mints its own and all of them agree on the form.