# domna-domain Shared domain types — `Property`, `Properties`, `BaselinePerformance`, `Plan`, `PlanPhase`, `Scenario`, `ScenarioPhase`, `ScenarioSnapshot`, `Recommendation`, `OptimisedPackage`, `EpcPropertyData`, etc. **Boundary**: types only. No persistence, no IO, no business logic. Other packages and services depend on `domna-domain`; this package depends on nothing internal. Domain definitions live in [`../../CONTEXT.md`](../../CONTEXT.md). New types added here must match the glossary terms. ## Layout ``` src/domain/ ├── __init__.py ├── property.py # Property, Properties, PropertyIdentity ├── site_notes.py ├── landlord_overrides.py ├── baseline_performance.py # lodged + effective pair (ADR-0004) ├── plan.py # Plan, PlanPhase, OptimisedPackage ├── scenario.py # Scenario, ScenarioPhase, ScenarioSnapshot (ADR-0005) ├── recommendation.py ├── geospatial.py ├── solar.py ├── anomaly_flags.py └── ml/ ├── __init__.py ├── transform.py # EpcMlTransform (versioned per §8.3) └── schema.py ``` When `datatypes/epc/domain/` folds in, the EPC schema types move under `src/domain/epc/`.