# Habitable roof-space continuation, Hearth 1.5.0

This continuation improves individual buildings under the original R01-R30 specification. Requested
lofts are now furnished, lit rooms reached through actual stairs. Shared veranda, gable and chimney
rules improve the exterior across seeded compositions. No serious flaw in the requested architecture
was found. The encountered failures were component scheduling, fitting and enclosure defects, repaired
without a kernel change. The [initial review](review.md), [baseline hashes](baseline-hashes.json),
[module comparison](module-delta.json) and [public API delta](api-delta.md) retain that distinction.

All **266 tests passed in 253.50 seconds**, including the unchanged 230 previous tests and 36 new
parameterized cases. The [final regression log](full-regression-final.txt) is the release result.
Earlier development attempts and assessments remain in this directory; final corpus data is under
`final/`. Earlier delivery evidence under `reports/building-detail`, `reports/building-quality`, and
`reports/extension-corpus` has not been replaced. The previous default artifact is archived under
`samples/building-space/baseline-default`.

## Implemented behavior

- `Room` exposes an oriented upper-floor access interface. `RoofPlatform` supplies its floor opening
  and knee walls. `InhabitedRoof` composes the ordinary weather roof and an installed `LoftInterior`.
  Independent implementations can use the same public ports and existing component lifecycle.
- Roof rooms have locked purpose, at least two usable furniture groups, actual supported lanterns,
  stair-opening guards, collar timbers where they fit, and protected routes. The actual air-volume
  validator detects envelope leaks while allowing only the negotiated floor aperture.
- The shared stair layout rotates with the ridge. Platforms precede weather skins, taller gables
  precede lower finials, and ceiling timbers wait for their supporting floor. Optional dormers respect
  stair clearance; their omissions are recorded.
- Verandas span contiguous front rooms with intermediate posts and a rail opening aligned with the
  actual entrance. Chimney caps follow their shafts. A gable uses flush glazing when a canopy blocks
  only its projecting sill and the glazing face remains clear.
- The new short `roof_home` client varies its rear wing, upper wing, bays, ridge direction, roof
  profile and loft purpose. A later held-out client composes three front bays, a rear kitchen and a
  seeded upper room with a three-bay veranda. Neither client writes or repairs blocks.

These are component/API additions. The kernel, transport, environment operations, scoped randomness,
original CLI and previous extension package remain byte-for-byte unchanged against the recorded
baseline. Constructor additions preserve their old defaults; the three lodge clients now explicitly
request roof rooms. Same-version replay is guaranteed by the tested deterministic pipeline; content
is intentionally different from 1.4.

## Finite assessment

The [sampling policy](SAMPLING.md) was recorded before this assessment. Its root seed is 0. General
field expressions, parameters, independent environment/structure seeds and terrain digests are retained
in each batch's `frozen-inputs.json` and `results.json`. Environments are generated and frozen before
placement. No failed input was replaced or resampled. Selected export samples were fixed in advance.

| Batch | Valid inputs | Accepted / attempted contact candidates | Observed principal signatures | Input runtime sum, seconds |
|---|---:|---:|---:|---:|
| Three lodge clients, seeds 0-7 | 24/24 | 48/48 | 20 | 53.112 |
| Original independent pairings | 64/64 | 84/128 | 4 | 100.651 |
| New roof-home client, seeds 0-7 | 8/8 | 16/16 | 8 | 20.969 |
| New independent roof-home pairings | 16/16 | 20/32 | 2 | 37.579 |
| New held-out veranda compositions | 8/8 | 9/16 | 8 | 22.630 |
| Retained garden-house client, seeds 0-7 | 8/8 | 16/16 | 8 | 37.916 |
| Retained garden-house pairings | 12/12 | 19/24 | 2 | 46.331 |
| Prior transformed/blended holdout regression | 16/16 | 16/32 | 2 | 27.876 |
| Bounded stress inputs | 5/16 | 6/32 | 4 among successes | 9.441 |

Supported input success is **156/156**. Candidate acceptance is **228/312 (73.08%)**, a separate
denominator. The planner compares two bounded alternatives per input; a rejected alternative is not
a retried or replaced input. There were zero retries, defects or budget-exhausted results in the final
assessment. The 84 rejected supported candidates remain in the result records.

Stress success is **5/16 (31.25%)**, with **6/32 (18.75%)** accepted candidates. All eleven incompatible
inputs violate the existing five-cell site-relief bound, measured at 6-19 cells. Both declared contact
strategies encounter that same hard condition. This establishes incompatibility with those locked
specifications and bounds, not impossibility for every conceivable building or engineering strategy.
The stress distribution remains difficult; no limit was widened to improve its success rate.

The 40 named-client inputs have **36 distinct principal signatures**: home 6/8, hall 7/8, high 7/8,
roof-home 8/8 and garden-house 8/8. Across all 156 supported inputs there are 44 principal and 128
contact signatures. Principal signatures use actual room footprints/functions/connections, structural
roof geometry and major attachments. They exclude palette, names, global transforms, planting,
roof furniture/light placement, optional porch seats and contact geometry. Contact signatures are
reported separately. The measurement was extended to account for mounted loft floors and to exclude
their furnishings; its counts should not be treated as a direct numerical improvement over the older
signature algorithm.

For the 156 supported inputs, foundation/bearing fill ranges from 0 to 257 cells, totaling 14,386.
Measured excavation is zero. Sitework has 16,687 occupied cells, including 11,661 replacement cells
and 5,026 new cells; these are separate measurements, not additive estimates of terrain removed.
The selected foundation records contain both stepped and pier strategies. These strategies are
retained functionality, not new adaptation breadth in this continuation. No claim of excavation
coverage follows from this corpus. The runtime sums are 347.064 seconds for supported recipes and
9.441 seconds for stress, including paired transport where selected, excluding environment freezing,
rendering and the separate pytest run. Runtime is host-specific.

The complete machine-readable [summary](summary.json), [core results](final/core/results.json),
[new compositions](final/new-compositions/results.json), [garden regression](final/garden-regression/results.json)
and [prior holdouts](final/prior-holdout/results.json) retain all denominators and diagnostics. The old
holdouts are now regression evidence, not a fresh external holdout. All exercises are self-authored.

## Validation, identity and replay

[The new tests](../../test/test_building_space.py) check public discovery and binding, a directly
composed inhabited roof, independent roof-policy substitution, both ridge directions and all four
horizontal rotations, complete paired persistence, precise ownership and branch regeneration.
Deliberately removed supports/treads, broken beds, missing guards/collars, missing light sources,
exterior leaks, malformed aperture metadata, blocked routes, incompatible frames and unauthorized
roof replacement produce diagnostics or atomic rejection. Previous door, window, NBT, shared-owner,
tree/grass/pool, settlement count and connectivity tests remain intact.

The 31 preselected final corpus pairs were exported, reloaded and compared against their generated
scenes: **8,022 structural nodes, 7,306 nonempty component inspection queries and 1,475 NBT-bearing
cells**. Audits compare every node/contract, relationship, dependency, operation, port use, displaced
record, reverse index and current-cell set, as well as semantic geometry and inventories. The
[merged replay manifest](../../samples/building-space/final/manifest.json) identifies every pair.

The unchanged CLI was run with no arguments and with seed 1 and a spaced output path. Freshly
regenerated scenes also matched those complete pairs: **1,711 nodes and descendant-cell queries**,
1,631 nonempty current-component queries and 190 NBT-bearing cells. See [CLI audits](cli-audit-final.json).

| Artifact | Buildings | Blocks | Semantic digest |
|---|---:|---:|---|
| `output.litematic` | 5 | 127,985 | `3e4696cdef9c96b7b064f66d51e72afaf0cfe810db6a7ca567e4991b155b1691` |
| `samples/building-space/final seed 1 settlement.litematic` | 3 | 91,199 | `08d9f61d6c7540c9ed68667f8ffb7560521829be16b4a6278c6e8dacc4f0cd0b` |

Two seed-0 CLI executions with `PYTHONHASHSEED=3` and `8675309` produce that same default semantic
digest, bounds and block count ([replay](replay-final.json)). The headless [glass inspection](inspection-final.json)
recovers the actual window -> dormer wall -> dormer -> roof -> inhabited assembly -> building chain,
typed relationships and exact cells, then verifies the same query after reload. Companion identity
and property-order equivalence semantics are unchanged.

Generation also succeeds while imports of numpy, mcio, PIL, scipy and litemapy are explicitly blocked
([native boundary check](portability-final.json)). This checks the standard-library generation boundary.
**No Pyodide/browser execution was performed in this continuation.** The user's earlier independent
browser report remains historical evidence, not validation of new loft code.

## Visual review and remaining quality gap

All eight original lodge images were opened as aesthetic references. Thirty final views cover five
structures, each with three exterior angles, a ground-floor cut, a loft cut and a circulation section.
All were inspected. Four final samples have identical semantic geometry to their previously inspected
release previews; their 24 images were reused after digest comparison. The changed roof-home seed 2
was rendered again in all six views. [The manifest](render-manifest.json) identifies sources and reuse;
[the visual review](VISUAL-REVIEW.md) records findings and links each image.

The work makes roof volume useful, widens sheltered entrances coherently, improves visible chimney
proportions and removes an avoidably blank gable. Development also exposed real closure problems:
platform floors constructed too late, lower finials preceding taller gables, projecting trim beside
flush boundaries and dormers entering stair headroom. Shared rules fixed these; validators were not
removed or weakened. The retained probe logs include failed development candidates and initial test
fixture corrections. Final success does not erase those failures.

The buildings remain **below the lodge references' visual richness**. Room grids and window rhythms
are regular, the roof vocabulary still consists mainly of bounded gables, some large interiors look
sparse, and gardens/plinths lack the references' irregular terraces and dense landscape composition.
The new room model uses six-cell storeys and cardinal frames. Enclosure, support, movement and light
are explicitly discrete approximations, not full Minecraft simulation or structural engineering.
Independent wet adaptation fixtures expose a usable local entrance but deliberately lack an enclosing
shore/path composition; they are not presented as complete waterfront settlements. Ordinary clients
need no private geometry knowledge, while component authors must follow the documented port-local
aperture, frame, support and room conventions. These are current limits, not a claim that the kernel
prevents broader components.

Rerun commands are in [GENERATOR.md](../../GENERATOR.md#inhabited-roofs-and-broad-verandas). This
delivery completes the implemented roof-room/veranda improvements and their stated finite checks;
reference-level beauty, richer non-grid planning, broader contact strategies, full simulation and
a current browser rerun remain unfinished.
