Рефакторинг: вынос клик-роутинга и агентного моста из LocationScene
LocationScene (1169 строк) — god-object: каждая фича трогала один файл.
Сцена остаётся оркестратором вьюх, логика переезжает в два модуля:

- systems/ClickRouting.ts: чистый резолвер приоритетов resolveClick
  (NPC → клик-переход/заперто → интерактив → цветок → враг → движение)
  с юнит-тестами без Pixi + рантайм InteractionRouter (пути, отложенные
  взаимодействия, step-переходы с дисармом тайла входа). Сцена получает
  его deps-объектом и колбэками (talkTo/collectFlower/useTransition и
  др. остаются в сцене — они трогают вьюхи/катсцены/смену сцен).
- agent/SceneAgentView.ts: агентный фасад (снапшот/инварианты/команды),
  слои снапшота собираются фабриками snapshot.ts — дублирование слоёв
  невозможно. LocationScene implements SceneAgent → 3 однострочника.

Попутно: TransitionSnapshot получает типизированное поле trigger
('step' | 'click') — фактический объект его уже клал.

Сцена: 1169 → 823 строки. Проверки: typecheck, 301 тест, agent check
45/45, smoke-act1. Доки: CLAUDE.md, practices.md (ситуация «меняю
клик-роутинг / агентный мост сцены»).

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent c379f20 commit 16b59d8ca81f10abeccdf71ddb40ebbfe561b865
@root root authored 1 day ago
Showing 7 changed files
View
CLAUDE.md
View
apps/game/src/agent/SceneAgentView.ts 0 → 100644
View
apps/game/src/agent/snapshot.ts
View
apps/game/src/scenes/LocationScene.ts
View
apps/game/src/systems/ClickRouting.ts 0 → 100644
View
apps/game/src/systems/__tests__/ClickRouting.test.ts 0 → 100644
View
docs/engine/practices.md