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
@@ -0,0 +1,44 @@
# Фаза 6. Библиотека генерации
## Зависимости
- [Фаза 5](05-people-defs.md)
## Зачем
Из каталога, карты и сида получаются люди — семьями и детерминированно. Библиотека тестируется
без мира, без сокета и без хоста, как `HSchool.Content` сейчас.
## Задачи
- [x] Новый проект `HSchool.People` и `tests/HSchool.People.Tests`; ссылка только на
`HSchool.Content`, ни Arch, ни ASP.NET
- [x] Записи `Person`, `Family`, `SchoolClass`, `Roster` — простые данные, не сущности
- [x] Ёмкость из карты: `PupilSlots` по кабинетам и `RoomDef.positions` дают, сколько нужно
учеников и каких работников
- [x] Генерация семьями: взрослые → дети нужных возрастов → раскладка детей по параллелям и
взрослых по должностям
- [x] Совмещение ролей: работник может оказаться родителем ученика той же школы
- [x] Порядок бросков зафиксирован: тело первым, навыки после, `bodyLimits` применяются зажимом
- [x] Склонения: модели в коде, явная таблица из def перекрывает модель
- [x] Сид школы приходит снаружи; сид каждой семьи выводится из него
## Тесты, без которых фаза не закрыта
- [x] Тот же сид, карта и набор имён — ровно тот же ростер
- [x] Тринадцатая семья не меняет, как разыграны первые двенадцать (фамилия, состав, имена).
Класс ребёнка при этом меняется — места раздаются вперемешку по школе, иначе братья и
сёстры всегда оказывались одноклассниками; см. [`docs/design/02-people/people.md`](../../design/02-people/people.md)
- [x] Фамилии, родовые формы и отчества внутри семьи согласованы
- [x] Ученик с телосложением «полное» не получает высокую ловкость
- [x] Все ученические места заполнены, все должности закрыты
- [x] Школа из одного кабинета и школа из одиннадцати — обе собираются
## Критерий готовности
- `HSchool.People.Tests` зелёные
- В проекте нет упоминаний сокетов, ECS и `DateTime.Now`
## Стоп
Не класть людей в `World`. Не трогать сервер, клиент и формат сейва.