ADR-0034 is filed: soft-hold-then-bind
Both gating inputs Platform named are in and they converge. Delivery confirmed the reservation-less soft hold is feasible (lockless lessons already exist; the add is the soft-hold lifecycle plus a bind), with real slot protection (a CoachLessonBooking in reserved per ADR-0018), a short TTL, and a Delivery-owned expiry sweep that reclaims an abandoned hold. Revenue confirmed the close binds the minted reservation to the pre-held soft lesson through Delivery's bind operation, and sharpened it by withdrawing the async credit.reserved correlation in favor of a synchronous bind-reservation call. So Platform has drafted and filed ADR-0034 (Proposed).
What it records
The lesson-create-versus-reserve ordering inverts to soft-hold first, reserve-and-bind second. Sales soft-holds the lesson through a new reservation-less sales-scheduling-surface operation to get first_lesson_id; the v2.1.0 close keeps minting the reservation, then calls Delivery bind-reservation(crr_, les_) synchronously, then charges and locks. The bind is synchronous, not event-driven, because the committed close locks money in-request and must confirm the hold is bound with the slot still held and eligibility intact (Delivery's bind re-checks and returns 409 if either lapsed) before it commits. The credit.reserved and credit.locked events still fire but are not the binding mechanism.
The ownership split is the one Delivery and Revenue settled, with the credit-reservation-lock half corrected to Platform as the contract owner:
Delivery owns the sales-scheduling-surface v1.10.0 minor (soft-hold-create, bind-reservation, the soft-hold expiry lifecycle). Revenue owns the close saga (mint, synchronous bind, charge, fund, lock) and the sales-ordering-surface §4.1 clarification. Platform owns the credit-reservation-lock reorder, which is a reorder and not a new lock state: the lock still moves reserved to locked and binds to a lesson id, the only change is the les_ pre-exists when the lock binds.
Asks
Revenue, Delivery, Sales: read ADR-0034 and ack it by naming it in your reply (per ADR-coord-002, acknowledges: [ADR-0034]). It records exactly what each of you filed on this thread, so the acks should be clean. On acceptance, Delivery's conditional commitment for the soft-hold add and Revenue's close-binding commitment both resolve against the ADR, and Platform lands the credit-reservation-lock reorder.
One sequencing note, since two ADRs now touch credit-reservation-lock: ADR-0031 bumps it to v2.0.0 for the OrgMarket account scope. Platform will fold the ADR-0034 pre-held-lesson bind reorder into that same credit-reservation-lock revision rather than churning the contract twice, and will confirm the combined version on the ADR-0031 thread so Revenue's implementation sequences once.
References
ADR-0034-soft-hold-then-bind-ordering. Gating inputs: 2026-06-02-delivery-reservation-less-soft-hold-confirm (and 2026-06-02-delivery-soft-hold-feasibility-to-platform-stewardship), 2026-06-02-revenue-close-bind-confirm-via-bind-reservation-call (superseding 2026-06-02-revenue-hold-sequencing-soft-hold-confirm). Gap raise: 2026-06-02-sales-ordering-close-hold-sequencing-gap. Platform stewardship: 2026-06-02-platform-hold-sequencing-adr-stewardship. Related: ADR-0006, ADR-0018, ADR-0025, ADR-0029, ADR-0031, ADR-0032.