# Фаза 4. Моды и редактор в create ## Зависимости - [Фаза 1](01-manager-shell.md) - [Фаза 3](03-defs-map.md) ## Зачем Игрок выбирает моды, правит или стирает дефолтную карту, создаёт школу. Внутри школы дерево и панель локации читают снимок, не заглушки. ## Задачи - [x] `GET` списка модов: `core` как обязательный, остальные папки `mods/` - [x] `GET` каталога с `?lang=ru|en` (типы + локали) для `core` + выбранных id - [x] Hello несёт тот же locale; снимок карты при OpenSchool на этом языке - [x] `POST /api/schools` принимает доп. моды и раскладку; сервер всегда подставляет `core` первым и валидирует - [x] В диалоге создания: чекбоксы модов (`core` нельзя снять), редактор дерева/связей/слотов или сброс к дефолту - [x] При `OpenSchool` — один снимок карты (дерево + локации: имя, предметы, пустые персонажи и действия на месте, должности). Не на каждый клик, не 20 Гц - [x] Клиент фильтрует выбранный узел; часы как сейчас - [x] Протокол/HTTP описать в `docs/protocol.md` в том же коммите, что кодек - [x] Тесты API: create с картой, отказ на дырявый граф, открытие отдаёт снимок ## Критерий готовности - Создать школу с ванильной картой и с упрощённой своей - Открыть: дерево кликается, локация показывает имя/предметы/должности, персонажи и действия на месте пустые, события пустые - Перезапуск сервера поднимает эту школу с той же раскладкой - `dotnet test` и клиентский `npm test` / `build` проходят ## Стоп Не приказы «сесть». Не лента событий. Не `OpenLocation` на сервер.