Skip to content

Grid Placement v6.1.0

Nature and Floors (3D Coexistence Contract)

Floors are ground overlays — plants and floors coexist on a column in either commit order.

Status
Current
Version
v6.1.0
Source updated
2026-09-24
Generated on
2026-09-23

In the 3D demo, floors are ground overlays, not occupants: a plant and a floor share a column in either commit order, and the plant keeps the column occupant slot. Deliberate, tested contract — see test/demos/integration/3d/floor_overlay_coexistence_test.gd:

  • A plant on a column never vetoes a floor paint there, and the floor commit must not steal the occupant slot from the plant.
  • A floor on a column never vetoes a plant there; the plant commits over it.
  • Walls still mount on a shared plant+floor cell (the overlay floor keeps publishing the "floor" family they attach to), while a plant-only cell still refuses walls (a bush is not a mountable surface).

Why no exclusion rule exists

A "nature refuses floors / floors evict nature" rule was prototyped during 6.1 (profile denies_overlay_families + demo eviction) and reverted before RC: it contradicts the coexistence tests above, which encode the shipped design (planter boxes on patios, bushes along deck edges). Revisit only as an explicit product decision — flipping the rule means rewriting the coexistence suite, not just adding a veto.

If that decision ever lands, the authority split stays: the plugin would own a generic data-driven mechanism, the demo would own the family data and any destruction consequence (through the demolish lifecycle, never a parallel removal path).