refactor: типизация agent-слоя — снапшот без as unknown as
- Снапшот-типы (HeroSnapshot и пр.) — type alias'ы вместо interface: у alias'ов
  есть неявная индексная подпись, поэтому они структурно совместимы с
  JsonValue/SnapshotLayer без кастов.
- Фабрики слоёв (heroLayer/enemiesLayer/npcsLayer/dialogueLayer/lightingLayer/
  collisionLayer) возвращают SnapshotLayer & { <ключ>: <тип> } — рассинхрон
  слоя и типа теперь ошибка компиляции.
- SceneAgentView.agentSnapshot(): LocationSnapshot собирается из слоёв
  напрямую и возвращается как есть (7 кастов убрано); GameAgent.waitFor
  и invariants пользуются типизированным GameSnapshot (ещё 4).

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent f8999e8 commit 30d118f542938099d458962458cabbc0dc3bbbab
@root root authored 8 hours ago
Showing 4 changed files
View
apps/game/src/agent/GameAgent.ts
View
apps/game/src/agent/SceneAgentView.ts
View
apps/game/src/agent/__tests__/snapshot.test.ts
View
apps/game/src/agent/snapshot.ts