Python 3.14.4; synthetic single-person rehearsal; UTC
PASS command_results actual=['CONFIRMED', 'RECORDED', 'OVERLAP_REJECTED', True, 'CONFIRMED', 'OVERLAP_REJECTED', 'CONFIRMED']
PASS timeline actual=['ReservationConfirmed:A', 'PaymentRecorded:A', 'ReservationRejected:B', 'ReservationCancelled:A', 'RefundReviewOpened:A', 'ReservationConfirmed:F']
PASS trace_valid actual=True
EVENT {"at": "2026-10-03T09:00:00Z", "cause": "C1", "id": "E1", "kind": "ReservationConfirmed", "request": "A"}
EVENT {"at": "2026-10-03T09:01:00Z", "cause": "C2", "id": "E2", "kind": "PaymentRecorded", "request": "A"}
EVENT {"at": "2026-10-03T09:02:00Z", "cause": "C3", "id": "E3", "kind": "ReservationRejected", "request": "B"}
EVENT {"at": "2026-10-03T09:03:00Z", "cause": "C4", "id": "E4", "kind": "ReservationCancelled", "request": "A"}
EVENT {"at": "2026-10-03T09:03:00Z", "cause": "policy:C4", "id": "E5", "kind": "RefundReviewOpened", "request": "A"}
EVENT {"at": "2026-10-03T09:06:00Z", "cause": "C7", "id": "E6", "kind": "ReservationConfirmed", "request": "F"}
PASS cancelled_replay_does_not_rebook actual=False
PASS only_fresh_F_active actual=['F']
PASS replays_do_not_emit_again actual=6
PASS review_is_not_refund actual=False
PASS hotspots_stay_open actual=['OPEN', 'OPEN']
HOTSPOT {"anchor": "RefundReviewOpened", "evidence_needed": "取消条款及适用版本的业务确认", "id": "H1", "owner_role": "合同规则确认角色", "question": "取消后应退多少，是否有取消费用？", "status": "OPEN"}
HOTSPOT {"anchor": "ReservationCancelled", "evidence_needed": "交付后撤销与归还场景的业务确认", "id": "H2", "owner_role": "履约规则确认角色", "question": "设备已经交付之后是否仍允许直接取消？", "status": "OPEN"}
PASS unpaid_cancel_no_review actual=['ReservationConfirmed', 'ReservationCancelled']
REJECT omitted_policy_result: unresolved synchronous policy obligation
REJECT reversed_timeline: event time reversed
REJECT invented_refund_fact: command/event mismatch
REJECT wrong_command_cause: command/event mismatch
REJECT empty_hotspot: missing hotspot question
REJECT policy_event_as_command: unsupported policy subset
REJECT changed_retry: request payload changed
PASS failed_retry_keeps_timeline actual=6
REJECT missing_UTC: explicit UTC required
PASS 20: 18 scenarios; OPEN hotspots are not business consensus
