Document all four mapped override components and the deferred (assumed) wall states

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jun-te Kim 2026-06-17 18:55:23 +00:00
parent 1c3b4a7b72
commit 1b070b6d8f

View file

@ -3,9 +3,22 @@
The boundary between the faithful `property_overrides` read model
(`ResolvedPropertyOverrides`, value-space) and the domain overlay surface
(`EpcSimulation`). Lives in `repositories/` because it consumes a repository
type `domain/` never imports `repositories/`. Per-component and partial: an
override produces an overlay only where a component mapping exists and resolves
(the tracer covers `wall_type`); everything else is left to the lodged EPC.
type `domain/` never imports `repositories/`.
Per-component and partial an override produces an overlay only where a
component mapping exists and the value resolves; anything else is left to the
lodged EPC. All four `override_component`s are mapped:
* `wall_type` fabric overlay (`wall_construction` + `wall_insulation_type`)
* `roof_type` fabric overlay (`roof_insulation_thickness`, loft-depth family)
* `property_type` / `built_form_type` whole-dwelling categorical correction
Two value families deliberately resolve to *no* overlay rather than a guess: the
`"(assumed) insulated"` / `"partial insulation (assumed)"` wall states (RdSAP
infers their U-value from the build-era age band, so there is no single
`wall_insulation_type` code for them they need Elmhurst validation, ADR-0032),
and `"Unknown"` categorical values. Roofs with no clean loft depth (flat,
room-in-roof, "another premises above") likewise produce no overlay.
"""
from __future__ import annotations