M-17 Specular Ray-Path Review / M-17 镜面光路复核
Playable long operation for resolving the M-17 off-axis double-body collision before Camera B’s composite mirror insert is reused as one clean lead body.
Entry and timing
rite: storyteller.rite.prop_mirror_tape_afteruse_review.v1
trigger_kind: state_pressure
timing_model: long_operation
duration_days: 3
starts_when: M-17 secondary path meets a composite-body reader
due_before: Camera B mirror insert is reused or aired
expiry_event: storyteller.event.false_prop_mirror_tape_default.v1
repeatable: false
requires_assigned_cards_in_hand: true
requires_selected_option: true
enforce_exact_slot_accepts: true
enforce_conditions: trueExact slots
| Slot | Required card |
|---|---|
docket | storyteller.card.prop_mirror_tape_afteruse_docket.v1 |
source_tape | storyteller.card.prop_mirror_source_tape_row.v1 |
panel_geometry | storyteller.card.prop_mirror_panel_geometry_map.v1 |
camera_ray_map | storyteller.card.prop_mirror_camera_ray_map.v1 |
composite_reader | storyteller.card.prop_mirror_reflected_body_reader.v1 |
body_witness | storyteller.card.prop_mirror_understudy_objection.v1 |
proof_bridge | storyteller.card.prop_mirror_adhesive_bridge.v1 |
future_route | storyteller.card.prop_mirror_future_route_notice.v1 |
Each slot accepts exactly its listed card ID. The rite rejects cards that merely share a tag, arbitrary catalog entries, missing cards, repeated use of one card in multiple slots, virtual placeholders, and execution without an explicit option.
Branch families
| Branch | State after | Relief | Cost / scar | Future effect |
|---|---|---|---|---|
survey_and_bind_take_geometry | take_geometry_bound | measured source-take optical map | survey and edit delay | mirror_geometry_checksum_required |
reblock_understudy_out_of_secondary_path | secondary_path_reblocked | new take avoids secondary path | rehearsal/schedule loss; old master remains double-body | new_take_blocking_receipt_required |
deghost_or_replace_reflective_layer | reflective_layer_replaced_trace_destroyed | future secondary reflection removed | original trace destroyed; mirror look changes | new_mirror_version_calibration_required |
split_direct_and_reflection_masters | body_masters_split | direct and reflected sources remain separate | edit capacity and readback burden | shot_specific_master_readback_required |
name_understudy_as_reflected_performer | understudy_reflection_named | Lian’s physical contribution survives | dual credit, claim heat, sponsor conflict | dual_performer_caption_and_archive_row_required |
reshoot_truthful_axis | truthful_axis_reshoot | new accountable body map | production slot and performer oxygen | old_mirror_master_quarantine_required |
license_scoped_double_body_effect | scoped_double_body_effect | D17/R4 retain a named two-body ghost | dual-persona liability; no cross-edit travel | scene_take_scope_citation_required |
accept_phantom_lead_default | phantom_lead_pending | immediate recap continuity | phantom-lead risk and understudy erasure | phantom_lead_default_pending |
Every option must carry the exact eight-card requiredSlotCardIds map, one unique reflectionTopologyStateAfter, one unique futureRouteEffect, at least one relief, at least one cost, and at least three counter or durable-state changes.
Irreversible and scoped outcomes
deghost_or_replace_reflective_layercreates a new mirror version and cannot retain complete evidence of the old layer geometry.reblock_understudy_out_of_secondary_pathaffects only a newly recorded take; it cannot cleanD17.reshoot_truthful_axiscreates a new master while the old Camera B master remains quarantined evidence.license_scoped_double_body_effectapplies only toD17andR4; it cannot travel into another take, recap, sponsor package, or archive master.accept_phantom_lead_defaultmust armprop_mirror_tape.default_pendingand the default event.
Authority boundary
The review proves a specular ray path for one named take only. No branch grants current performer identity, blocking consent, likeness consent, edit-reuse permission, sponsor clearance, archive ownership, or universal broadcast permission.
Runtime proof contract
lens/storyteller-prop-mirror-reflection-topology.runtime.test.ts must execute all eight options, confirm exact slot enforcement, reject missing or wrong cards and omitted choices, verify destructive geometry loss, and exercise both phantom-lead event outcomes. The lens-scoped replay must select survey_and_bind_take_geometry from an exact normal hand and preserve session, seed, assignments, state, flags, and counter deltas.