Remove off-queue.md and add new design documentation files including README.md, defs.md, near-term.md, projects.md, runtime.md, people.md, staffing.md, and schedule.md to outline the structure and agreements for the game's design phases.

This commit is contained in:
Leonid Pershin
2026-08-20 12:26:13 +03:00
parent 12cc36b4dd
commit a37a5eb82d
101 changed files with 1015 additions and 921 deletions
+34
View File
@@ -0,0 +1,34 @@
# Фаза 3. Каталог def и карта
## Зависимости
- [Фаза 2](02-school-worker.md) — каталог и раскладка живут у работника школы
## Зачем
Типы в JSONC, инстанс карты в школе, валидация связности. Без этого нечему редактировать в create.
## Задачи
- [x] Проект `HSchool.Content` (+ тесты): JSONC, defs, локали, граф карты, валидация. Не Arch, не ASP.NET
- [x] Загрузчик пачки документов (сервер потом подставит папки `mods/`)
- [x] `core` всегда первый; дальше моды по списку; повтор `defName` / ключа локали — последний победил, warning в лог
- [x] Резолв ссылок `ThingDef.actions`, слотов RoomDef после чтения всего набора
- [x] Карта-инстанс: двор (TerritoryDef) всегда есть; здания (BuildingDef), этажи (FloorDef + id), помещения, двусторонние рёбра
- [x] Валидация: неизвестный def, ребро в никуда, несвязный граф, изолированный узел
- [x] Пустая комната допустима; должности для панели — из def узла, если они там есть
- [x] Каталог замораживается на работнике при create/load; сейв хранит id модов и раскладку, не развёрнутый каталог
- [x] Нет папки мода из сейва — школу не стартовать, файл не удалять, в лог
- [x] Обновить ориентир в `AGENTS.md` (куда класть defs)
- [x] Наследование: `parent`, `abstract`, замена полей, запрет цикла и чужого вида, abstract нельзя на карту
- [x] Патчи из `patches/`: add / replace / remove по JSON Pointer; неизвестный op или нет target — ошибка каталога
- [x] Тесты Content: фикстуры JSONC, last-wins, parent/abstract, патч add в actions, связность, пустая комната, одна комната без двора — отказ
## Критерий готовности
- `dotnet test` покрывает загрузчик и валидацию без хоста (`HSchool.Content.Tests`)
- Ванильная раскладка `mods/core/maps/default.jsonc` проходит валидацию
## Стоп
Не UI редактора. Не исполнение ActionDef. Не xpath и не новые op сверх add/replace/remove.