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