# Фаза 5. Дефы человека ## Зависимости - [Фаза 3](03-defs-map.md) ## Зачем Каталог учится описывать людей. Ни одного человека в этой фазе не появляется — только типы, из которых их потом соберут. ## Задачи - [x] `SkillDef`, `TraitDef`, `BodyAttributeDef`, `NeedDef`, `NameSetDef` в `HSchool.Content`: новые `DefKind`, разбор, наследование и патчи на общих правилах - [x] `BodyAttributeDef` двух видов: число с распределением (рост, вес) и выбор из списка с весами (цвет волос, цвет глаз); распределение зависит от пола и возраста - [x] `SkillDef.bodyLimits` — зажимы навыка по свойству тела (`min` / `max`); ссылка на неизвестный атрибут или его значение — ошибка загрузки, а не тихий пропуск - [x] `TraitDef`: вес, несовместимости, ограничения по роли и возрасту, модификаторы навыков; односторонняя несовместимость считается взаимной - [x] `NameSetDef`: мужские и женские имена, фамилии с родовыми формами, правило отчества, модель склонения по умолчанию или явная таблица шести падежей на запись - [x] Ванильное содержание `core`: навыки (предметы + физические), около десяти черт, четыре нужды со скоростью убывания **ноль**, славянский набор имён - [x] Локализация новых defs в `ru` и `en` - [x] `GET /api/catalog` отдаёт список наборов имён — форме создания нужен выбор - [x] Тесты Content: разбор каждого вида, наследование навыка, патч черты, неизвестная ссылка — ошибка, склонение по правилу и перекрытие таблицей ## Критерий готовности - Каталог `core` грузится, все новые defs проходят валидацию - Мод, добавляющий свой набор имён и пару черт, виден в каталоге - `dotnet test` проходит; школы по-прежнему пустые ## Стоп Не генерировать людей. Не трогать ECS, сервер сверх выдачи каталога и клиент сверх выбора набора.