# Фаза 10. Предметы и мебель ## Зависимости - [Фаза 5](05-people-defs.md) - [Фаза 7](07-people-in-school.md) ## Зачем Каталог учится описывать предметы, кабинет перестаёт быть таблицей слотов, а должность учителя становится одной на всех. Людей это ещё не двигает: школа собирается как прежде. ## Задачи - [x] `SubjectDef` в `HSchool.Content`: развиваемые навыки с долями, диапазон параллелей; ссылка на неизвестный навык — ошибка загрузки - [x] Ванильные предметы в `core`: начальные классы (1–4, всё понемногу) и предметники по существующим навыкам, включая физкультуру - [x] `PositionDef PETeacher` упраздняется; `Classroom`, `ComputerLab` и `GymHall` больше не открывают учительскую должность - [x] Кабинет-`Homeroom` описывается числом мест, а не таблицей именованных слотов; вместимость по-прежнему считается по мебели - [x] Слоты остаются у столовой, медкабинета, кабинета директора и библиотеки - [x] Редактор карты показывает у кабинета одно поле «мест», у прочих комнат — прежние слоты - [x] Ванильная карта переписана под новую форму, вместимость параллелей не изменилась - [x] `GET /api/catalog` отдаёт предметы — они понадобятся форме назначения - [x] Стартовая дата по умолчанию — суббота 31 марта 2012 - [x] Снимок карты и `docs/protocol.md` правятся в том же коммите, если меняется раскладка узла ## Критерий готовности - Каталог `core` грузится, предметы проходят валидацию, тест на полноту локалей зелёный - Школа на ванильной карте даёт те же одиннадцать классов и ту же вместимость, что и до фазы - Редактор карты не показывает у кабинета ни доски, ни стула учителя - `dotnet test` и клиентские `npm test` / `build` проходят ## Стоп Не трогать наём. Генератор пока закрывает должности сам — школа опустеет в следующей фазе.