Route Asset Maintenance Roster / 路线资产维护花名册
Route Asset Maintenance Roster is a management card that records which already-won route assets are still fresh enough to use, which ones need upkeep, and which ones are degrading into recovery-only pressure.
It is the concrete card surface for 路线资产维护分诊机制. It should appear only when at least two assets remain potentially useful and at least one has state pressure that can change future route acceptance.
Card promise
The roster is not a collection checklist. It is an active pressure card.
A valid roster row must answer:
- what asset was won;
- where it came from;
- who currently controls or contests it;
- what maintenance pressure is attached;
- which routes still accept it;
- what happens if it is refreshed, rotated, degraded, frozen, cannibalized, recovered, or defaulted.
Required row schema
route_asset_maintenance_row:
row_id: <stable row id>
asset_id: <stable asset id>
source_surface: <storyline, rite, event, or card id>
source_session_id: <session id or explicit_absence>
asset_kind: witness | public_receipt | lawful_copy | editor_cut | sponsor_package | fan_ledger | archive_docket | permit | memorial_copy | scarred_right | proof_object | equivalent
asset_state_before: fresh_asset | maintenance_due | overexposed_asset | stale_asset | degraded_asset | frozen_asset | recovered_asset | cannibalized_asset | lost_asset | false_fresh_asset
custodian: production | archive | inspector | fan_public | sponsor | editor | claimant | handler | pirate_relay | explicit_absence
maintenance_pressure: payroll_due | public_doubt | lawful_expiry | edit_ambiguity | sponsor_capture | false_owner_risk | claimant_hostility | archive_opacity | overexposure | recovery_cost | route_wear | scar_restriction | equivalent
accepted_routes: []
rejected_or_costlier_routes: []
valid_responses: []
default_if_unmaintained: <state or event>The card fails as design if it stores only a title, flavor note, or passive inventory count.
Card states
| Card state | Meaning | Player-facing consequence |
|---|---|---|
roster_closed | No maintenance pressure is currently live. | Do not offer this card. |
roster_watchlisted | Assets exist but no route currently depends on freshness. | Keep provenance; no filler offer. |
maintenance_roster_open | At least two assets exist and at least one has due pressure. | Offer triage response. |
asset_selected_for_refresh | Player has chosen one row to refresh or recover. | Requires handler/proof/cost. |
asset_rotated_out | Player preserves one asset by using another. | Source route remains possible but substitute gains wear. |
asset_degraded_in_use | Player accepts weaker use. | Current route gets partial relief with scar/default risk. |
asset_frozen_for_recovery | Player blocks current use to preserve future recovery. | Current route narrows; future recovery stays named. |
asset_cannibalized | One asset is burned to sustain another. | Harmed claimant and lost route effect are recorded. |
maintenance_default_ready | Roster was hidden, under-supported, or falsely cleared. | Default event may fire or future route rejects asset. |
Valid asset families
This card can store rows produced by:
- 播出资产来源账本 derivative copies;
- 播出盈余认领账本 dividend rows;
- 和解反震账本 relief/debt rows;
- 受保护证人薪册 person assets;
- 到期认领队列 resurfaced dormant rows;
- 结局伤痕账本 scarred rights;
- any equivalent row from Route Assets and Custody.
Branch rows
Refresh row
response: refresh_custody
requires_any: [handler, receipt, lawful_seal, checksum, public_witness, payroll_support, archive_bridge, sponsor_waiver]
asset_state_after: fresh_asset | recovered_asset | maintenance_due
must_record_cost: trueRotate row
response: rotate_use
preserved_asset_state_after: fresh_asset | frozen_asset
substitute_asset_state_after: maintenance_due | overexposed_asset | stale_asset | degraded_asset
future_route_effect: changed_by_asset_identityDegrade row
response: accept_degraded_use
current_relief: partial
asset_state_after: degraded_asset | false_fresh_asset | stale_asset
armed_default: trueFreeze row
response: freeze_for_recovery
current_route_effect: blocked | delayed | weaker | recovery_only
asset_state_after: frozen_asset
recovery_bridge_required: <named bridge>Cannibalize row
response: cannibalize
source_asset_state_after: cannibalized_asset | lost_asset | degraded_asset
maintained_asset_state_after: fresh_asset | recovered_asset
harmed_claimant_recorded: trueCounter rows
Each roster resolution should record at least three state/counter deltas, including relief, cost, and future route effect.
Common row deltas:
route_asset_freshnessroute_asset_wearasset_stalenessasset_recovery_costfuture_route_acceptancecustody_claritypublic_receipt_legitimacypublic_receipt_distrustlawful_admissibilityinspection_heatarchive_debtedit_debthandler_burdenwitness_payroll_duesponsor_stop_loss_pressurecontract_capturefan_oxygen_resentmentfalse_owner_pressure
Replay evidence shape
card: storyteller.card.route_asset_maintenance_roster.v1
entry_state:
trigger_kind: state_pressure
roster_assets_min: 2
maintenance_due_min: 1
no_fixed_turn_trigger: true
rows:
- row_id: <row>
asset_id: <asset>
source_surface: <source>
asset_state_before: <state>
custodian: <custodian>
maintenance_pressure: <pressure>
accepted_routes: []
rejected_or_costlier_routes: []
selection:
selected_row_id: <row>
selected_response: refresh_custody | rotate_use | accept_degraded_use | freeze_for_recovery | cannibalize | default_selects
result:
asset_state_after: <state>
counter_deltas: {}
future_route_effect: <effect>Non-goals
- Not an inventory screen.
- Not a raw count of unlocked content.
- Not a fixed upkeep timer.
- Not valid if every row is always assignable.
- Not valid if a degraded row lacks a recovery or loss consequence.