The flag word

requestAction returns a flag word and emits it on IntentRecorded before the pass/fail branch. Zero means the action executed. Anything else means it was held, and each bit names the clause it is written down as.

BitFlagMeaningClause
0AGENTSender is not the agent this mandate names
1PER_ACTIONNotional above the per-action cap2.1
2PAIRStructural: the pair is enforced by measurement2.2
3VENUETarget is unclassified for this owner2.3
4EXPIRYMandate expired2.4
5REVOKEDMandate revoked by its owner
6AGGREGATEEpoch notional would cross the aggregate cap3.4
7RATEEpoch action count would cross the limit3.5
8VENUE_CONCOff-primary share would cross the bound3.7
9DEPTHStructural: delegation depth refused at registration
10RETURNThe agent asked for less back than the mandate requires2.5

PAIR and DEPTH are never raised. They exist in the word so it is complete: the pair is enforced by measurement — the guard only approves the mandate's tokenIn and only credits its tokenOut — and depth by refusal at registration. TIER1_MASK and TIER2_MASK are read from the contract rather than restated, so a screen and the guard cannot drift.

RETURN is tier 1 — what one action must give back is a property of that action, not of the sequence it belongs to. It is raised before the venue is called, so an agent that asks for a price the owner never accepted is held rather than executed. The same floor is measured again after the venue answers, and that check has no flag: value has already left, so it reverts rather than holding.