Enhance school creation functionality by introducing support for name sets in the API and UI. Update the catalog to include skills, traits, body attributes, needs, and name sets, improving character generation capabilities. Revise localization strings for better user guidance and update tests to validate the new name set functionality and ensure robustness in school creation processes.
ci / server (push) Failing after 3m45s
ci / client (push) Successful in 17s

This commit is contained in:
Leonid Pershin
2026-08-18 18:57:01 +03:00
parent 38afbcad36
commit e6182e0e45
56 changed files with 3706 additions and 9 deletions
+35
View File
@@ -0,0 +1,35 @@
# Фаза 7. Люди в школе
## Зависимости
- [Фаза 6](06-people-generator.md)
- [Фаза 2](02-school-worker.md)
## Зачем
Школа создаётся с людьми, они живут в её `World` и переживают перезапуск сервера. Экран пока
не меняется — это фаза про данные.
## Задачи
- [ ] Ванильная карта дорабатывается до одиннадцати кабинетов; подписи кабинетов становятся
номерами помещений («204»), а не именами классов
- [ ] Компоненты Arch под слои человека; сущности собираются из записей генератора
- [ ] Класс как сущность: параллель, литера, закреплённый кабинет
- [ ] Нужды тикают вместе со школой — механика есть, скорость в `core` нулевая
- [ ] `saves/{id}.people.json`: сид, люди, семьи, классы. Пишется **только** при изменении
состава, не по таймеру; `saves/{id}.json` остаётся маленьким и частым
- [ ] Загрузка ростера при старте школы; ростер, не сходящийся с картой, оставляет школу
незапущенной и файл нетронутым — как сейчас с картой
- [ ] Воркер публикует неизменяемый снимок ростера, как публикует `SchoolState`
## Критерий готовности
- Создать школу — все ученические места и должности заняты
- Перезапустить сервер — те же люди с теми же именами и характеристиками
- Файл ростера не переписывается каждые тридцать секунд
- `dotnet test` проходит
## Стоп
Ни панели, ни фильтров, ни HTTP списка людей. Никакого поведения: люди существуют и стоят.