Summary
initialState in src/engine/src/kinds/world-graph/initial.ts:74-79 places scenery from scenario.sceneryPlacements with no geometry validation — no check that the rotated footprint stays within map bounds or avoids occupied/blocked cells. Building placement, by contrast, goes through checkBuildingPlacement (see initial.ts:42) which does validate this.
Where this came from
Flagged by automated Qodo review as "Validate scenery placement geometry" against PR #124, fixed in never-merged remediation PR #126. Not reapplied during the W46-W49 rewrite — confirmed still present against current main.
Suggested fix
Apply the same placement-geometry validation used for buildings (bounds + occupancy check against the rotated footprint) to scenery placements, either in initial.ts or as a Tier-1/2 rule in validate.ts.
Summary
initialStateinsrc/engine/src/kinds/world-graph/initial.ts:74-79places scenery fromscenario.sceneryPlacementswith no geometry validation — no check that the rotated footprint stays within map bounds or avoids occupied/blocked cells. Building placement, by contrast, goes throughcheckBuildingPlacement(seeinitial.ts:42) which does validate this.Where this came from
Flagged by automated Qodo review as "Validate scenery placement geometry" against PR #124, fixed in never-merged remediation PR #126. Not reapplied during the W46-W49 rewrite — confirmed still present against current
main.Suggested fix
Apply the same placement-geometry validation used for buildings (bounds + occupancy check against the rotated footprint) to scenery placements, either in
initial.tsor as a Tier-1/2 rule invalidate.ts.