# Slice J6.1 — canonical world-environment ownership **Date:** 2026-07-26 **Production commit:** `902076c0a42079596a8a273e9be402776cabf4b0` **Exact rollback:** `git revert 902076c0a42079596a8a273e9be402776cabf4b0` ## Outcome `AcDream.Runtime` now owns one world-environment lifetime per client session: - an instance-scoped `DerethCalendar`; - the server-synchronized world clock; - weather progression and active weather state; - retail day-group selection; - AdminEnvirons state; - typed debug time and weather overrides. `AcDream.App` remains the graphical host. It converts immutable DAT sky definitions into the Runtime definition and maps Runtime's selected day-group index, clock, and weather snapshot into sky rendering. It does not own a second clock or weather state. The production path no longer mutates a process-global Region calendar origin. Two Runtime instances may therefore use different Region origins and server times without contaminating each other. Startup environment variables enter once through `RuntimeOptions`. ## Retail mechanism - `SkyDesc::CalcPresentDayGroup @ 0x00500E10` - `CPlayerSystem::Handle_Admin__Environs @ 0x0055DE20` `SkyDayGroupSelector` preserves the named-retail ordered selection algorithm and its `0x6A42FDB2` pseudo-random multiplier. `DerethCalendar` preserves the existing retail epoch conversion while moving the mutable Region origin into the owning Runtime instance. No new retail divergence was introduced. ## Automated evidence - Runtime: 332 passed. - App: 3,718 passed / 3 skipped. - Complete solution: 8,611 passed / 5 skipped. - Release build: 0 errors, 0 warnings. - Runtime dependency/source guards: passed. - Two-instance calendar, TimeSync, rollover/day-group, AdminEnvirons, debug override, reset, and projection fixtures: passed. ## Connected evidence Report: `logs/connected-world-gate-20260726-164602/report.json` The report records source and embedded binary commit `902076c0a42079596a8a273e9be402776cabf4b0`. - Capped process: 244.907 seconds, six checkpoints, graceful code-zero exit. - Uncapped fresh-process reconnect: 61.46 seconds, one checkpoint, graceful code-zero exit. - Route: fresh login, Aerlinthe, Rynthid world edge, Facility Hub dungeon, Holtburg, Aerlinthe revisit, then fresh-process reconnect. - Failures: zero. - Expected warning: 25 instrumented world-edge landblock misses. - Reveal invariant failures: zero. This proves the new environment owner preserves connected login, outdoor, world-edge, dungeon, revisit, disconnect, and reconnect behavior before J6.2 moves the independent portal/reveal lifetime.