Route Discontinuance Register / 路线停办登记机制
This mechanism turns one residual route stop into a durable, reader-visible state. Its narrow runtime promise is to consume the completed company lost-property transfer opened by accept_company_lost_property_transfer, resolve the intervening Shen Mansheng custody window, review one pending source row, and materialize a row the existing Salvage Floor Docket can read only through notice_pause.
Fixed source and downstream consumption
source_contract:
source_rite: storyteller-rite-d17-lost-and-found-night
source_choice: accept_company_lost_property_transfer
required_completion_flag: complete_storyteller-rite-d17-lost-and-found-night
source_pending_flag: storyteller_d17_company_cleanup_pending
source_row: transfer.company_cleanup.d17
source_surface: route_asset_custody
source_state: company_cleanup_transfer_open
route_or_asset: route.d17.lost_property_night
fixedSourceRow:
row_id: route-discontinuance.d17.company_cleanup_open
discontinuance_pressure: sponsor_capture
partial_viability: viable_with_public_notice
claimant_and_harmed_reader: public_fan
carrier_before: card-storyteller-shen-mansheng
handler: producer
proof_bridge: public_notice
selected_posture: unselected
state_after: pending_selected_posture
future_reader: memorial_receipt_route
future_effect: pending_selected_posture
noticePauseMaterialization:
row_id: route-discontinuance.d17.public_pause
source_row_id: route-discontinuance.d17.company_cleanup_open
selected_posture: notice_pause
state_after: paused_under_notice
future_effect: public_only
carrier_after: public_table
salvage_floor_after: public_notice
required_runtime_flags:
- route_discontinuance.branch.notice_pause
- route_discontinuance.state.paused_under_notice
- future_route.public_only
downstreamConsumer:
reader: storyteller.card.salvage_floor_docket.v1
reader_row: floor.public_notice.d17
expected_discontinuance_register_row: route-discontinuance.d17.public_pause
expected_source_state_after: paused_under_notice
eligible_only_when_branch: notice_pauseThis is an exact crossread, not a thematic association. The source rite must be completed with the matching option and pending flag. The static register owns route-discontinuance.d17.company_cleanup_open; it does not preselect a posture. Only the notice-pause branch materializes the downstream row, and all three required branch/state/future flags must be present. The other seven branches cannot expose route-discontinuance.d17.public_pause merely because they preserve some public notice as local evidence.
Assignment mechanism
The one-shot review exposes twelve slots in this exact order:
registersource_rowroute_or_assetdiscontinuance_pressurepartial_viabilityclaimantharmed_readercarrier_anchorhandlerproof_bridgesalvage_floorfuture_reader
Each slot accepts exactly one matching runtime card, and all assigned cards must be in hand. The counterreceipt is an output card, never a starter assignment.
Underfill, substitution, off-hand assignment, no-choice resolution, and a repeated run all fail closed. None of those failures invents an unregistered discontinuance. The review also requires both complete_storyteller-rite-d17-lost-and-found-night and storyteller_d17_company_cleanup_pending; deterministic replays earn these by running D17 choice index 1 and the Shen Mansheng custody event before the review.
Decision mechanism
The rite exposes exactly eight ordered choices: registered_stop, notice_pause, transfer_carrier, convert_recovery_only, public_abandonment, private_suppression, reopen_with_bond, and unregistered_default.
Every successful choice writes one exact branch/state/future mapping:
branch_state_future:
registered_stop: registered -> blocked_with_notice
notice_pause: paused_under_notice -> public_only
transfer_carrier: transferred -> carrier_required
convert_recovery_only: recovery_only -> recovery_only
public_abandonment: publicly_abandoned -> public_audit_required
private_suppression: privately_suppressed -> hostile_if_challenged
reopen_with_bond: reopened_with_bond -> bond_required
unregistered_default: default_pending -> unregistered_discontinuance_pendingOnly index 7, unregistered_default, sets the shared pending gate for storyteller.event.unregistered_discontinuance_default.v1. Choices 0 through 6 clear it. In particular, private_suppression does not arm the event merely because it is risky; the v1 event represents an explicitly unregistered disposition, not every private decision.
The eight-day review expires as unresolved_review_remains_visible_without_arming_default. expiryArmsDefault is false: expiration leaves the source row pending and inspectable, with no default flags and no counterreceipt. Only explicit index 7 can arm the event.
Default mechanism
The event offers exactly six exclusive terminal families:
sponsor_clean_cancellationinspector_lawful_stoparchive_absencepublic_abandonment_claimoperator_betrayalbroadcast_reality_erasure
Their exact state/future mappings are captured/sponsor_only, lawful_only/lawful_appeal_required, blocked/public_addendum_required, public_only/fan_refund_required, hostile/carrier_required, and recovery_only/ending_scar_pending, in the same order. Each terminal clears the pending gate and grants storyteller.card.unregistered_discontinuance_counterreceipt.v1. The six outcomes change who gets to narrate the discontinuance, but none deletes the pending source row or grants universal authority.
Local authority
The packet may record only this fixed route’s discontinuance posture, preserve its named source/claimant/carrier/proof/salvage/future-reader fields, and make a default narrator inspectable. It cannot grant consent, ownership, waiver, settlement, legal validity, sponsor authority, inspector authority, archive truth, operator betrayal as universal fact, route clearance, salvage ownership, or a clean all-reader cancellation.
Recovery and consumption
The constructive notice-pause branch ends at the exact branch/state/future triple that floor.public_notice.d17 expects and materializes route-discontinuance.d17.public_pause. Later salvage, memorial, custody, public-proof, or broadcast-reality play consumes that row; it does not rerun the one-shot review. No other branch is eligible for this crossread.
The default branch is likewise terminal for this rite. Its counterreceipt is a scar and provenance object, not permission to reopen or erase the route.
Non-goals
- Not a generic cancellation framework for every route.
- Not a fixed chronology or raw route-count trigger.
- Not a replacement for remedy, ending, or salvage-floor systems.
- Not valid if source identity, claimant, carrier/proof, salvage floor, harmed reader, or future reader disappears from the playable row.