Add a Gymnasium-style WorldInterface ABC at src/infrastructure/world/
with adapter registry, MockWorldAdapter for testing, and TES3MP stub.
Wire the interface into a new Heartbeat v2 loop (src/loop/heartbeat.py)
that drives observe→reason→act→reflect cycles through whatever world
adapter is connected, with graceful fallback to passive thinking when
no adapter is present. Enrich Phase 1 (Gather) with world observations.
Includes 63 passing tests covering interface contracts, all adapters,
registry, heartbeat cycles (embodied + passive), and WS broadcast.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>