accepted: the action may execute), and execution. Approval and queueing are states between the first two, so a human taking sixty seconds to approve never breaks the admission bound.
Actions are typed. The world’s manifest declares each action type as a JSON Schema with units and ranges:
awp:action-schema
- Idempotency — every submission carries a client-generated
action_id; resubmission after reconnect with the same content is safe, and the same id with different content is refused. - Exactly one outcome — every action reaches one terminal state; its notification may be redelivered after a reconnect, so agents deduplicate on
(action_id, status_seq). - Validation — worlds MUST validate params against the schema and reject out-of-range values before execution.
- Preemption policy — each type declares what a new action does to a running one:
queue,replace,blend, orreject. See preemption. - Approval — types marked
requires_approvalpause at the boundary for a human or supervisor. See approval.