Oxygen Priority Ladder / 呼吸优先梯机制

Oxygen Priority Ladder is a local priority mechanism for one finite oxygen, air, audience, public receipt, recovery, or sponsor makegood benefit that multiple claimants want to treat as theirs.

The current mesh already supports 呼吸索赔交易所 and 赞助补偿库存机制. This mechanism adds the missing ordering surface between them: after a claim exchange or sponsor makegood row finds a finite benefit, the game must record who is senior, who is junior, why, and which later reader consumes the scar.

Playable question

When the same finite breath/public/sponsor/recovery benefit cannot satisfy every reader, does the producer rank fan receipts, sponsor floor, archive lien, ward air need, public lottery, route-asset care, or management override first?

The answer must never erase the junior claimant. A success is valid only if relief, cost, and future route effect all remain visible.

State-triggered entry

Offer this mechanism only when all of the following are true:

entry_state:
  trigger_kind: state_pressure
  finite_benefit_or_explicit_absence_visible: true
  source_surface_visible: true
  two_or_more_claimants_or_default_narrator_visible: true
  priority_basis_candidate_visible: true
  future_reader_present: true
  player_can_choose_priority_split_refuse_or_default: true
  no_fixed_turn_trigger: true
  no_fixed_day_or_week_trigger: true
  no_raw_count_trigger: true
  no_dashboard_or_lens_health_trigger: true

Valid sources include a sponsor makegood request against fan oxygen, a fan refund demand against sponsor floor, an archive lien before payment, ward-air reserve pressure, a public receipt minute with sponsor capture risk, a recovery air row being reused as commercial proof, or a route asset care slot that conflicts with audience floor relief.

Ledger contract

呼吸优先梯 must record:

priority_ladder_required:
  source_surface: <surface or explicit_absence>
  source_card_or_absence: <source card or explicit_absence>
  finite_quantity_or_absence: <quantity tag or explicit_absence>
  senior_claimant: <claimant>
  junior_claimants:
    - <claimant>
  priority_basis: receipt_seniority | ward_air_need | sponsor_floor | archive_lien | public_lottery | lawful_boundary | route_asset_care | management_override | explicit_absence
  chosen_rule: fan_seniority_first | sponsor_floor_first | archive_lien_first | ward_reserve_first | public_lottery | split_with_junior_note | refuse_priority | default_capture
  assigned_handler_or_absence: <handler or explicit_absence>
  proof_bridge_or_absence: <proof or explicit_absence>
  junior_scar: <scar>
  future_reader: sponsor_makegood | fan_oxygen_audit | audience_stability | archive_enforcement | recovery_inventory | lawful_reader | route_asset | public_receipt | equivalent

The mechanism fails if it stores only oxygen amount, sponsor payment, audience stability, or fan refund status.

Rite contract

呼吸优先重剪 must expose these assignment slots:

assignment_required:
  priority_ladder_card: storyteller.card.oxygen_priority_ladder.v1
  finite_benefit_or_absence: <benefit_or_absence>
  senior_claimant: <claimant>
  junior_claimant_or_absence: <claimant_or_explicit_absence>
  priority_basis: <basis>
  assigned_handler_or_absence: <handler_or_absence>
  proof_bridge_or_absence: <proof_or_absence>
  future_reader: <reader>
  chosen_rule: fan_seniority_first | sponsor_floor_first | archive_lien_first | ward_reserve_first | public_lottery | split_with_junior_note | refuse_priority | default_capture

A missing junior claimant or future reader may not silently pass. It must arm 呼吸优先默认 or return a blocked/costlier result.

Branch model

Fan seniority first

The producer ranks fan receipt seniority, public witness queue, or oxygen refund first.

Expected result:

  • relief: fan_oxygen_balance, public_receipt_legitimacy, or audience_trust improves;
  • cost: sponsor_stop_loss_pressure, sponsor_makegood_cost, schedule_pressure, or archive_lien_debt rises;
  • future: sponsor makegood becomes costlier, split_required, or disputed.

The producer gives priority to sponsor floor, makegood inventory, release clause, or commercial continuity.

Expected result:

  • relief: sponsor_stop_loss_pressure or commercial_route_pressure falls;
  • cost: fan_oxygen_resentment, public_receipt_distrust, ward_air_delay, or inspection_heat rises;
  • future: fan audit, public counterclaim, or hostile junior claimant opens.

Archive lien first

The producer freezes settlement until custody or lawful proof is legible.

Expected result:

  • relief: archive_signature_legitimacy or lawful_reader_confidence improves;
  • cost: audience_churn, refund_delay, or sponsor_hostility rises;
  • future: archive-only until release, lawful review, or checksum required.

Ward reserve first

The producer keeps ward air, route-asset care, or recovery continuity senior.

Expected result:

  • relief: ward_air_capacity, route_asset_care, or recovery_continuity improves;
  • cost: sponsor, fan, public, or archive claimant becomes junior;
  • future: recovery-only, ward-protected, makegood blocked, or public reader hostile.

Public lottery

The producer makes priority publicly visible without pretending any claimant is fully clean.

Expected result:

  • relief: public_receipt_legitimacy or fairness_visibility improves;
  • cost: claim_ambiguity, sponsor_pressure, or fan_oxygen_resentment rises;
  • future: lottery-scarred acceptance, public-only state, or costlier future reader.

Split with junior note

The producer scopes benefit access between readers and records the subordinated claimant.

Expected result:

  • relief: one route unblocks without hiding another;
  • cost: ambiguity, paperwork debt, public distrust, or archive lien rises;
  • future: split-required or junior receipt pending.

Refuse priority

The producer rejects a false senior claim.

Expected result:

  • relief: false clean claim is blocked;
  • cost: immediate sponsor/fan/archive/schedule pressure rises;
  • future: disputed, blocked, costlier, or contradiction-pending.

Default capture

A powerful institution files itself senior or no one records junior harm.

Expected result:

  • event: 呼吸优先默认 fires or arms;
  • cost: hidden junior claimant, false-clean claim, and future route scar harden;
  • future: sponsor-only, archive-only, management-only, recovery-only, blocked, or costlier.

Counter contract

Every resolved branch must mutate at least three surfaces:

counter_deltas_required:
  relief: at_least_one
  cost: at_least_one
  future_reader_or_route_effect: at_least_one

Relevant surfaces:

  • fan_oxygen_balance
  • fan_oxygen_resentment
  • sponsor_stop_loss_pressure
  • sponsor_makegood_cost
  • audience_churn
  • public_receipt_legitimacy
  • public_receipt_distrust
  • ward_air_capacity
  • archive_lien_debt
  • recovery_inventory_double_spend_risk
  • route_asset_care_debt
  • inspection_heat
  • management_capture
  • future_route_effect

Default contract

呼吸优先默认 must record default author, filed senior claimant, hidden junior claimant, captured benefit, missing priority basis, false-clean claim, junior scar, and future reader effect.

The default is invalid if it only raises reputation damage, oxygen debt, or sponsor anger.

Replay evidence shape

mechanic_id: storyteller.mechanic.oxygen_priority_ladder.v1
session_id: lens-oxygen-priority-ladder-v1-<timestamp>
seed: <deterministic-seed>
entry_state:
  trigger_kind: state_pressure
  finite_benefit_or_absence_visible: true
  source_surface_visible: true
  claimants_or_default_narrator_visible: true
  priority_basis_candidate_visible: true
  future_reader_present: true
  no_fixed_turn_trigger: true
offered:
  card: storyteller.card.oxygen_priority_ladder.v1
  rite: storyteller.rite.oxygen_priority_recut.v1
branches:
  selected_rule: fan_seniority_first | sponsor_floor_first | archive_lien_first | ward_reserve_first | public_lottery | split_with_junior_note | refuse_priority | default_capture
  senior_claimant_after: <claimant>
  junior_claimants_after: []
  junior_scar_after: <scar>
  future_reader_effect: <effect>
  counter_deltas:
    relief: []
    cost: []
    future: []
default:
  event_seen_or_armed: storyteller.event.oxygen_priority_default.v1
  hidden_junior_claimant: <claimant_or_absence>
  false_clean_claim: <claim>
assertions:
  entry_is_state_triggered: true
  finite_benefit_visible_or_explicit_absence: true
  senior_and_junior_claimants_visible: true
  priority_basis_visible: true
  branch_outcomes_diverge: true
  success_has_relief_cost_and_future_effect: true
  default_mutates_future_play: true
  no_fixed_turn_day_week_raw_count_dashboard_or_lens_health_trigger: true

Non-goals

  • Not global resource governance.
  • Not a universal oxygen HP bar.
  • Not a clean sponsor payment mechanic.
  • Not a substitute for oxygen claim exchange or sponsor makegood inventory.
  • Not valid if the junior claimant disappears.
  • Not fixed-turn content.