Créateur de modules
Manifeste, ressources et fonctionnalités
Décrit un module sans donner au code du package une autorité directe sur Fabled.
Le manifeste canonique
Le nom de fichier canonique est fabled.module.json. La CLI peut lire l'ancien fabled-module.json uniquement lorsque le fichier canonique est absent ; un projet contenant les deux est rejeté. manifestVersion est actuellement 1, les identifiants de package sont publisher-id.module-slug et les versions utilisent des versions sémantiques exactes.
- Identité : identifiant, nom, description, version, éditeur et licence.
- Compatibilité : fabledApi plus les versions Fabled minimales, vérifiées et maximales facultatives ; gameSystems peut contenir des * ou des identifiants système explicites.
- Runtime : runtimeTier, cibles, activationEvents, contributions, autorisations demandées, relations et déclarations de confidentialité.
- État : dataSchemaVersion avec stockage, migrations et contrats de service facultatifs.
- Données du package : chaque actif déclare un chemin relatif sûr, un type, une longueur d'octet et un résumé SHA-256 en minuscules ; les paramètres régionaux mappent les balises BCP-47 aux actifs de paramètres régionaux.
Objectifs et contributions
| Modèle | Valeurs v1 actuelles |
|---|---|
| Cibles | compte, campagne, vtt, personnage, forge |
| Contributions | commandes, emplacements de commandes, panneaux, effets VTT, packs de contenu, gestionnaires d'événements, sujets en temps réel, paramètres |
| Emplacements d'emplacement | commande globale, compositeur de chat, panneau/paramètres de campagne, action/feuille de personnage, barre d'outils VTT/menu contextuel/superposition de sélection |
| Niveaux d'exécution | déclaratif, authoritativeDeclarative, workerPreview, serverPreview |
Demander la plus petite enveloppe de capacités
Les autorisations sont des demandes, pas une autorité. Chaque fonctionnalité requise ou facultative nécessite une raison spécifique lisible par l’homme. Fabled valide que la fonctionnalité existe, qu'elle est disponible pour la cible et le niveau d'exécution sélectionnés, et qu'elle dispose du compte, de l'utilisateur, de la campagne ou du consentement combiné requis.
- Lire des exemples : contenu/éléments visibles ou détenus, résumé de la campagne, scène visible, jetons contrôlés ou visibles, présence, chat et dés visibles, santé du module et paramètres propres.
- Exemples d'action : lancers de dés personnels, publications de chat d'utilisateurs, invocation de cadre contrôlé, effets audio/VTT de campagne, écritures de jeton/porte/brouillard/initiative, paramètres de portée, stockage appartenant au module et publication en temps réel du module.
- network.fetch.declared existe dans le catalogue mais est actuellement indisponible et n'a aucune cible admise.
Actifs, paramètres, stockage et services
Les actifs d'automatisation, de contenu, d'effet, de cadre, de paramètres régionaux, de schéma et de migration JSON sont structurellement limités. L'image binaire, l'audio, le travailleur, le WebAssembly et les autres actifs restent des données de package à moins qu'un contrat hôte/exécution révisé ne les consomme.
- Les paramètres peuvent s'étendre à l'appareil, au compte, à la campagne ou à la campagne utilisateur et utiliser des valeurs booléennes, entières, numériques, de chaîne ou de couleur.
- Le stockage peut être limité à un appareil, un compte, une campagne, une campagne d'utilisateur, une scène ou une entité, demande jusqu'à 5 Mio et déclare une suppression lors de la désinstallation ou une conservation de 30 jours.
- Les modifications de version du schéma de données nécessitent des ressources de migration contiguës, délimitées et idempotentes.
- Les services fournis et consommés déclarent les versions, les schémas, les opérations, les commandes et les fonctionnalités requises ; un consommateur ne peut pas emprunter l'autorité d'un fournisseur.