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 or 5xx; any other status answers 500.
The caller's own key, pointed at a different workflow or agent than the one it reserved. 409, and it DOES name the reservation's target: the caller owns this key, so telling it what the key already means is telling it about its own state, and a caller that reused a key by accident needs exactly that to find the bug.