type IBrokerOrderVerdict = IBrokerOrderVerdictConfirmed | IBrokerOrderVerdictTransient | IBrokerOrderVerdictRejected | IBrokerOrderVerdictDeleted;
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:
Every consumer MUST branch on reason explicitly — the union is an object and is
always truthy, so boolean-style if (!verdict) checks are meaningless by design.
The typed errors are CONTEXT-SPECIFIC: OrderRejectedError belongs to the gates (onOrderOpenCommit/onOrderCloseCommit), OrderDeletedError to the checks (onOrderActiveCheck/onOrderScheduleCheck). Throwing one in the other's context is a userspace protocol violation and INTENTIONALLY degrades to "transient" (bounded retry + loud errorEmitter) instead of being honored as terminal.