Branch Eligibility Receipt / 分支资格回执
Branch Eligibility Receipt is the in-world card that records a choice the player expected to see, but which is locked, suppressed, downgraded, or made unavailable by live state.
It exists to stop silent branch disappearance. A locked branch is not UI history and not a failed design note; it is a route object when the lock carries future reader pressure.
Card promise
When a material branch is unavailable, the receipt answers:
- what branch or branch family was tested;
- which live state blocked it;
- which requirement was missing, exhausted, contested, or explicitly absent;
- who benefits from the branch staying unavailable;
- which reader is harmed by the lock;
- what recovery path, downgrade, or default remains;
- which future route, receipt, package, or broadcast-reality surface will consume the lock.
The card fails its purpose if it only says locked, insufficient resource, prerequisite missing, not enough trust, route unavailable, or try later.
Required fields
branch_eligibility_receipt:
receipt_id: <stable id>
source_option_set_id: <choice set, rite, docket, or route surface>
candidate_branch_id: <branch or branch family>
candidate_branch_label: <player-facing branch name>
eligibility_state_before: eligible | locked | suppressed | downgraded | hidden_by_claimant | recovery_only | explicit_absence
blocker:
blocking_surface: capacity | callback | notice | proof | carrier | handler | witness | sponsor | public | lawful | archive | route_asset | producer_license | management_compression | broadcast_reality | equivalent
blocking_row_id_or_absence: <row id or explicit_absence>
missing_requirement_or_absence: <requirement or explicit_absence>
contested_requirement_or_absence: <requirement or explicit_absence>
exhausted_capacity_or_absence: <capacity or explicit_absence>
readers:
lock_beneficiary: sponsor | archive | inspector | management | route_asset | public_table | lawful_reader | artist | fan_public | handler | broadcast_reality | equivalent
harmed_reader_if_silent: sponsor | archive | inspector | management | route_asset | public_table | lawful_reader | artist | fan_public | handler | broadcast_reality | equivalent
future_reader: <reader, route, package, proof window, ending scar, or explicit_absence>
explanation:
shown_to_player: true
reason_text: <short in-world explanation>
proof_bridge_or_absence: <receipt, seal, checksum, witness, docket, or explicit_absence>
recovery:
recovery_posture: fulfill_requirement | assign_carrier | downgrade_branch | pay_bond | publish_absence | accept_recovery_only | suppress_lock | default_silent
required_recovery_surface_or_absence: <surface or explicit_absence>
future_route_effect: branch_eligible_with_named_cost | eligibility_carrier_required | downgraded_branch_only | eligibility_bond_required | public_absence_receipt_required | branch_recovery_only | suppressed_branch_challenge_armed | silent_branch_suppression_pendingExact runtime card set
The JSON5 catalog contains exactly nine real, non-virtual evidence cards. They are not metadata placeholders and no selected branch is represented by an invented posture card.
| Rite slot | Stable card ID | Scoped evidence |
|---|---|---|
receipt | storyteller.card.branch_eligibility_receipt.v1 | receipt identity and eligibility row |
source_option_set | storyteller.card.branch_eligibility_source_option_set.v1 | the actual pre-selection option surface |
candidate_branch | storyteller.card.branch_eligibility_candidate_branch.v1 | the material branch tested by that surface |
blocker_row | storyteller.card.branch_eligibility_blocker_row.v1 | the live blocking row or explicit absence |
missing_requirement | storyteller.card.branch_eligibility_missing_requirement.v1 | the unmet or contested requirement |
lock_beneficiary | storyteller.card.branch_eligibility_lock_beneficiary.v1 | the local actor/reader who benefits from the lock |
harmed_reader | storyteller.card.branch_eligibility_harmed_reader.v1 | the local reader harmed if the reason stays silent |
proof_bridge | storyteller.card.branch_eligibility_proof_bridge.v1 | the proof, carrier, notice, bond, or explicit absence that can bridge review |
future_reader | storyteller.card.branch_eligibility_future_reader.v1 | the later route that will consume receipt or default state |
Each slot accepts only its matching ID, all nine assignments must be in hand, and the rite must reject substitutions, omitted cards, and branch-specific virtual cards. The receipt’s candidate branch and source option set must agree with the companion evidence cards; possession alone does not establish eligibility. Other receipt fields above are rows carried inside these cards, not extra rite slots.
Valid receipt states
| State | Meaning | Required future effect |
|---|---|---|
eligible | branch remains selectable with named cost | route proceeds with visible cost |
locked | branch is unavailable because a live requirement is unmet | unlock requires named recovery surface |
suppressed | a desk, claimant, or narrator hides the branch while benefiting from absence | false-unavailable or hostile future pressure is armed |
downgraded | full branch is unavailable but a lower branch remains | downgraded route inherits cost |
hidden_by_claimant | a claimant’s filing changes which options can be shown | future reader sees claimant pressure |
recovery_only | clean branch is gone but scar-preserving recovery remains | recovery-only route persists |
explicit_absence | absence is itself recorded and can be read later | route sees published absence or default |
Adjacency boundary
This card is adjacent to but distinct from existing surfaces:
- 未采纳报价回执线 records offers that were visible and not selected.
- 路线停办登记线 records a partially recoverable route being stopped.
- 容量告知送达队列线 records service requirements on capacity rows.
- 经营压缩台机制 records executive over-counting after success.
Branch Eligibility Receipt records the earlier edge: a branch is not, or is no longer, materially available, and the reason has route consequences.
In particular, a visible offer that the player declines belongs to Declined Offer Receipts. This card begins only when the candidate branch is unavailable before selection. It may preserve that unavailability; it cannot retroactively claim that the player saw and rejected the branch.
Local authority boundary
Each card proves only its named row. The source-option card does not prove the candidate was offered; the candidate card does not prove it was eligible; the blocker and missing-requirement cards do not prove the blocker was rightful; the beneficiary and harmed-reader cards do not adjudicate their claims; the proof bridge does not automatically satisfy the requirement; and the future-reader card does not grant route clearance. The nine-card set grants no consent, waiver, settlement, archive release, proof truth, sponsor/fan/inspector/editor authority, or universal broadcast authority.
Default posture
If the branch disappears without this card or an equivalent receipt, the route does not become clean. A silent lock arms false-unavailable pressure: a later reader can ask why the unavailable branch was not shown, why the missing requirement was not named, and who gained by treating the lock as natural.