A point-light shadow lane over the shared rig: the nearest WMO interior fixture
is promoted to a private-layer (31) shadow-casting PointLight proxy, so it casts
the layer-31 world casters into a Bevy cube shadow map; the receiver hook gains
`torch_shadow` (scans clusterable_objects for the shadow-enabled point light and
samples fetch_point_shadow), and static_gx's INTERIOR branch calls it.
Env-gated (WOW_TORCH_SHADOWS), off by default, one torch. FINDING: WMO interiors
are baked-lit (INT batch class = the MOCV bake IS the room's light, including its
baked shadows), so a realtime torch shadow of the STATIC architecture is
redundant and doesn't show via the lit_nl path INT interiors ignore. Committed as
the foundation for dynamic interior lighting (replacing the interior bake with
live torch lighting + realtime shadows) — the next step.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>