7a87cdda14166648283afafcf61dffe5278a52ad
Jahni, twice and explicitly: he is fine with unverified work as long as it is committed per group, and he wants the successor working toward full op stack completeness. So the queue no longer stops at stage B. Removed the hard stops on stage C and on flipping the ported list. Two facts make that reasonable rather than reckless, and both are now written down: committing per group IS the safety net (he reverts by sha), and reaching 8 of 8 does not change his world by itself — UsesOperatorStackForChunk still returns false unless a strate has bUseOperatorStack ticked, so the flag flip is inert until he ticks a box. Queue is now B1-B5 (13 detail modifiers), C1 (per-room op override), C2 (Underwater, which §8 establishes has no density difference at all), C3 (both into the ported list = 8 of 8), then the §C2 audit question, the worm amplitude cap, and making ClassifyTile consume ClassifyBox. C1's design is settled here rather than left open, because an unattended run should not be improvising architecture: take §2's option (a), and use the mechanism this codebase already has three instances of — one op owns shared state, others read it through a non-owning pointer (overhang <- column source, ledge <- shaft source). FRoomGraphSource exposes LocalParamsAt(); detail ops read their fields from it. Same resolution as the pit/chimney "fiddliest thing in the decomposition": the difficulty came from assuming each op must own its params. Still off limits: build, editor, push, ticking bUseOperatorStack on an asset, and Phase 3. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
No description provided
Languages
C++
97.6%
C
2.3%
C#
0.1%