Oxygen Audit Notice / 氧气审计通知

rite.expose_fan_oxygen_audit_pressure must first assign the exact gala broadcast, oxygen reserve, Community Archive, and named future reader. It sets ledger_custodian.fan_oxygen_audit_pressure_visible and adds two fan-oxygen debt. Only then can event.oxygen_audit_notice open the state-driven Ledger Custodian audit window.

Every event option sets oxygen_audit_notice_open, preserves the already-visible debt, and records one preselectedRiteChoiceIndex plus a durable branch flag for rite.public_oxygen_audit:

OptionChoiceExact preselected tuple
open_public_custodian_witness_window0npc.ledger_custodian + faction.city_inspectorate + storyteller.card.oxygen_audit_no_rights_transfer_receipt.v1
open_documentary_substitute_window1card.evidence.fan_oxygen_ledger + faction.corporate_sponsors + card.rights.temporary_voice_release
open_blackout_absence_window2storyteller.card.ledger_custodian_explicit_absence.v1 + storyteller.card.oxygen_audit_pressure_absence.v1 + storyteller.card.oxygen_audit_rights_absence.v1

All three tuples also use card.broadcast.sponsor_relief_gala, card.resource.fan_oxygen_reserve, asset.community_archive, and storyteller.card.ledger_custodian_named_future_reader.v1. The notice preselects evidence; it does not itself recruit the custodian, mutate debt, transfer rights, or resolve archive custody. Core resolution requires an explicit rite option and rejects any option whose requiredFlags or requiredSlotCardIds disagree with this preselection.

The three focused CLI replays must show the event choice before the matching rite choice and preserve the exact tuple without virtual substitutions.