Six test-only additions, no source change.
- soul_a_mixed_patch_conserves_every_resource_it_touches: the ledger equation as
arithmetic over committed totals across transfer + transform + consume in one
patch, plus the admit-only opening balance. Absence stays absent.
- soul_a_forged_sequence_dies_at_the_per_operation_check_not_the_ledger: answers
the reachability question for the apply-side check_ledger. A forged
PatchAdmitted carrying two transfers whose second exceeds what the first left
dies at apply_operation's own precondition, one operation early. A conserving
forged sequence applies. from == to and from_resource == into_resource are
refused by their arms. A forged Admit still needs its receipt.
- soul_a_holding_cannot_overflow_silently: QuantityOverflow had no landed test.
Two admissions summing past u64::MAX are the complete verdict; nothing mints.
- soul_an_incoming_transfer_changes_only_the_counterpartys_scope: the receiver's
bound proposal is refused with ScopeChanged; an unrelated subject's commits.
- soul_replay_is_exact_after_every_custody_operation: replay covered only
transfer. Transform, consume, and both bind targets now ride the same restart.
- soul_a_dependency_on_an_absent_or_wrong_kind_target_is_corrupt: the dependency
shape clauses refuse a wrong-kind target, an empty target set, and an orphan
holder key.
cargo test -p ghostlight-dungeon --bin ghostlight-dungeon world::
97 passed, 0 failed, 1 ignored.
cargo test -p ghostlight-dungeon: 132 passed + 1, 0 failed, 1 ignored.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>