{"scenario": "extension-conflict", "rejected": "overlapping resource commitment", "pass": true}
{"scenario": "failed-extension-keeps-rental-and-document", "actual": [11, 1], "expected": [11, 1], "pass": true}
{"scenario": "adjacent-extension-accepted", "actual": 12, "expected": 12, "pass": true}
{"scenario": "extension-retains-original-document", "actual": [[1, 11], [2, 12]], "expected": [[1, 11], [2, 12]], "pass": true}
{"scenario": "substitute-occupied-resource", "rejected": "overlapping resource commitment", "pass": true}
{"scenario": "substitute-incompatible-kind", "rejected": "resource kind mismatch or missing resource", "pass": true}
{"scenario": "failed-substitutions-keep-state", "actual": ["E1", 2], "expected": ["E1", 2], "pass": true}
{"scenario": "compatible-free-replacement", "actual": "E4", "expected": "E4", "pass": true}
{"scenario": "replacement-keeps-old-resource-history", "actual": ["E1", "E1", "E4"], "expected": ["E1", "E1", "E4"], "pass": true}
{"scenario": "existing-rental-keeps-template-version", "actual": [1, 1, 1], "expected": [1, 1, 1], "pass": true}
{"scenario": "replacement-releases-old-resource", "actual": "E1", "expected": "E1", "pass": true}
{"scenario": "new-rental-selects-new-template", "actual": 2, "expected": 2, "pass": true}
{"scenario": "extension-cannot-shorten", "rejected": "extension must lengthen rental", "pass": true}
{"scenario": "duplicate-rental-id", "rejected": "duplicate rental id", "pass": true}
{"scenario": "naive-document-first-still-fails-capacity", "rejected": "overlapping resource commitment", "pass": true}
{"scenario": "naive-partial-update-is-observable", "actual": [11, 13], "expected": [11, 13], "pass": true}
PASS 16: 16 behavior scenarios; sequential in-memory validation only, no durable transaction guarantee
