feat(simulation): T-1152 server half — WindowGranularity enum, derive_orbital_at_metres, Region rung on the same carrier
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).
This commit is contained in:
@@ -1202,6 +1202,7 @@ mod inbound_tests {
|
||||
window_center: None,
|
||||
window_n: 0,
|
||||
window_granularity: 0,
|
||||
window_granularity_v2: None,
|
||||
window_min_wl_m: 0,
|
||||
};
|
||||
let frame = rmp_serde::to_vec_named(&req).unwrap();
|
||||
@@ -1249,6 +1250,7 @@ mod inbound_tests {
|
||||
window_center: None,
|
||||
window_n: 0,
|
||||
window_granularity: 0,
|
||||
window_granularity_v2: None,
|
||||
window_min_wl_m: 0,
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
Reference in New Issue
Block a user