# Фаза 24. Числа поведения в данные ## Зависимости - [Фаза 20](20-needs-actions.md) — `BehaviorDef` уже есть ## Зачем [`../design/ai.md`](../design/ai.md) обещает: числа поведения — деф правил, как `StaffingDef` у штата. Порог нужды и разброс на дорогу туда уехали, а веса целей остались константами в коде. Пока они там, мод, меняющий одно число, вынужден быть форком. ## Задачи - [ ] Веса целей переезжают в `BehaviorDef`: обязанность-урок, обязанность-переход, нужда на нуле, обед - [ ] Значения по умолчанию — сегодняшние; поведение не должно измениться ни на минуту - [ ] Каталог без `BehaviorDef` работает на константах кода, а не падает - [ ] Валидатор ловит отрицательные веса и порядок, который делает обед сильнее урока - [ ] Комментарий у каждого числа объясняет, что оно перевешивает — иначе мод-автор крутит вслепую ## Тесты, без которых фаза не закрыта - [ ] Ванильные числа дают ровно те же решения, что и до переезда (таблица входов и выходов) - [ ] Пак, поднявший вес обеда выше урока, уводит класс с урока в столовую - [ ] Каталог без `BehaviorDef` принимает решения на значениях по умолчанию - [ ] Отрицательный вес роняет загрузку каталога ## Критерий готовности - Отпечаток недели из фазы 25 не меняется от самого переезда - `dotnet test` проходит ## Стоп Не заводить формулы в данных. Число — да, выражение — нет.