Oxygen Reserve Provenance / 呼吸储备来源线

Oxygen Reserve Provenance is a non-character pressure storyline for the moment when one obligation is paid by combining multiple oxygen-like reserves.

The current mesh already has good answers for adjacent questions:

The remaining gap is source mixing. A producer can otherwise satisfy a sponsor makegood, public receipt, ward-air protection, archive lien, or route-asset care obligation by pouring fan oxygen, sponsor credit, ward air, and recovery inventory into a single clean pool. This storyline makes that merge playable and dangerous.

Primary playable question

When several oxygen-like reserves are used to pay one obligation, does production segregate sources, ask sponsor to match, request fan opt-in, escrow the reserve, convert with a haircut, ringfence a route asset, refuse the mix, or let a hidden mixed pool become the default truth?

Every answer must preserve source rows and name who lost scope.

State-triggered entry

Open this storyline when all are true:

entry_state:
  trigger_kind: state_pressure
  obligation_being_paid_visible: true
  source_rows_or_hidden_mix_visible: true
  at_least_two_source_scopes_or_default_actor_visible: true
  requesting_reader_visible: true
  protected_reader_visible_or_explicit_absence: true
  excluded_or_subordinated_reader_visible_or_explicit_absence: true
  future_reader_or_route_effect_possible: true
  player_can_segregate_match_opt_in_escrow_convert_ringfence_refuse_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_pool_size_trigger: true
  no_dashboard_or_lens_health_trigger: true

The storyline must not open from a fixed turn, fixed day/week interval, raw pool size, dashboard state, lens health, or generic economy pressure.

Content pack

Mechanic

  • 呼吸储备来源机制 defines source rows, reserve scopes, mixed states, branch families, counters, and replay evidence.

Card

  • 呼吸储备来源账本 records obligation, source rows, source scope, holder, consent/authority, requesting reader, protected reader, excluded reader, conversion rule, branch, and future effect.

Rite

  • 呼吸储备分账 resolves segregation, sponsor match, fan opt-in, archive escrow, haircut conversion, route-asset ringfence, refusal, or default.

Event

Storyline spine

Beat 1 — One obligation asks for more oxygen than one source can safely provide

A sponsor makegood, fan refund, ward-air support, public receipt, recovery-air row, route-asset care slot, archive lien, or broadcast-stability patch needs payment.

At least two source rows are visible, or a hidden mixed pool is discovered.

Beat 2 — The ledger exposes source scope

The player receives 呼吸储备来源账本. It must show source row ids, source kinds, holders, prior scope, consent or authority, requesting reader, protected reader, excluded reader, and future route effect.

Beat 3 — Segregation decides whether sources can touch

Run 呼吸储备分账. The rite asks whether the producer keeps sources separate, buys a sponsor match, asks fan opt-in, escrows the mixed row, accepts a haircut, ringfences protected care, refuses the mix, or lets the default actor file the pool as clean.

Beat 4 — The future reader consumes the provenance scar

A later reader must read the result:

  • sponsor reader accepts only sponsor-matched rows;
  • fan public accepts only opt-in or public rows;
  • ward reader rejects sponsor use of care oxygen;
  • archive or lawful reader demands escrow or proof bridge;
  • route asset consumes ringfenced care or becomes hostile;
  • broadcast reality drifts when a hidden mixed row becomes public truth;
  • recovery route becomes costlier, split-required, or recovery-only.

Beat 5 — Hidden mixing defaults

If the producer skips provenance, 呼吸来源混用默认 records the default actor, false-clean claim, captured source, hidden excluded reader, mixed state after, and future route effect.

Branch map

BranchReliefCost/scarFuture state
Segregated sourcessource scope legible; false pool blockedobligation may be underfunded or delayedsource-gated reuse, split-required, costlier
Sponsor matchsponsor pressure or slot pressure fallscontract capture, sponsor-only limitation, public distrustsponsor-matched row sponsor-only unless unwound
Fan opt-inpublic legitimacy and fan participation improvefan mandate split, resentment, audit pressurefan audit or public receipt scar must be read
Archive escrowdouble use and false payment blockedarchive debt, inspection heat, sponsor hostility, public delaylawful-only, bridge-required, release-gated
Haircut conversionobligation proceeds at reduced strengthjunior reader loses scope; clawback pressure risesjunior route costlier, split-required, recovery-only
Route-asset ringfenceprotected person or care slot survivessponsor/fan/archive/production pressure risesringfenced row cannot be cited outside scope
Refuse mixfalse clean payment preventedcurrent obligation blocks or becomes costlierpriority ladder, makegood, clawback, or recovery-only route opens
Hidden mix defaultimmediate burden dropssource loss, excluded-reader hostility, broadcast driftcaptured, false-clean, blocked, sponsor-only, public-only, archive-only, recovery-only

Counter contract

Every resolved branch must mutate at least:

  1. mixed reserve state;
  2. one relief surface;
  3. one cost or excluded-reader scar;
  4. one future reader or route effect.

Recommended surfaces:

  • oxygen_source_legibility
  • mixed_reserve_pressure
  • fan_oxygen_balance
  • fan_oxygen_resentment
  • fan_mandate_split_pressure
  • sponsor_stop_loss_pressure
  • sponsor_makegood_cost
  • contract_capture
  • ward_air_capacity
  • route_asset_care_debt
  • archive_debt
  • inspection_heat
  • public_receipt_legitimacy
  • public_receipt_distrust
  • oxygen_clawback_pressure
  • broadcast_reality_drift

Replay evidence expectation

storyline_id: storyteller.storyline.oxygen_reserve_provenance.v1
session_id: lens-oxygen-reserve-provenance-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  obligation_being_paid_visible: true
  source_rows_or_hidden_mix_visible: true
  requesting_reader_visible: true
  protected_reader_visible_or_explicit_absence: true
  excluded_or_subordinated_reader_visible_or_explicit_absence: true
  no_fixed_turn_trigger: true
offered:
  card: storyteller.card.oxygen_reserve_provenance_ledger.v1
  rite: storyteller.rite.oxygen_reserve_segregation.v1
branch_result:
  selected_posture: segregated_sources | sponsor_match | fan_opt_in | archive_escrow | haircut_conversion | route_asset_ringfence | refuse_mix | hidden_mix_default
  source_rows: []
  conversion_rule_or_absence: <rule or explicit_absence>
  mixed_reserve_state_after: <state>
  protected_reader_state_after: <state>
  excluded_reader_state_after: <state>
  future_reader_or_route_effect: <effect>
  emitted_event: storyteller.event.oxygen_source_mixing_default.v1 | none_if_valid
  counter_deltas:
    relief: []
    cost: []
    future: []
assertions:
  - entry_is_state_triggered
  - source_rows_or_hidden_mix_visible
  - source_scope_preserved
  - protected_and_excluded_readers_visible
  - branch_outcomes_diverge
  - every_success_has_relief_cost_and_future_effect
  - hidden_mix_default_is_durable
  - no_universal_clean_oxygen_pool
  - no_fixed_turn_trigger

Missability and recovery

The storyline is missed when implementation:

  • stores only oxygen_paid, pool_spent, sponsor_covered, fans_accepted, or reserve_balanced;
  • merges source rows without source scope;
  • hides consent, holder, protected reader, or excluded reader;
  • treats fan oxygen, sponsor makegood, ward air, route-asset care, and archive-held reserve as fungible;
  • lets a future reader accept mixed reserve without scar;
  • triggers from fixed timing or raw pool size.

Recovery is allowed only with visible scar:

  • late segregation;
  • sponsor rematch;
  • fan public opt-in review;
  • archive escrow with public delay;
  • haircut conversion with junior receipt;
  • route-asset ringfence;
  • clawback foreclosure;
  • recovery-only conversion.

Non-goals

  • Not a global economy layer.
  • Not a universal oxygen HP track.
  • Not a replacement for oxygen priority.
  • Not a fixed upkeep phase.
  • Not valid unless source provenance changes future playable state.