2566f537349f339051bb733fa50e3d0f4aca4602
ResolvedLayoutSnapshotV3::finalize maps each strate's generator and interface once into capability records (FI gradient air-gap, surface/FI landing support, passage-anchor columns, SW-to-TN floor); ApplyResolvedStrateBoundaryBand and passage composition read those instead of generator kinds. Derived records stay out of canonical JSON, so layout identity is unchanged. Owner hashes identical to L41; fast/medium/full PASS on clean Clang and GCC builds; cost within noise. Research R9 (read-only): player-visible roadmap refresh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
refactor(core): boundary policy as resolved capabilities, not generator-name tests (L42, step 6); R9
refactor(core): boundary policy as resolved capabilities, not generator-name tests (L42, step 6); R9
refactor(core): boundary policy as resolved capabilities, not generator-name tests (L42, step 6); R9
Languages
C++
97.6%
C
2.3%
C#
0.1%