ReadonlyreasonAn optional machine-readable reason, rendered into the response body alongside the message. DECLARED HERE rather than sniffed structurally at the mapper so the channel is part of the contract a subclass opts into, and so the mapper needs no import of any subclass to render it (see the header for why that import must not exist).
ReadonlystatusThe response status. 4xx/5xx only — see doErrorResponse.
A fence transition whose compare-and-set found a different state. 409 rather than 503: the deployment is fine, the CALLER's expectation is stale — two control-plane actors raced, or an operator retried a transition that already landed. The current state rides on the reason so the caller can re-plan without a second round trip.