import { requireAuth } from '@/lib/auth'; import { tickNow } from '@/lib/sim/engine'; import { getStateSnapshot } from '@/lib/game/state'; // v1.1.0 (ISS-107): guarded — 401 without a live X-Flight-Session. The snapshot shape is // unchanged; per-player snapshots are a later step. export async function GET(req: Request) { const auth = await requireAuth(req); if (!auth.ok) return auth.response; try { // Tick-on-read (v0.7.0): advance the sim clock before snapshotting so every // read reflects current game time (expiry/finalize/spawn run inside the tick). await tickNow(); return Response.json(await getStateSnapshot()); } catch (err) { console.error('failed to load game state', err); return Response.json({ error: 'failed to load game state' }, { status: 500 }); } }