R1 measured first: a capped Region tile through the real production path (build_district_window_layer + T-1151 par_iter) at the 64x64 wire cap costs 0.40-0.48ms — faster than the shipped district n=64 window, so Jeroen's progressive capped-density tiling ruling is comfortably interactive on-demand. Raw orbital derive ~0.9µs/cell (~2.3x faster than full derive; region_baseline dominates, not invent_primitives). R5 redesign: WindowGranularity enum (Quarter/District/Region), serde named-variant per the RoadNodeKind precedent, spacing from D-243 scale:: constants — the single source of truth. Additive serde-default window_granularity_v2 request field (None = legacy u32 path; v2 wins when Some); DistrictWindowLayer.granularity_v2 always echoed. Legacy u32 echo for Region uses reserved WINDOW_GRANULARITY_REGION_KEY = u32::MAX (never a legal input) so the old slot cannot lie about aliasing. Cache and coalescing keys carry the enum itself (Ord by declaration order, D-010). n stays district-extent at every rung; Region's cell grid is a DIVISION (round(n/100), min 1) with its own per-axis ceiling DISTRICT_WINDOW_MAX_N_REGION=6400 and a bounded halving-loop clamp (no closed form under the rounding division — the client mirror must replicate the loop). derive_orbital_at_metres: bilinear envelope reads + region_baseline temperature, NO invent_primitives (proven by test — slope_q pinned 0), routed through the shared build_district_profile classification tail so the existing colorizer family renders orbital cells unchanged. R2 stepped-categorical behavior documented at the function, not implied. Region aliasing + clamp/echo tests mirror the T-1150 discipline. 1813 lib tests green; clippy clean; fixture regenerated (254->278 bytes, new echoed field).
278 B
278 B