The CAD module stores transient operational state for dispatch activity, assignments, dispatch orders, support requests, group profiles, grouped views, and hydrated UI payloads. CAD state is in-memory and follows the active server or mission lifecycle.
Data Model
Most CAD records are flexible JSON objects. The service normalizes important
IDs and returns structured mutation results for higher-level workflows.
Common generated IDs:
Orders: cad-order:<sequence>
Requests: cad-request:<sequence>
Assignments usually share a task ID or order ID.
Commands
Activity
Command
Arguments
Returns
cad:activity:append
activity_json
OK.
cad:activity:recent
limit
Recent activity array JSON.
Assignments
Command
Arguments
Returns
cad:assignments:list
none
Assignment array JSON.
cad:assignments:assign
entry_id, assignment_json
Assignment mutation result JSON.
cad:assignments:acknowledge
entry_id, patch_json
Assignment mutation result JSON.
cad:assignments:decline
entry_id, patch_json
Assignment mutation result JSON and removes assignment.
cad:assignments:upsert
entry_id, assignment_json
OK.
cad:assignments:delete
entry_id
OK.
Orders
Command
Arguments
Returns
cad:orders:list
none
Order array JSON.
cad:orders:create
order_seed_json
Dispatch order mutation result JSON.
cad:orders:create_from_context
context_json
Dispatch order mutation result JSON.
cad:orders:close
entry_id
Dispatch order mutation result JSON and removes order/assignment.
Task contracts have two separate phases. Dispatch assignment reserves a
contract for a group and sets the CAD assignment state to assigned, but it
does not accept or start the task. The assigned group leader must acknowledge
the assignment before task ownership is bound and task logic starts. If the
leader declines, the CAD assignment is removed and the contract returns to the
open board. Task status follows the same lifecycle: available on creation,
assigned after dispatch assignment, and active after acknowledgement.