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

Oxygen Reserve Gap Assignment is a non-character pressure storyline for the moment after an oxygen-like payment has become legible but remains incomplete.

呼吸储备来源线 prevents source mixing. 呼吸优先梯线 decides who is senior when one benefit is scarce. 呼吸返点封顶线, 呼吸折让同意债转移线, and 赞助补偿库存线 make partial relief playable.

The remaining seam is the uncovered remainder. After the game correctly says this source can pay only this much, for this reader, under this scope, the leftover gap can still be swallowed by management copy as if the obligation were closed. This storyline makes the gap itself a playable object.

Primary playable question

When a reserve-backed obligation is only partly covered, does production assign the gap to sponsor true-up, producer license, public/fan queue credit, archive escrow, route-asset rationing, recovery conversion, split-reader scope, visible block, or default capture?

Every answer must name the gap holder, protected reader, burdened reader, gap state after, and future route effect.

Gap diagnosis

The current green mesh is strong around adjacent jobs:

  • provenance keeps fan oxygen, sponsor makegood, ward air, archive reserve, recovery inventory, public receipt credit, and route-asset care from becoming one clean pool;
  • priority ranks senior and junior claimants;
  • clawback and rebate lines price later seizure or partial return;
  • consent-debt lines keep useful consent from becoming universal permission;
  • recovery and salvage lines preserve scars after a route is downgraded or stopped.

The gap is between provenance and recovery. A route can be correctly underfunded, but the underfunded remainder has no holder unless this storyline opens. Without it, a future reader can treat partly paid with traceable sources as fully settled.

State-triggered entry

Open only from state pressure:

entry_state:
  trigger_kind: state_pressure
  obligation_visible: true
  partial_cover_or_scope_limited_cover_visible: true
  source_provenance_row_visible_or_explicit_absence: true
  gap_kind_visible: true
  proposed_or_missing_gap_holder_visible: true
  protected_reader_visible_or_explicit_absence: true
  burdened_or_excluded_reader_visible_or_explicit_absence: true
  future_reader_or_route_effect_possible: true
  player_can_true_up_underwrite_queue_escrow_ration_convert_split_block_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_gap_amount_trigger: true
  no_raw_oxygen_count_trigger: true
  no_raw_fan_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

Valid entry states include segregated_underfunded, sponsor_matched_short, opt_in_short, escrow_short, haircut_short, ringfenced_short, priority_junior_short, rebate_collar_short, clawback_stayed_short, recovery_air_short, and hidden_short_detected.

Bound content pack

This storyline binds:

Storyline spine

Beat 1 — The payment is real but incomplete

A sponsor makegood, fan refund, ward-air support, public receipt repair, route-asset care slot, archive lien, or broadcast-stability patch has partial cover. The partial cover remains valid. The story problem is the uncovered gap.

Beat 2 — The docket names the gap

Create 呼吸储备缺口案卷. It must preserve source obligation, usable cover sources, gap kind, gap holder before, protected reader, burdened reader, proposed assignment, proof or absence, and future route effect.

Beat 3 — The assignment rite chooses the holder

Run 呼吸储备缺口指派. The player chooses sponsor true-up, producer underwrite, fan/public queue credit, archive gap escrow, route-asset ration, recovery conversion, split gap, visible block, or accepts gap capture default.

Beat 4 — The gap becomes future route state

The result must be consumed later:

  • sponsor reader sees sponsor-only true-up or unwind requirement;
  • fan/public reader sees queue credit, refund audit, or public-only scar;
  • archive/lawful reader sees escrow, proof-required, or lawful-only release;
  • route asset sees rationed care, ringfenced reserve, hostility, or recovery-only state;
  • producer license carries named encumbrance;
  • broadcast reality cannot count the obligation as clean if the gap remains assigned, split, blocked, or captured.

Beat 5 — Hidden gap defaults become durable

If a future surface files the obligation as closed without the gap holder, 呼吸储备缺口默认 records the false-clean claim, capturing reader, hidden holder, burdened reader, gap state after, and future route effect.

Branch map

BranchReliefCost/scarFuture state
Sponsor true-upmakegood or slot pressure fallssponsor capture, contract capture, public distrustsponsor-only, accepted-with-scope, unwind-required
Producer underwriteroute has named backinglicense encumbrance, inspection heat, management pressureaccepted-with-cost, costlier, indemnity-shelf
Fan/public queue creditpublic legitimacy and fan oxygen legibility improverefund delay, fan resentment, audit pressurepublic-only, refund-audit, fan-audit
Archive gap escrowfalse closure and double use blockedarchive debt, public delay, sponsor hostility, inspection heatlawful-only, proof-required, release-gated
Route-asset rationprotected person or care line survivescare debt, handler burden, excluded-reader resentmentringfenced, route-asset-only, costlier
Recovery conversionunsafe closure blocked while limited repair remainsroute downgraded, indemnity-priced, or slowedrecovery-only, salvage-floor, indemnity-shelf
Split gapone reader proceeds within scopecontradiction pressure, source ambiguity, omitted-reader hostilitysplit-required, addendum-required, costlier
Visible blockfalse clean closure preventedmakegood, clawback, priority, or recovery pressure risesblocked, downgraded, rerouted
Gap capture defaultimmediate report may closehidden holder becomes future challenge surfacecaptured, false-closed, hostile, blocked, recovery-only

No branch may turn a partly covered obligation into clean acceptance for sponsor, public, archive, lawful reader, route asset, producer license, and broadcast reality at once.

Counter contract

Every branch must mutate at least:

  1. gap state or holder state;
  2. protected reader and burdened reader state;
  3. one relief surface;
  4. one cost or scar;
  5. one future route or reader effect.

Recommended surfaces:

  • oxygen_gap_legibility
  • reserve_gap_pressure
  • fan_oxygen_resentment
  • public_receipt_legitimacy
  • refund_queue_pressure
  • sponsor_makegood_cost
  • sponsor_stop_loss_pressure
  • contract_capture
  • producer_license_encumbrance
  • route_asset_care_debt
  • archive_debt
  • inspection_heat
  • oxygen_clawback_pressure
  • recovery_only_pressure
  • broadcast_reality_drift

Replay/session evidence shape

storyline_id: storyteller.storyline.oxygen_reserve_gap_assignment.v1
session_id: lens-oxygen-reserve-gap-assignment-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  obligation_visible: true
  partial_cover_or_scope_limited_cover_visible: true
  source_provenance_row_visible_or_explicit_absence: true
  gap_kind_visible: true
  proposed_or_missing_gap_holder_visible: 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
offered:
  mechanic: storyteller.mechanic.oxygen_reserve_gap_assignment.v1
  card: storyteller.card.oxygen_reserve_gap_docket.v1
  rite: storyteller.rite.oxygen_reserve_gap_assignment.v1
branch_runs:
  assignment_branch:
    selected_posture: sponsor_true_up | producer_underwrite | fan_public_queue_credit | archive_gap_escrow | route_asset_ration | recovery_conversion | split_gap | visible_block
    source_obligation: <obligation>
    gap_kind: <gap kind>
    assigned_gap_holder_after: <holder or explicit_absence>
    protected_reader_state_after: <state>
    burdened_reader_state_after: <different state or explicit_absence>
    gap_state_after: <state>
    future_reader_or_route_effect: <effect>
    counter_deltas:
      relief: []
      cost: []
      future: []
  default_branch:
    event_seen_or_armed: storyteller.event.oxygen_reserve_gap_default.v1
    false_clean_claim: <claim>
    capturing_reader: <reader>
    hidden_gap_holder: <holder or explicit_absence>
    future_reader_or_route_effect: <effect>
assertions:
  - entry_is_state_triggered
  - partial_cover_does_not_become_clean_closure
  - source_provenance_or_absence_visible
  - gap_kind_and_holder_visible_or_explicit_absence
  - protected_and_burdened_readers_visible
  - branch_outcomes_diverge
  - success_has_relief_cost_and_future_effect
  - default_is_durable
  - future_reader_consumes_gap_state
  - no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_trigger

Missability and recovery

The storyline is missed when implementation:

  • records only oxygen short, money owed, delay, sponsor covered, fans accepted, or reserve balanced;
  • hides gap holder or burdened reader;
  • treats partial cover as full settlement;
  • lets a future reader cite a short payment outside its source scope;
  • converts a route asset care shortfall into invisible production debt;
  • opens from fixed timing, raw amounts, raw fan counts, dashboard state, or lens health.

Recovery is allowed only through visible scar: reopen the gap docket, assign a holder, publish queue credit, add archive annex, ration a route asset with proof, convert to recovery-only, split reader scope, or accept a blocked/costlier route.

Non-goals

  • Not a balance-sheet simulator.
  • Not an oxygen pool UI.
  • Not a duplicate of provenance, priority, clawback, rebate, or indemnity.
  • Not a fixed upkeep phase.
  • Not valid unless the gap changes future playable state.