Changelog
Страница для тех, кто держит что-то поверх наших контрактов: датасет, импортёр, редактор, встроенный лист. Сюда попадает только то, что видно снаружи — новые поля, новые проверки, изменения в опубликованных схемах и файлах. Правки интерфейса и внутренняя кухня живут не здесь.
Схемы по постоянным URL (/schema/v1/…) всегда отражают текущий прод: если
что-то разошлось с этой страницей, верна схема.
2026-10-18 — заклинания персонажа по слагу
Заголовок раздела «2026-10-18 — заклинания персонажа по слагу»Ломающих изменений нет: id в spells.prepared/book работают как раньше.
Слаг вместо id в книге заклинаний
Заголовок раздела «Слаг вместо id в книге заклинаний»В spells.prepared и spells.book файла персонажа теперь можно писать слаг
("cure-wounds"), английское имя ("Cure Wounds") или имя как в базе
("Исцеление ран [Cure Wounds]"). Лист находит заклинание сам — в SRD
редакции персонажа, затем в гримуаре владельца, — а ненайденное показывает
списком в настройках заклинаний. Подробности — в
«Формате персонажа».
Новое поле spells.pending
Заголовок раздела «Новое поле spells.pending»Сюда сервер откладывает слаги при создании персонажа: { slug, list }[], где
list — "prepared" или "book". Писать его самим не нужно. В экспорте оно
встретится у персонажа, у которого остались ненайденные заклинания; при
повторном импорте его можно оставить как есть.
srd-spell-slugs-{2014,2024}.json: id и классы
Заголовок раздела «srd-spell-slugs-{2014,2024}.json: id и классы»К слагу, имени и кругу добавлены id заклинания и classes — в чьём списке
оно есть. Старые поля не менялись.
{ "slug": "cure-wounds", "id": "698197c2a5dc6923c7028c8c", "name": "Исцеление ран [Cure Wounds]", "level": 1, "classes": ["artificer", "bard", "cleric", "druid", "paladin", "ranger"] }Гранты spell-fixed на заклинания не из SRD
Заголовок раздела «Гранты spell-fixed на заклинания не из SRD»Грант, ссылающийся слагом на заклинание из гримуара игрока, теперь действительно его выдаёт. Раньше заклинание находилось, но на лист не попадало.
2026-08-18 — заклинательство
Заголовок раздела «2026-08-18 — заклинательство»Крупная выкатка: заклинания стали настоящими объектами на листе, а ячейки — выдаваемыми по классу и уровню. Для авторов датасетов это одно ломающее изменение и довольно много нового.
🔴 Ломающее: spellcasting.spellList
Заголовок раздела «🔴 Ломающее: spellcasting.spellList»Что было. Лист подмешивал список заклинаний волшебника любому классу с id
fighter или rogue — хардкодом, чтобы Мистический рыцарь и Арканный ловкач
хоть как-то работали.
Что стало. Список берётся из spellcasting.spellList, а если поля нет — из
id класса.
Кого ломает. Любой заклинатель, который черпает не из своего списка:
- подкласс-гибрид вроде Мистического рыцаря —
classId: "fighter"резолвится в список «воина», которого не существует; - любой собственный класс — его id в базе заклинаний не значится ничем.
Симптом: ячейки есть, потолок круга правильный, а выбрать нечего — список пуст.
Ни ошибки, ни предупреждения при этом нет нигде: линт про spellList не знает,
а сервер честно отвечает пустотой.
Лечится одной строкой на класс или подкласс:
{ "type": "spellcasting", "ability": "int", "casterType": "memory", "progression": "third", "spellList": "wizard" }Значение — id класса, чей список используется: "wizard", "cleric", "druid"
и так далее.
Новое в гранте spellcasting
Заголовок раздела «Новое в гранте spellcasting»| Поле | Что даёт |
|---|---|
progression |
из него теперь растут ячейки на листе, а не только потолок круга |
slotsByLevel |
собственная таблица ячеек класса, 21 строка × 9 кругов |
cantripsByLevel, knownByLevel, preparedFormula, bookAtFirst, bookPerLevel |
счётчики «сколько можно взять» |
preparedFormula принимает три значения: mod+level, mod+half-level
(половина вниз) и mod+half-level-up (половина вверх).
Новые гранты заклинаний
Заголовок раздела «Новые гранты заклинаний»spell-fixed — именное всегда-подготовленное заклинание по слагу.
spell-choice — N заклинаний круга, которые игрок выбирает сам из указанного
списка. Общие поля выдачи: ability, uses, withSlots, alwaysPrepared.
У счётчика uses есть shortRestRegain — сколько возвращает короткий отдых,
формулой. Без него короткий отдых наполняет счётчик целиком.
Слаги заклинаний
Заголовок раздела «Слаги заклинаний»Заклинание в гранте называется слагом — слагифицированным английским именем
(hellish-rebuke). Из русского названия он не выводится. Опубликованы два
файла, они же гейт линта:
https://longstoryshort.app/datasets/srd-spell-slugs-2014.json— 318 записейhttps://longstoryshort.app/datasets/srd-spell-slugs-2024.json— 339 записей
Ссылка на не-SRD заклинание легальна: она резолвится у игрока, который уже загрузил ваш файл заклинаний.
Новые таргеты бонусов
Заголовок раздела «Новые таргеты бонусов»spellSlot.1…spellSlot.9 и pactSlot.1…pactSlot.9 — ячейки стали целями
системы бонусов.
Новые проверки линта
Заголовок раздела «Новые проверки линта»spell-choiceбезcount, круга илиspellList— ошибка;- два
spell-choiceодного круга на одной сущности — ошибка; usesбезcountи безcountExpr, или сразу с обоими — ошибка;uses.shortRestRegain, который не вычисляется в число — ошибка;slotsByLevelкороче 21 записи — ошибка;- слаг вне опубликованного списка SRD — предупреждение.
Формат персонажа
Заголовок раздела «Формат персонажа»spells.granted (выданные датасетом, вне лимита подготовленных),
spells.slotless (за что нельзя заплатить ячейкой), spellsInfo.charges
(привязка «заклинание → счётчик») и spellsInfo.abilities (характеристика
конкретного заклинания). Всё аддитивно.
data.spells у персонажа, собранного визардом, стал базой свёртки, а не
итогом: поверх лежат выданные классом ячейки и правка игрока, и на листе видно
другое число.
Подробности — «Датасеты» и «Формат персонажа».
