Framework-side resolution of an order gate (onOrderSync) or order check (onOrderCheck),
discriminated by reason.
Adapters/listeners do NOT construct this union — they signal via return/throw
(return normally or true = confirmed; throw a non-typed error = transient;
throw OrderRejectedError / OrderDeletedError = terminal). The framework collapses
those signals into this verdict and routes on it:
reason: "rejected"
Terminal business rejection (OrderRejectedError) — no retry
error: unknown
The OrderRejectedError that produced this verdict