Every reason a panel may be shown NO fit, in one closed vocabulary.
The leading run is ALIGN_FIT_REFUSALS — arithmetic that cannot be done. The rest are
facts only the WATCHER knows: no reference picked, a reference that is the target, a lane
with no capture, a ring that stopped advancing, and a fit whose coherence is too low to act
on. They live in ONE list because a surface renders ONE thing — "why is there no number" —
and two vocabularies for that question is two sentences a client must learn to reconcile.
A refusal is VISIBLE or it did not happen (spec §6): the row always says which of these it
is, never an ambiguous blank.
Every reason a panel may be shown NO fit, in one closed vocabulary.
The leading run is ALIGN_FIT_REFUSALS — arithmetic that cannot be done. The rest are facts only the WATCHER knows: no reference picked, a reference that is the target, a lane with no capture, a ring that stopped advancing, and a fit whose coherence is too low to act on. They live in ONE list because a surface renders ONE thing — "why is there no number" — and two vocabularies for that question is two sentences a client must learn to reconcile.
A refusal is VISIBLE or it did not happen (spec §6): the row always says which of these it is, never an ambiguous blank.