Create picks a country; climate is rolled from the school seed and stored. Old Slavic saves lift as Russia. Co-authored-by: Cursor <cursoragent@cursor.com>
3.2 KiB
3.2 KiB
Фаза 29. Страна
Зависимости
Зачем
Create выбирает страну, а не набор имён. Имена и климатические пресеты перестают быть двумя несвязанными пикерами.
Задачи
CountryDefиClimatePresetDefвHSchool.Content: страна вкладывает нынешние поля набора имён вnames, ссылается на пресеты списками id- Набор имён больше не выбираемый вид; папка
namesets/вcoreуезжает в страну - Ваниль: одна страна
Russiaс нынешним славянским набором и хотя бы одним пресетом (числа погоды можно заглушить — живая улица в фазе 32) GET /api/catalogотдаётcountries(defName, подпись,nativeLanguages,climatePresets) вместоnameSetsPOST /api/schoolsпринимаетcountryId; неизвестный —400unknown-country.nameSetIdне принимается- Пресет климата записывается на школу: случайный из списка страны, от сида. Живой школе его не сменить
- Форма создания: подпись «Страна»; язык — если у страны их несколько
- Старый сейв с
nameSetId: Slavicподнимается какRussia+ первый пресет; формат новее безcountryId— как с прочими полями сейва, школа не стартует docs/protocol.mdиAGENTS.md(ориентир create / каталог) в том же коммите- Золотой отпечаток ростера обновляется, если вход генератора сменил имя поля
Тесты, без которых фаза не закрыта
- Каталог
coreгрузится; страна без имён или с неизвестным пресетом — ошибка загрузки - Create с
countryId: Russiaи без языка даёт тот же родной язык, что прежний сид безnativeLanguage - Create с неизвестной страной —
400unknown-country - Два create с одним сидом получают один и тот же пресет
- Старый сейв без страны поднимается
- Диалог создания показывает страны, не наборы имён; смена страны обновляет список языков
Критерий готовности
- Создать школу, выбрав страну; люди и язык как раньше на том же сиде
dotnet testиnpm test/buildпроходят
Стоп
Не считать живую погоду. Не одевать людей. Не менять кадр часов.