Creador del módulo
Manifiesto, activos y capacidades
Describe un módulo sin otorgar autoridad directa al código del paquete sobre Fabled.
El manifiesto canónico
El nombre de archivo canónico es fabled.module.json. La CLI puede leer el fabled-module.json heredado solo cuando el archivo canónico está ausente; un proyecto que contiene ambos es rechazado. manifestVersion es actualmente 1, los identificadores de paquete son publisher-id.module-slug y los lanzamientos utilizan versiones semánticas exactas.
- Identidad: id, nombre, descripción, versión, editor y licencia.
- Compatibilidad: fabledApi más versiones mínimas, verificadas y máximas opcionales de Fabled; gameSystems puede contener * o identificadores explícitos del sistema.
- Tiempo de ejecución: runtimeTier, objetivos, activationEvents, contribuciones, permisos solicitados, relaciones y declaraciones de privacidad.
- Estado: dataSchemaVersion con almacenamiento opcional, migraciones y contratos de servicio.
- Datos del paquete: cada recurso declara una ruta relativa segura, tipo, longitud de bytes y resumen SHA-256 en minúsculas; Las configuraciones regionales asignan etiquetas BCP-47 a recursos locales.
Objetivos y contribuciones
| Modelo | Valores actuales de v1 |
|---|---|
| Objetivos | cuenta, campaña, vtt, personaje, fragua |
| Contribuciones | comandos, ubicaciones de comandos, paneles, efectos VTT, paquetes de contenido, controladores de eventos, temas en tiempo real, configuraciones |
| Espacios de ubicación | comando global, Chat compositor, hoja de campaña/settings, acción de personaje/sheet, VTT barra de herramientas/context menú/selection superpuesto |
| Niveles de tiempo de ejecución | declarativa, authoritativeDeclarative, workerPreview, serverPreview |
Solicitar el sobre de capacidad más pequeño
Los permisos son solicitudes, no autoridad. Cada capacidad requerida u opcional necesita un motivo específico legible por humanos. Fabled valida que la capacidad existe, está disponible para el objetivo y el nivel de tiempo de ejecución seleccionados y tiene la cuenta, el usuario, la campaña o el consentimiento combinado necesarios.
- Leer ejemplos: contenido visible o propio/elements, resumen de campaña, escena visible, tokens controlados o visibles, presencia, Chat y dados visibles, estado del módulo y configuración propia.
- Ejemplos de acciones: tiradas de dados propias, publicaciones de Chat de usuarios, invocación de marco controlado, efectos de audio de campaña/VTT, escrituras de tokens/door/fog/initiative, configuraciones de ámbito, almacenamiento propiedad del módulo y publicación en tiempo real del módulo.
- network.fetch.declared existe en el catálogo pero actualmente no está disponible y no tiene objetivos admitidos.
Activos, configuraciones, almacenamiento y servicios
JSON los activos de automatización, contenido, efecto, marco, configuración regional, esquema y migración están delimitados estructuralmente. La imagen binaria, el audio, el trabajador, WebAssembly y otros recursos siguen siendo datos del paquete a menos que un contrato de host/runtime revisado los consuma.
- La configuración puede tener un alcance de dispositivo, cuenta, campaña o userCampaign y usar valores booleanos, enteros, numéricos, de cadena o de color.
- El almacenamiento puede tener alcance de dispositivo, cuenta, campaña, userCampaign, escena o entidad, solicita hasta 5 MiB y declara eliminación al desinstalar o retención de 30 días.
- Los cambios en la versión del esquema de datos requieren activos de migración contiguos, delimitados e idempotentes.
- Los servicios proporcionados y consumidos declaran versiones, esquemas, operaciones, comandos y capacidades requeridas; un consumidor no puede tomar prestada la autoridad de un proveedor.