Oxygen Reserve Gap Assignment / 呼吸储备缺口指派

Oxygen Reserve Gap Assignment is the rite that resolves a visible uncovered reserve gap after a payment, rebate, makegood, priority cut, or provenance segregation leaves an obligation only partly covered.

The rite does not ask the player to balance a raw number. It asks who carries the gap, which reader is protected, which reader remains short, and how future route access changes.

Entry hand

Offer this rite when 呼吸储备缺口案卷 has a row with:

entry_hand:
  trigger_kind: state_pressure
  obligation_state_before_any:
    - partially_paid
    - segregated_underfunded
    - sponsor_matched_short
    - opt_in_short
    - escrow_short
    - haircut_short
    - ringfenced_short
    - hidden_short
  gap_holder_before_visible_or_explicit_absence: true
  protected_reader_visible_or_explicit_absence: true
  burdened_or_excluded_reader_visible_or_explicit_absence: true
  future_reader_or_route_effect_possible: true
  no_fixed_turn_trigger: true

Player postures

The sponsor supplies the missing cover with sponsor-only limits.

  • Relief: current obligation, slot, or makegood pressure falls.
  • Cost: sponsor capture, contract capture, public distrust, or future sponsor-only state rises.
  • Future: source may be cited only where sponsor standing is valid.

Producer underwrite

The producer license carries the gap openly.

  • Relief: route can continue with named backing.
  • Cost: license encumbrance, inspection heat, or management pressure rises.
  • Future: later reader treats the route as accepted with cost, not clean.

Fan or public queue credit

The gap is kept as a public receipt, refund queue, oxygen credit, or fan-facing owed row.

  • Relief: public legitimacy and fan oxygen legibility improve.
  • Cost: refund delay, sponsor pressure, fan resentment, or audit standing pressure rises.
  • Future: public-only, refund-audit, or fan-audit reader consumes the row.

Archive gap escrow

The gap is held by archive, lawful reader, or inspection shelf until proof can bridge it.

  • Relief: false closure and double use are blocked.
  • Cost: archive debt, public delay, inspection heat, or sponsor hostility rises.
  • Future: lawful-only, proof-required, or release-gated state.

Route-asset ration

The gap is assigned to a protected person, worker, room, proof carrier, or care line with explicit rationing.

  • Relief: a protected route asset survives instead of being silently used as reserve.
  • Cost: care debt, handler burden, excluded-reader resentment, or recovery-only pressure rises.
  • Future: ringfenced, costlier, or route-asset-only state.

Recovery conversion

The current obligation cannot be made clean, so the gap becomes a recovery-only shelf or indemnity row.

  • Relief: unsafe closure is blocked while limited recovery remains possible.
  • Cost: route continuation is downgraded, delayed, or indemnity-priced.
  • Future: 复原追偿搁架线 or equivalent consumes the scar.

Split gap

The gap is scoped between incompatible readers.

  • Relief: one reader can proceed within scope.
  • Cost: contradiction pressure, omitted-reader hostility, or source ambiguity rises.
  • Future: split-required, addendum-required, or costlier route.

Visible block

The producer refuses to close the obligation until a real holder exists.

  • Relief: false-clean closure is prevented.
  • Cost: current route blocks, makegood pressure rises, or clawback pressure rises.
  • Future: priority, makegood, clawback, or recovery route must handle the row.

Gap capture default

If the player files closure without a holder, 呼吸储备缺口默认 fires or arms.

Output contract

rite_output:
  selected_posture: sponsor_true_up | producer_underwrite | fan_public_queue_credit | archive_gap_escrow | route_asset_ration | recovery_conversion | split_gap | visible_block | gap_capture_default
  assigned_gap_holder_after: <holder or explicit_absence>
  gap_state_after: assigned | queued | escrowed | rationed | converted | split_required | blocked | captured | false_closed | recovery_only | equivalent
  protected_reader_state_after: <state>
  burdened_or_excluded_reader_state_after: <different state or explicit_absence>
  future_reader_or_route_effect: <effect>
  emitted_event: storyteller.event.oxygen_reserve_gap_default.v1 | none_if_valid
  counter_deltas:
    relief: []
    cost: []
    future: []

A valid result mutates at least gap state, reader state, and future route effect. It is not valid if the only output is a changed oxygen total, money total, or mood score.