✅ Fuse demons does not mutate input
| Category | Ability |
| Status | Passing |
| Test | tests/test_fusion.py::test_fuse_demons_does_not_mutate_input |
Verify copy-on-write — fuse_demons must not mutate the input state.
Preconditions
- P1 owns Murmur (#002) and Duban (#001) in lane 0
Action
- fuse_demons(state, murmur, duban)
Expected Postconditions
-
Original state.demons still has 2 demons
-
Original murmur.is_fused is still False
-
Original murmur.state is still READIED
Assertions
assert len(state.demons) == original_demon_count
assert state.demons[0].is_fused == original_top_is_fused