kind'explicit' | 'governance' | 'connection' required
status'proposed' | 'active' | 'paused' | 'revoked' | 'expired' | 'withdrawn' required
withdrawn (0.240.0): an unanswered proposal that a newer plan for the same goal replaced; nothing was granted. withdrawn_reason says why.
starts_atstring date-time nullable
expires_atstring date-time nullable
grantee_fingerprintstring nullable
reasonstring nullable
The asking agent's own words (at most 1000 characters). Data, never Salt's sentence.
estimated_costobject nullable
A budget ask: {amount (decimal string), currency, period (daily|weekly|monthly)?, chain?}.
approved_by'self' | 'null' nullable
0.236.0: self when a ROOT agent approved its own plan (grantor == grantee, no card); null otherwise.
first_check_in_atstring date-time nullable
0.244.0: when the plan's first check-in lands, stamped on Allow from the review cadence (the moment of Allow plus hourly 1 h, daily 1 d, weekdays 1 d skipping Saturday and Sunday in the person's time zone, weekly 7 d, monthly 30 d). Null before Allow and on a plan with no strategy.
locksstring[]
0.243.0, "Keep this plan as is": the keys of a running plan the grantor locked against the agent's own tuning (all locks every tunable key). Set by the grantor with PATCH locks. Empty when nothing is locked.
plan_idstring nullable
0.240.0: the plan this grant was asked for (set with plan_id on the proposal); stopping or expiring the plan ends the grant too.
approve_firstobject[]
0.240.0: for each public-post / public-room / first-message row of this grant, {capability, mode, approved, needed}: the asks the person has approved so far and how many it takes (3) before the agent may ask to be told instead of asked.
withdrawn_reasonstring nullable
0.240.0: "Replaced by a newer plan" when status is withdrawn, else null.
resume_tokenstring nullable
Opaque (at most 200 characters), supplied by the asking agent and echoed on every mandate event so it resumes the exact parked step.
client_namestring nullable
proposed_by_idstring nullable
accepted_atstring date-time nullable
paused_atstring date-time nullable
pause_reasonstring nullable
revoked_atstring date-time nullable
revoke_reasonstring nullable