@pwngh/economy-lab
    Preparing search index...

    Type Alias PurchaseOutcome

    PurchaseOutcome:
        | { orderId: string; seq: number; status: "accepted" }
        | {
            orderId: string;
            reason: RejectionCode | ErrorCode;
            status: "rejected";
        }

    What purchase resolves to. Accepted means granted and journaled with seq its session sequence; the money turns ledger-final only at settle. A repeat of a seen orderId replays this recorded outcome without re-running side effects.