Oxygen Reserve Provenance / 呼吸储备来源机制
Oxygen Reserve Provenance prevents fan oxygen, sponsor makegood, ward air, public receipt credit, archive-held reserve, recovery-air, and route-asset care from collapsing into one clean pool.
The current mesh already has strong oxygen surfaces: 粉丝氧气账本群线 tracks fan cells, 呼吸优先梯线 ranks senior and junior claimants for a finite benefit, 呼吸追缴扣押线 handles later clawback, and 赞助补偿库存线 prices commercial substitute inventory.
This mechanism closes the seam between them: when one obligation is paid by mixing several reserve sources, the implementation must preserve where every unit came from and who lost scope.
Entry conditions
entry_conditions:
trigger_kind: state_pressure
obligation_being_paid_visible: true
two_or_more_oxygen_like_source_rows_visible_or_hidden_mix_detected: true
source_scope_before_visible_or_explicit_absence: true
requesting_reader_visible: true
protected_reader_visible_or_explicit_absence: true
excluded_or_subordinated_reader_visible_or_explicit_absence: true
player_response_available: true
future_reader_or_route_effect_possible: 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: trueValid obligations include sponsor makegood, fan refund, ward-air protection, public receipt repair, recovery-air use, route-asset care, archive lien, and broadcast-stability support.
Core objects
- 呼吸储备来源账本 records obligation, source rows, holders, scopes, consent/authority, conversion rule, protected reader, excluded reader, and future effect.
- 呼吸储备分账 resolves segregation, matching, opt-in conversion, escrow, haircut, ringfence, refusal, or hidden-mix default.
- 呼吸来源混用默认 hardens false-clean mixed payments.
Source model
oxygen_source_kinds:
- fan_oxygen_cell
- sponsor_makegood
- ward_air_reserve
- archive_escrow
- recovery_inventory
- public_receipt_credit
- route_asset_care
- broadcast_stability_credit
source_scope_states:
- fan_only
- sponsor_only
- ward_only
- archive_only
- public_only
- recovery_only
- route_asset_only
- lawful_only
- split_required
- explicit_absence
mixed_reserve_states:
- separate
- partially_mixed
- opt_in_pool
- sponsor_matched
- escrowed
- converted_with_haircut
- ringfenced
- refused
- captured
- false_clean
- blocked
- recovery_onlyBranch contract
Segregated sources
Spend only the source allowed for the obligation.
- Relief: false universal pool is blocked; source scope remains legible.
- Cost: obligation may be underfunded, delayed, split-required, or costlier.
- Future: downstream reader checks provenance before accepting reuse.
Sponsor match
Sponsor contributes additional reserve instead of absorbing protected or public oxygen.
- Relief: sponsor stop-loss or slot pressure falls.
- Cost: sponsor capture, contract capture, public distrust, or future sponsor-only limitation rises.
- Future: matched row is sponsor-only unless later unwound.
Fan opt-in
Fan cell, public delegate, or witness chain explicitly opts into conversion.
- Relief: public legitimacy or fan participation improves.
- Cost: fan resentment, mandate split, audit standing, or oxygen haircut pressure rises.
- Future: fan-audit, public receipt, or delegate mandate reader consumes the scar.
Archive escrow
Hold mixed reserve until source provenance is reviewed.
- Relief: false payment, double use, and source loss are blocked.
- Cost: archive debt, inspection heat, public delay, or sponsor hostility rises.
- Future: row is lawful-only, bridge-required, or release-gated.
Haircut conversion
Convert incompatible sources into a smaller scoped reserve.
- Relief: obligation can proceed at reduced strength.
- Cost: junior reader loses scope; clawback or consent-debt pressure rises.
- Future: junior route becomes costlier, split-required, or recovery-only.
Route-asset ringfence
Protect ward air, artist care, worker-carried reserve, or route-asset oxygen from general use.
- Relief: protected person or route asset survives.
- Cost: sponsor, fan, archive, production, or broadcast pressure rises elsewhere.
- Future: ringfenced row cannot be cited beyond protected scope.
Refuse mix
Reject the payment because source scope cannot be converted safely.
- Relief: false clean payment is prevented.
- Cost: current obligation blocks, delays, or moves to recovery-only.
- Future: priority ladder, makegood, clawback, or recovery route must handle the unresolved source.
Hidden mix default
A desk files the combined reserve as clean.
- Relief: immediate burden may fall.
- Cost: excluded reader hostility, clawback pressure, archive debt, source-loss, or broadcast drift rises.
- Future: 呼吸来源混用默认 makes the payment sponsor-only, public-only, archive-only, blocked, split-required, or recovery-only.
Counter contract
Every valid branch must mutate at least three surfaces:
counter_contract:
relief_min: 1
cost_min: 1
future_reader_or_route_effect_min: 1Recommended surfaces:
oxygen_source_legibilitymixed_reserve_pressurefan_oxygen_balancefan_oxygen_resentmentfan_mandate_split_pressuresponsor_stop_loss_pressuresponsor_makegood_costcontract_captureward_air_capacityroute_asset_care_debtarchive_debtinspection_heatpublic_receipt_legitimacypublic_receipt_distrustoxygen_clawback_pressurebroadcast_reality_drift
Replay evidence shape
mechanic: storyteller.mechanic.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
no_fixed_turn_trigger: true
ledger:
card: storyteller.card.oxygen_reserve_provenance_ledger.v1
source_rows: []
requesting_reader: <reader>
protected_reader: <reader or explicit_absence>
excluded_or_subordinated_reader: <reader or explicit_absence>
assignment:
rite: storyteller.rite.oxygen_reserve_segregation.v1
selected_posture: segregated_sources | sponsor_match | fan_opt_in | archive_escrow | haircut_conversion | route_asset_ringfence | refuse_mix | hidden_mix_default
outcome:
mixed_reserve_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: []Non-goals
- Not a global economy simulator.
- Not a universal oxygen health bar.
- Not a duplicate of claimant priority.
- Not a passive accounting page.
- Not valid if source scope disappears after payment.