feat(simulation): interstitial fill — ground-tile character between building footprints (T-1098)
The BSP leaves that lose the D-233 coverage roll in subdivide_block_footprints were computed and discarded; they are now surfaced as the interstitial rect set (BlockSubdivision), making the ground-plane classification exhaustive by construction: footprint / interstitial / street-margin-or-reserved. FillChunk carries the leaves plus a minimal BlockFillContext (interstitial_character + setback_tier, re-derived at block level via the existing pure fn); FilledChunk gains a sparse interstitial map whose absence contract is stated on the struct (missing key = footprint/street/reserved, never unknown). The pure resolution maps OperationsSurface (D-233) first, else setback_tier onto five of D-235's seven interstitial values — dock_slip/market_pad have no specified trigger in the record and point at T-1209 rather than an invented mapping. Design brief with the geometry model at docs/architecture/interstitial-fill-t1098.md (lead-approved checkpoint). Bonus fix: a degenerate setback shrink previously vanished from BOTH lists silently; it now falls through to interstitial. 14 new tests; full cargo test green incl. all golden harnesses; purity per T-987 (plan-time compute, pre-resolved work items, no cache reads). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -5185,6 +5185,7 @@ mod tests {
|
||||
..Default::default()
|
||||
},
|
||||
block_tags: Default::default(),
|
||||
block_interstitial: Default::default(),
|
||||
},
|
||||
);
|
||||
|
||||
@@ -5252,6 +5253,7 @@ mod tests {
|
||||
..Default::default()
|
||||
},
|
||||
block_tags: Default::default(),
|
||||
block_interstitial: Default::default(),
|
||||
},
|
||||
);
|
||||
|
||||
@@ -5320,6 +5322,7 @@ mod tests {
|
||||
..Default::default()
|
||||
},
|
||||
block_tags: Default::default(),
|
||||
block_interstitial: Default::default(),
|
||||
},
|
||||
);
|
||||
|
||||
@@ -5386,6 +5389,7 @@ mod tests {
|
||||
..Default::default()
|
||||
},
|
||||
block_tags: Default::default(),
|
||||
block_interstitial: Default::default(),
|
||||
},
|
||||
);
|
||||
|
||||
@@ -5627,6 +5631,7 @@ mod tests {
|
||||
..Default::default()
|
||||
},
|
||||
block_tags: Default::default(),
|
||||
block_interstitial: Default::default(),
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user