Перейти к основному содержимому
Fabled

Создатель модуля

Манифест, активы и возможности

Опишите модуль, не предоставляя коду пакета прямых полномочий над 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-дневное хранение.
  • Для изменения версии схемы данных требуются непрерывные, ограниченные и идемпотентные ресурсы миграции.
  • Предоставляемые и потребляемые службы объявляют версии, схемы, операции, команды и необходимые возможности; потребитель не может заимствовать полномочия поставщика.