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_pending

Exact 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 slotStable card IDScoped evidence
receiptstoryteller.card.branch_eligibility_receipt.v1receipt identity and eligibility row
source_option_setstoryteller.card.branch_eligibility_source_option_set.v1the actual pre-selection option surface
candidate_branchstoryteller.card.branch_eligibility_candidate_branch.v1the material branch tested by that surface
blocker_rowstoryteller.card.branch_eligibility_blocker_row.v1the live blocking row or explicit absence
missing_requirementstoryteller.card.branch_eligibility_missing_requirement.v1the unmet or contested requirement
lock_beneficiarystoryteller.card.branch_eligibility_lock_beneficiary.v1the local actor/reader who benefits from the lock
harmed_readerstoryteller.card.branch_eligibility_harmed_reader.v1the local reader harmed if the reason stays silent
proof_bridgestoryteller.card.branch_eligibility_proof_bridge.v1the proof, carrier, notice, bond, or explicit absence that can bridge review
future_readerstoryteller.card.branch_eligibility_future_reader.v1the 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

StateMeaningRequired future effect
eligiblebranch remains selectable with named costroute proceeds with visible cost
lockedbranch is unavailable because a live requirement is unmetunlock requires named recovery surface
suppresseda desk, claimant, or narrator hides the branch while benefiting from absencefalse-unavailable or hostile future pressure is armed
downgradedfull branch is unavailable but a lower branch remainsdowngraded route inherits cost
hidden_by_claimanta claimant’s filing changes which options can be shownfuture reader sees claimant pressure
recovery_onlyclean branch is gone but scar-preserving recovery remainsrecovery-only route persists
explicit_absenceabsence is itself recorded and can be read laterroute sees published absence or default

Adjacency boundary

This card is adjacent to but distinct from existing surfaces:

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.