'denied' and 'unsupported' are distinct on purpose: the first is a human refusing consent
(recoverable, re-askable, and a UX event), the second is the model not supporting the modality
(permanent for this session, and the trigger for falling back to a non-track path). Collapsing
them would make "ask again" indistinguishable from "never ask".
Where a track is in its lifecycle.
'denied'and'unsupported'are distinct on purpose: the first is a human refusing consent (recoverable, re-askable, and a UX event), the second is the model not supporting the modality (permanent for this session, and the trigger for falling back to a non-track path). Collapsing them would make "ask again" indistinguishable from "never ask".