Создатель модуля
Манифест, активы и возможности
Опишите модуль, не предоставляя коду пакета прямых полномочий над Fabled.
Канонический манифест
Каноническое имя файла — fabled.module.json. CLI может прочитать устаревший файл fabled-module.json только в том случае, если канонический файл отсутствует; проект, содержащий оба, отклоняется. manifestVersion в настоящее время равен 1, идентификаторы пакетов — publisher-id.module-slug, а выпуски используют точные семантические версии.
- Идентификация: идентификатор, имя, описание, версия, издатель и лицензия.
- Совместимость: fabledApi плюс минимальная, проверенная и необязательно максимальная версии Fabled; gameSystems может содержать * или явные идентификаторы системы.
- Среда выполнения: уровень выполнения, цели, события активации, вклады, запрошенные разрешения, отношения и декларации конфиденциальности.
- Состояние: dataSchemaVersion с дополнительным хранилищем, миграцией и сервисными контрактами.
- Данные пакета: каждый актив объявляет безопасный относительный путь, тип, длину в байтах и дайджест SHA-256 в нижнем регистре; локали сопоставляют теги BCP-47 с ресурсами локали.
Цели и вклад
| Модель | Текущие значения v1 |
|---|---|
| Цели | аккаунт, кампания, vtt, персонаж, кузница |
| Вклад | команды, размещение команд, панели, эффекты VTT, пакеты контента, обработчики событий, темы в реальном времени, настройки |
| Места размещения | глобальная команда, композитор чата, колонка/настройки кампании, действие/лист персонажа, панель инструментов VTT/контекстное меню/наложение выбора |
| Уровни времени выполнения | декларативный, авторитетныйDeclarative, workerPreview, serverPreview |
Запросите наименьший диапазон возможностей
Разрешения — это запросы, а не полномочия. Для каждой обязательной или дополнительной возможности требуется конкретная, удобочитаемая причина. Fabled проверяет, что возможность существует, доступна для выбранного целевого уровня и уровня среды выполнения, а также имеет необходимое согласие учетной записи, пользователя, кампании или объединенное согласие.
- Примеры чтения: видимый или принадлежащий контент/элементы, сводка кампании, видимая сцена, контролируемые или видимые токены, присутствие, видимый чат и игральные кости, работоспособность модуля и собственные настройки.
- Примеры действий: самостоятельные броски кубиков, сообщения в чате пользователей, контролируемый вызов платформы, аудио/эффекты VTT кампании, запись токенов/дверей/туманов/инициатив, настройки области действия, хранилище, принадлежащее модулю, и публикация модуля в реальном времени.
- network.fetch.declared существует в каталоге, но в настоящее время недоступен и не имеет разрешенных целей.
Активы, настройки, хранилище и сервисы
Ресурсы автоматизации, контента, эффекта, фрейма, языкового стандарта, схемы и миграции JSON структурно ограничены. Двоичное изображение, аудио, рабочий процесс, WebAssembly и другие ресурсы остаются данными пакета, если только проверенный контракт узла/среды выполнения не использует их.
- Настройки могут иметь область действия устройства, учетной записи, кампании или userCampaign и использовать логические, целочисленные, числовые, строковые или цветовые значения.
- Хранилище может относиться к устройству, учетной записи, кампании, пользовательской кампании, сцене или объекту, запрашивает до 5 МБ и объявляет удаление при удалении или 30-дневное хранение.
- Для изменения версии схемы данных требуются непрерывные, ограниченные и идемпотентные ресурсы миграции.
- Предоставляемые и потребляемые службы объявляют версии, схемы, операции, команды и необходимые возможности; потребитель не может заимствовать полномочия поставщика.