The three-way rendering verdict every surface applies to an action:
absent — its filter failed, so it does not exist for this actor/visit
(GROQ existence semantics; never even a disabled affordance). automation —
cascade-fired, so the engine's cascade is its only firing path (narrate it,
never render a fire affordance). button — fireable: enabled when
allowed, otherwise disabled WITH its DisabledReason shown.
Structural over the shared verdict fields so ActionEvaluation and
AvailableAction both qualify; filter-existence dominates automation, the
same order the engine's own verdicts apply.
The three-way rendering verdict every surface applies to an action:
absent— itsfilterfailed, so it does not exist for this actor/visit (GROQ existence semantics; never even a disabled affordance).automation— cascade-fired, so the engine's cascade is its only firing path (narrate it, never render a fire affordance).button— fireable: enabled whenallowed, otherwise disabled WITH its DisabledReason shown. Structural over the shared verdict fields so ActionEvaluation andAvailableActionboth qualify; filter-existence dominates automation, the same order the engine's own verdicts apply.