Two gaps in the first-person walkthrough collider world:
- The visible default ground is the site node's mesh, but `site` is a
`site`-category node and excluded from the generic collider sweep. The
per-level fallback floor only fires for a level without a slab, so a
spawn on the bare ground (no slab) had no floor and fell through. Add a
dedicated site-ground collider derived from node data (not the rendered
mesh, so it's immune to geometry-mount timing) covering the scene
footprint at the site's ground plane.
- Ceilings are `structure`-category and were swept in as colliders, so the
player was held up as if standing on a floor slab. Exclude nodes whose
registry `surfaceRole` is 'ceiling' so the player passes through them
(they're a transparent mount surface for lights/fans), while walls,
slabs and stairs keep colliding.
Adds tests for both behaviors.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>