VNLEWIKICréez des histoires. Reliez des mondes.
Français
Manuel VNLE

Référence des champs JSON

Exécution et contenu

format et containerVersion identifient le conteneur. execution contient les entrées et les nœuds ; content contient les textes, traductions et catalogues. Les UUID relient les tables : n’utilisez pas les noms affichés comme références. JSON n’autorise pas les commentaires ; les explications sont donc séparées pour garder un exemple valide.

// Explanation only — not a JSON file
// execution.entries[entryId].nodeRef -> execution.nodes[nodeId]
// node.text.textRef -> content.texts[textId].sourceMessage
// content.translations[locale][textId].message -> translated segments
// dialogue.continuation.nodeRef -> next node
// end -> stop; never keep advancing

story.json

Changement de langue et traductions manquantes

Stockez la langue séparément du nœud courant. Au changement, résolvez à nouveau le même textRef : utilisez la traduction de locale si elle existe, sinon sourceMessage. Une table de langue absente signifie que les traductions manquent. allowEmpty autorise un texte volontairement vide. Formatez les paramètres de substitution selon leur type, sans convertir le JSON lui-même en texte. L’empreinte du texte source permet de détecter une traduction obsolète ; workflowStatus seul ne suffit pas.

Vous trouverez ci-dessous toutes les définitions accessibles depuis le schéma actuel de l’export, avec leurs propriétés, variantes et contraintes. Schema révèle aussi les règles imbriquées. Les champs supplémentaires sont refusés lorsque additionalProperties vaut false.

JSON Schema · Draft 2020-12

Capability

ChampType / obligatoireSignification / règles
Schema · Capability
{
  "type": "string",
  "pattern": "^[a-z][a-z0-9.-]*$",
  "title": "Capability"
}

ContentAsset

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
mediaTypestring · obligatoireType MIME du contenu multimédia.
relativePathRelativePath · obligatoireChemin relatif de ressource validé ; ne l’utilisez jamais comme chemin du système de fichiers sans vérification.
contentHashHash · obligatoireSHA-256 des octets des médias référencés.
displayNamestring · obligatoireNom lisible de la ressource.
licenseNotestringNote de licence de la ressource ; elle ne constitue pas une vérification juridique.
widthintegerConsultez le type et le schéma pour connaître la structure et les valeurs valides.
{"minimum":0,"maximum":2147483647}
heightintegerConsultez le type et le schéma pour connaître la structure et les valeurs valides.
{"minimum":0,"maximum":2147483647}
byteSizeintegerConsultez le type et le schéma pour connaître la structure et les valeurs valides.
{"minimum":0,"maximum":2147483647}
originalNamestringConsultez le type et le schéma pour connaître la structure et les valeurs valides.
Schema · ContentAsset
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "mediaType": {
      "type": "string"
    },
    "relativePath": {
      "$ref": "#/$defs/RelativePath"
    },
    "contentHash": {
      "$ref": "#/$defs/Hash"
    },
    "displayName": {
      "type": "string"
    },
    "licenseNote": {
      "type": "string"
    },
    "width": {
      "type": "integer",
      "minimum": 0,
      "maximum": 2147483647
    },
    "height": {
      "type": "integer",
      "minimum": 0,
      "maximum": 2147483647
    },
    "byteSize": {
      "type": "integer",
      "minimum": 0,
      "maximum": 2147483647
    },
    "originalName": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "mediaType",
    "relativePath",
    "contentHash",
    "displayName"
  ],
  "additionalProperties": false,
  "title": "ContentAsset"
}

ContentCharacter

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
keyKey · obligatoireClé lisible stable ; les ID restent les références techniques.
nameTextRefId · obligatoireID texte pour le nom localisé.
colorstring · obligatoireCouleur d’affichage du personnage ; ce n’est pas une valeur de logique du jeu.
{"pattern":"^#[0-9a-fA-F]{6}$"}
defaultPortraitRefIdRessource du portrait par défaut du personnage ; absente de l’export générique.
emotionsobject · obligatoireIdentifiant d’émotion → définition de l’émotion.
{"additionalProperties":{"$ref":"#/$defs/Emotion"}}
emotions[key]EmotionConsultez le type et le schéma pour connaître la structure et les valeurs valides.
Schema · ContentCharacter
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "key": {
      "$ref": "#/$defs/Key"
    },
    "nameTextRef": {
      "$ref": "#/$defs/Id"
    },
    "color": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$"
    },
    "defaultPortraitRef": {
      "$ref": "#/$defs/Id"
    },
    "emotions": {
      "type": "object",
      "propertyNames": {
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
      },
      "additionalProperties": {
        "$ref": "#/$defs/Emotion"
      }
    }
  },
  "required": [
    "id",
    "name",
    "key",
    "nameTextRef",
    "color",
    "emotions"
  ],
  "additionalProperties": false,
  "title": "ContentCharacter"
}

ContentCommandDefinition

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
keyKey · obligatoireClé lisible stable ; les ID restent les références techniques.
categorystring · obligatoireCatégorie de catalogue utilisée pour organiser la définition.
inputsArray<ParameterDefinition> · obligatoireEntrées nommées et typées de la signature.
outcomesArray<OutcomeDefinition> · obligatoireIssues possibles de la commande, avec leur nom, leur contrat de données et leurs associations.
{"minItems":1}
descriptionstringDescription écrite; pas une instruction exécutable.
Schema · ContentCommandDefinition
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "key": {
      "$ref": "#/$defs/Key"
    },
    "category": {
      "type": "string"
    },
    "inputs": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ParameterDefinition"
      }
    },
    "outcomes": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/OutcomeDefinition"
      },
      "minItems": 1
    },
    "description": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "name",
    "key",
    "category",
    "inputs",
    "outcomes"
  ],
  "additionalProperties": false,
  "title": "ContentCommandDefinition"
}

ContentItemDefinition

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
keyKey · obligatoireClé lisible stable ; les ID restent les références techniques.
nameTextRefId · obligatoireID texte pour le nom localisé.
descriptionTextRefIdID texte pour la description localisée.
iconAssetRefIdIdentifiant de ressource pour une icône de catalogue.
Schema · ContentItemDefinition
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "key": {
      "$ref": "#/$defs/Key"
    },
    "nameTextRef": {
      "$ref": "#/$defs/Id"
    },
    "descriptionTextRef": {
      "$ref": "#/$defs/Id"
    },
    "iconAssetRef": {
      "$ref": "#/$defs/Id"
    }
  },
  "required": [
    "id",
    "name",
    "key",
    "nameTextRef"
  ],
  "additionalProperties": false,
  "title": "ContentItemDefinition"
}

ContentLocationDefinition

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
keyKey · obligatoireClé lisible stable ; les ID restent les références techniques.
nameTextRefId · obligatoireID texte pour le nom localisé.
descriptionTextRefIdID texte pour la description localisée.
previewAssetRefIdIdentifiant de ressource pour un aperçu.
Schema · ContentLocationDefinition
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "key": {
      "$ref": "#/$defs/Key"
    },
    "nameTextRef": {
      "$ref": "#/$defs/Id"
    },
    "descriptionTextRef": {
      "$ref": "#/$defs/Id"
    },
    "previewAssetRef": {
      "$ref": "#/$defs/Id"
    }
  },
  "required": [
    "id",
    "name",
    "key",
    "nameTextRef"
  ],
  "additionalProperties": false,
  "title": "ContentLocationDefinition"
}

ContentMinigameDefinition

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
keyKey · obligatoireClé lisible stable ; les ID restent les références techniques.
nameTextRefIdID texte pour le nom localisé.
commandRefId · obligatoireID de la commande de jeu à exécuter.
Schema · ContentMinigameDefinition
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "key": {
      "$ref": "#/$defs/Key"
    },
    "nameTextRef": {
      "$ref": "#/$defs/Id"
    },
    "commandRef": {
      "$ref": "#/$defs/Id"
    }
  },
  "required": [
    "id",
    "name",
    "key",
    "commandRef"
  ],
  "additionalProperties": false,
  "title": "ContentMinigameDefinition"
}

ContentQuestDefinition

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
keyKey · obligatoireClé lisible stable ; les ID restent les références techniques.
titleTextRefId · obligatoireID texte d'un titre localisé.
descriptionTextRefIdID texte pour la description localisée.
objectiveDefinitionsArray<QuestObjective> · obligatoireIdentifiant d’objectif de quête → définition de l’objectif.
Schema · ContentQuestDefinition
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "key": {
      "$ref": "#/$defs/Key"
    },
    "titleTextRef": {
      "$ref": "#/$defs/Id"
    },
    "descriptionTextRef": {
      "$ref": "#/$defs/Id"
    },
    "objectiveDefinitions": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/QuestObjective"
      }
    }
  },
  "required": [
    "id",
    "name",
    "key",
    "titleTextRef",
    "objectiveDefinitions"
  ],
  "additionalProperties": false,
  "title": "ContentQuestDefinition"
}

ContentTextEntry

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
keyKeyClé lisible stable ; les ID restent les références techniques.
categorystring · obligatoireCatégorie de catalogue utilisée pour organiser la définition.
sourceMessageMessage · obligatoireMessage source composé de segments de texte et de paramètres de substitution.
placeholdersobject · obligatoireClé du paramètre de substitution → définition de son type et de son format.
{"additionalProperties":{"$ref":"#/$defs/PlaceholderDefinition"}}
placeholders[key]PlaceholderDefinitionConsultez le type et le schéma pour connaître la structure et les valeurs valides.
externalUseboolean · obligatoireIndique un texte utilisé en dehors du graphe de nœuds.
Schema · ContentTextEntry
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "key": {
      "$ref": "#/$defs/Key"
    },
    "category": {
      "type": "string"
    },
    "sourceMessage": {
      "$ref": "#/$defs/Message"
    },
    "placeholders": {
      "type": "object",
      "propertyNames": {
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
      },
      "additionalProperties": {
        "$ref": "#/$defs/PlaceholderDefinition"
      }
    },
    "externalUse": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "category",
    "sourceMessage",
    "placeholders",
    "externalUse"
  ],
  "additionalProperties": false,
  "title": "ContentTextEntry"
}

ContentVariableDefinition

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
keyKey · obligatoireClé lisible stable ; les ID restent les références techniques.
valueTypeScalarType · obligatoireContrat de la valeur attendue, y compris les types d’entités possibles.
defaultValueScalarValue · obligatoireValeur initiale ou par défaut typée.
descriptionstringDescription écrite; pas une instruction exécutable.
Schema · ContentVariableDefinition
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "key": {
      "$ref": "#/$defs/Key"
    },
    "valueType": {
      "$ref": "#/$defs/ScalarType"
    },
    "defaultValue": {
      "$ref": "#/$defs/ScalarValue"
    },
    "description": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "name",
    "key",
    "valueType",
    "defaultValue"
  ],
  "additionalProperties": false,
  "title": "ContentVariableDefinition"
}

Emotion

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
portraitRefIdRessource du portrait pour cette émotion ; absente de l’export générique.
Schema · Emotion
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "portraitRef": {
      "$ref": "#/$defs/Id"
    }
  },
  "required": [
    "id",
    "name"
  ],
  "additionalProperties": false,
  "title": "Emotion"
}

EntityType

ChampType / obligatoireSignification / règles
Schema · EntityType
{
  "type": "string",
  "enum": [
    "item",
    "quest",
    "location",
    "minigame",
    "asset"
  ],
  "title": "EntityType"
}

EntryRef

ChampType / obligatoireSignification / règles
flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
entryRefId · obligatoireID d'entrée à l'intérieur du flux spécifié.
Schema · EntryRef
{
  "type": "object",
  "properties": {
    "flowRef": {
      "$ref": "#/$defs/Id"
    },
    "entryRef": {
      "$ref": "#/$defs/Id"
    }
  },
  "required": [
    "flowRef",
    "entryRef"
  ],
  "additionalProperties": false,
  "title": "EntryRef"
}

ExecutableChoiceOption

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
textExecutableTextUse · obligatoirePour un segment de texte : contenu littéral. Pour une utilisation de texte : textRef et bindings.
conditionExecutableConditionCondition évaluée avant un embranchement ou l’activation d’une option.
effectsArray<ExecutableEffect> · obligatoireEffets sur l’état, exécutés dans l’ordre pour ce nœud d’action.
continuationExecutableContinuation · obligatoireContinuation après la fin du nœud.
Schema · ExecutableChoiceOption
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "text": {
      "$ref": "#/$defs/ExecutableTextUse"
    },
    "condition": {
      "$ref": "#/$defs/ExecutableCondition"
    },
    "effects": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ExecutableEffect"
      }
    },
    "continuation": {
      "$ref": "#/$defs/ExecutableContinuation"
    }
  },
  "required": [
    "id",
    "text",
    "effects",
    "continuation"
  ],
  "additionalProperties": false,
  "title": "ExecutableChoiceOption"
}

ExecutableCondition

ChampType / obligatoireSignification / règles
[oneOf 1].kind"compare" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 1].leftExecutableOperand · obligatoireOpérande gauche typé de la comparaison.
[oneOf 1].operator"eq" | "ne" | "lt" | "lte" | "gt" | "gte" · obligatoireOpérateur de comparaison/logique; les valeurs autorisées apparaissent dans les variantes.
[oneOf 1].rightExecutableOperand · obligatoireOpérande droit typé de la comparaison.
[oneOf 2].kind"all" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 2].childrenArray<ExecutableCondition> · obligatoireConditions enfants d’une expression composée.
[oneOf 3].kind"any" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 3].childrenArray<ExecutableCondition> · obligatoireConditions enfants d’une expression composée.
[oneOf 4].kind"not" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 4].childExecutableCondition · obligatoireCondition enfant de l’opérateur unaire.
Schema · ExecutableCondition
{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "compare"
        },
        "left": {
          "$ref": "#/$defs/ExecutableOperand"
        },
        "operator": {
          "type": "string",
          "enum": [
            "eq",
            "ne",
            "lt",
            "lte",
            "gt",
            "gte"
          ]
        },
        "right": {
          "$ref": "#/$defs/ExecutableOperand"
        }
      },
      "required": [
        "kind",
        "left",
        "operator",
        "right"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "all"
        },
        "children": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ExecutableCondition"
          }
        }
      },
      "required": [
        "kind",
        "children"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "any"
        },
        "children": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ExecutableCondition"
          }
        }
      },
      "required": [
        "kind",
        "children"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "not"
        },
        "child": {
          "$ref": "#/$defs/ExecutableCondition"
        }
      },
      "required": [
        "kind",
        "child"
      ],
      "additionalProperties": false
    }
  ],
  "title": "ExecutableCondition"
}

ExecutableContinuation

ChampType / obligatoireSignification / règles
[oneOf 1].kind"node" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 1].nodeRefId · obligatoireIdentifiant du prochain nœud exécutable.
[oneOf 2].kind"end" · obligatoireDiscriminateur choisissant la variante valide.
Schema · ExecutableContinuation
{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "node"
        },
        "nodeRef": {
          "$ref": "#/$defs/Id"
        }
      },
      "required": [
        "kind",
        "nodeRef"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "end"
        }
      },
      "required": [
        "kind"
      ],
      "additionalProperties": false
    }
  ],
  "title": "ExecutableContinuation"
}

ExecutableEffect

ChampType / obligatoireSignification / règles
[oneOf 1].kind"set" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 1].variableRefId · obligatoireID de la variable à lire ou à écrire.
[oneOf 1].valueExecutableOperand · obligatoireValeur littérale ; elle doit correspondre au type déclaré.
[oneOf 2].kind"add" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 2].variableRefId · obligatoireID de la variable à lire ou à écrire.
[oneOf 2].valueExecutableOperand · obligatoireValeur littérale ; elle doit correspondre au type déclaré.
[oneOf 3].kind"subtract" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 3].variableRefId · obligatoireID de la variable à lire ou à écrire.
[oneOf 3].valueExecutableOperand · obligatoireValeur littérale ; elle doit correspondre au type déclaré.
Schema · ExecutableEffect
{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "set"
        },
        "variableRef": {
          "$ref": "#/$defs/Id"
        },
        "value": {
          "$ref": "#/$defs/ExecutableOperand"
        }
      },
      "required": [
        "kind",
        "variableRef",
        "value"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "add"
        },
        "variableRef": {
          "$ref": "#/$defs/Id"
        },
        "value": {
          "$ref": "#/$defs/ExecutableOperand"
        }
      },
      "required": [
        "kind",
        "variableRef",
        "value"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "subtract"
        },
        "variableRef": {
          "$ref": "#/$defs/Id"
        },
        "value": {
          "$ref": "#/$defs/ExecutableOperand"
        }
      },
      "required": [
        "kind",
        "variableRef",
        "value"
      ],
      "additionalProperties": false
    }
  ],
  "title": "ExecutableEffect"
}

ExecutableEmptyChoice

ChampType / obligatoireSignification / règles
[oneOf 1].kind"continue" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 1].continuationExecutableContinuation · obligatoireContinuation après la fin du nœud.
[oneOf 2].kind"fault" · obligatoireDiscriminateur choisissant la variante valide.
Schema · ExecutableEmptyChoice
{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "continue"
        },
        "continuation": {
          "$ref": "#/$defs/ExecutableContinuation"
        }
      },
      "required": [
        "kind",
        "continuation"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "fault"
        }
      },
      "required": [
        "kind"
      ],
      "additionalProperties": false
    }
  ],
  "title": "ExecutableEmptyChoice"
}

ExecutableNode

ChampType / obligatoireSignification / règles
[oneOf 1].idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
[oneOf 1].flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
[oneOf 1].kind"dialogue" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 1].textExecutableTextUse · obligatoirePour un segment de texte : contenu littéral. Pour une utilisation de texte : textRef et bindings.
[oneOf 1].speakerRefIdIdentifiant du personnage qui parle ; son absence signifie qu’il n’y a pas de locuteur.
[oneOf 1].emotionRefIdÉmotion du personnage pour cette réplique.
[oneOf 1].continuationExecutableContinuation · obligatoireContinuation après la fin du nœud.
[oneOf 2].idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
[oneOf 2].flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
[oneOf 2].kind"choice" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 2].optionOrderArray<Id> · obligatoireIdentifiants des options dans leur ordre d’affichage.
[oneOf 2].optionsobject · obligatoireIdentifiant d’option → option avec texte, condition et suite.
{"additionalProperties":{"$ref":"#/$defs/ExecutableChoiceOption"}}
[oneOf 2].options[key]ExecutableChoiceOptionConsultez le type et le schéma pour connaître la structure et les valeurs valides.
[oneOf 2].whenEmptyExecutableEmptyChoice · obligatoireComportement quand aucune option n'est disponible.
[oneOf 3].idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
[oneOf 3].flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
[oneOf 3].kind"branch" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 3].conditionExecutableCondition · obligatoireCondition évaluée avant un embranchement ou l’activation d’une option.
[oneOf 3].whenTrueExecutableContinuation · obligatoireSuite à suivre si la condition est vraie.
[oneOf 3].whenFalseExecutableContinuation · obligatoireSuite à suivre si la condition est fausse.
[oneOf 4].idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
[oneOf 4].flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
[oneOf 4].kind"action" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 4].effectsArray<ExecutableEffect> · obligatoireEffets sur l’état, exécutés dans l’ordre pour ce nœud d’action.
[oneOf 4].continuationExecutableContinuation · obligatoireContinuation après la fin du nœud.
[oneOf 5].idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
[oneOf 5].flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
[oneOf 5].kind"command" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 5].commandRefId · obligatoireID de la commande de jeu à exécuter.
[oneOf 5].argumentsobject · obligatoireValeurs des arguments nommés transmises à l’appel.
{"additionalProperties":{"$ref":"#/$defs/ExecutableOperand"}}
[oneOf 5].arguments[key]ExecutableOperandConsultez le type et le schéma pour connaître la structure et les valeurs valides.
[oneOf 5].outcomesobject · obligatoireIssues possibles de la commande, avec leur nom, leur contrat de données et leurs associations.
{"additionalProperties":{"$ref":"#/$defs/ExecutableOutcomeBinding"}}
[oneOf 5].outcomes[key]ExecutableOutcomeBindingConsultez le type et le schéma pour connaître la structure et les valeurs valides.
[oneOf 6].idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
[oneOf 6].flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
[oneOf 6].kind"jump" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 6].targetEntryRef · obligatoireRéférence cible typée, par exemple une variable ou une entrée ; consultez la variante pour connaître sa structure exacte.
[oneOf 7].idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
[oneOf 7].flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
[oneOf 7].kind"end" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 8].idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
[oneOf 8].flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
[oneOf 8].kind"call" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 8].targetEntryRef · obligatoireRéférence cible typée, par exemple une variable ou une entrée ; consultez la variante pour connaître sa structure exacte.
[oneOf 8].continuationExecutableContinuation · obligatoireContinuation après la fin du nœud.
[oneOf 9].idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
[oneOf 9].flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
[oneOf 9].kind"return" · obligatoireDiscriminateur choisissant la variante valide.
Schema · ExecutableNode
{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Id"
        },
        "flowRef": {
          "$ref": "#/$defs/Id"
        },
        "kind": {
          "const": "dialogue"
        },
        "text": {
          "$ref": "#/$defs/ExecutableTextUse"
        },
        "speakerRef": {
          "$ref": "#/$defs/Id"
        },
        "emotionRef": {
          "$ref": "#/$defs/Id"
        },
        "continuation": {
          "$ref": "#/$defs/ExecutableContinuation"
        }
      },
      "required": [
        "id",
        "flowRef",
        "kind",
        "text",
        "continuation"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Id"
        },
        "flowRef": {
          "$ref": "#/$defs/Id"
        },
        "kind": {
          "const": "choice"
        },
        "optionOrder": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Id"
          },
          "uniqueItems": true
        },
        "options": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ExecutableChoiceOption"
          }
        },
        "whenEmpty": {
          "$ref": "#/$defs/ExecutableEmptyChoice"
        }
      },
      "required": [
        "id",
        "flowRef",
        "kind",
        "optionOrder",
        "options",
        "whenEmpty"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Id"
        },
        "flowRef": {
          "$ref": "#/$defs/Id"
        },
        "kind": {
          "const": "branch"
        },
        "condition": {
          "$ref": "#/$defs/ExecutableCondition"
        },
        "whenTrue": {
          "$ref": "#/$defs/ExecutableContinuation"
        },
        "whenFalse": {
          "$ref": "#/$defs/ExecutableContinuation"
        }
      },
      "required": [
        "id",
        "flowRef",
        "kind",
        "condition",
        "whenTrue",
        "whenFalse"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Id"
        },
        "flowRef": {
          "$ref": "#/$defs/Id"
        },
        "kind": {
          "const": "action"
        },
        "effects": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ExecutableEffect"
          }
        },
        "continuation": {
          "$ref": "#/$defs/ExecutableContinuation"
        }
      },
      "required": [
        "id",
        "flowRef",
        "kind",
        "effects",
        "continuation"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Id"
        },
        "flowRef": {
          "$ref": "#/$defs/Id"
        },
        "kind": {
          "const": "command"
        },
        "commandRef": {
          "$ref": "#/$defs/Id"
        },
        "arguments": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ExecutableOperand"
          }
        },
        "outcomes": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ExecutableOutcomeBinding"
          }
        }
      },
      "required": [
        "id",
        "flowRef",
        "kind",
        "commandRef",
        "arguments",
        "outcomes"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Id"
        },
        "flowRef": {
          "$ref": "#/$defs/Id"
        },
        "kind": {
          "const": "jump"
        },
        "target": {
          "$ref": "#/$defs/EntryRef"
        }
      },
      "required": [
        "id",
        "flowRef",
        "kind",
        "target"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Id"
        },
        "flowRef": {
          "$ref": "#/$defs/Id"
        },
        "kind": {
          "const": "end"
        }
      },
      "required": [
        "id",
        "flowRef",
        "kind"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Id"
        },
        "flowRef": {
          "$ref": "#/$defs/Id"
        },
        "kind": {
          "const": "call"
        },
        "target": {
          "$ref": "#/$defs/EntryRef"
        },
        "continuation": {
          "$ref": "#/$defs/ExecutableContinuation"
        }
      },
      "required": [
        "id",
        "flowRef",
        "kind",
        "target",
        "continuation"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Id"
        },
        "flowRef": {
          "$ref": "#/$defs/Id"
        },
        "kind": {
          "const": "return"
        }
      },
      "required": [
        "id",
        "flowRef",
        "kind"
      ],
      "additionalProperties": false
    }
  ],
  "title": "ExecutableNode"
}

ExecutableOperand

ChampType / obligatoireSignification / règles
[oneOf 1].kind"literal" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 1].valueTypedValue · obligatoireValeur littérale ; elle doit correspondre au type déclaré.
[oneOf 2].kind"variable" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 2].variableRefId · obligatoireID de la variable à lire ou à écrire.
Schema · ExecutableOperand
{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "literal"
        },
        "value": {
          "$ref": "#/$defs/TypedValue"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "variable"
        },
        "variableRef": {
          "$ref": "#/$defs/Id"
        }
      },
      "required": [
        "kind",
        "variableRef"
      ],
      "additionalProperties": false
    }
  ],
  "title": "ExecutableOperand"
}

ExecutableOutcomeBinding

ChampType / obligatoireSignification / règles
resultBindingsobject · obligatoireNom du résultat de commande → variable de destination pour la valeur retournée.
{"additionalProperties":{"$ref":"#/$defs/Id"}}
resultBindings[key]IdConsultez le type et le schéma pour connaître la structure et les valeurs valides.
continuationExecutableContinuation · obligatoireContinuation après la fin du nœud.
Schema · ExecutableOutcomeBinding
{
  "type": "object",
  "properties": {
    "resultBindings": {
      "type": "object",
      "propertyNames": {
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
      },
      "additionalProperties": {
        "$ref": "#/$defs/Id"
      }
    },
    "continuation": {
      "$ref": "#/$defs/ExecutableContinuation"
    }
  },
  "required": [
    "resultBindings",
    "continuation"
  ],
  "additionalProperties": false,
  "title": "ExecutableOutcomeBinding"
}

ExecutableStory

ChampType / obligatoireSignification / règles
format"vnle.story" · obligatoireIdentificateur de format exact pour ce conteneur de données.
containerVersion1 · obligatoireVersion entière du conteneur de l’histoire ; actuellement 1.
storyBuildIdHash · obligatoireSHA-256 de données d'exécution canonique ; les modifications de contenu seulement ne le changent pas.
executionExecutionContract · obligatoireContrat d’exécution typé.
contentobject · obligatoireDonnées de langue et de catalogue séparées de l’exécution.
{"additionalProperties":false}
content.sourceLocaleLocale · obligatoireLangue des textes sources, utilisée comme langue de repli.
content.localesArray<Locale> · obligatoireLangues déclarées, y compris la langue source.
{"minItems":1}
content.fallbackPolicyFallbackPolicy · obligatoireActuellement source: les traductions manquantes utilisent le texte source.
content.textsobject · obligatoireIdentifiant de texte → message source, paramètres de substitution et métadonnées.
{"additionalProperties":{"$ref":"#/$defs/ContentTextEntry"}}
content.texts[key]ContentTextEntryConsultez le type et le schéma pour connaître la structure et les valeurs valides.
content.translationsobject · obligatoireLangue → identifiant de texte → traduction ; si une entrée manque, le texte source est utilisé.
{"additionalProperties":{"type":"object","propertyNames":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},"additionalProperties":{"$ref":"#/$defs/Translation"},"minProperties":1}}
content.translations[key]objectConsultez le type et le schéma pour connaître la structure et les valeurs valides.
content.charactersobject · obligatoireIdentifiant de personnage → personnage avec ses noms localisés et ses émotions.
{"additionalProperties":{"$ref":"#/$defs/ContentCharacter"}}
content.characters[key]ContentCharacterConsultez le type et le schéma pour connaître la structure et les valeurs valides.
content.questsobject · obligatoireIdentifiant de quête → définition de la quête et de ses objectifs.
{"additionalProperties":{"$ref":"#/$defs/ContentQuestDefinition"}}
content.quests[key]ContentQuestDefinitionConsultez le type et le schéma pour connaître la structure et les valeurs valides.
content.itemsobject · obligatoireIdentifiant d’objet → définition de l’objet.
{"additionalProperties":{"$ref":"#/$defs/ContentItemDefinition"}}
content.items[key]ContentItemDefinitionConsultez le type et le schéma pour connaître la structure et les valeurs valides.
content.locationsobject · obligatoireIdentifiant de lieu → définition du lieu.
{"additionalProperties":{"$ref":"#/$defs/ContentLocationDefinition"}}
content.locations[key]ContentLocationDefinitionConsultez le type et le schéma pour connaître la structure et les valeurs valides.
content.minigamesobject · obligatoireIdentifiant de mini-jeu → définition du mini-jeu ; le jeu appelant assure son exécution.
{"additionalProperties":{"$ref":"#/$defs/ContentMinigameDefinition"}}
content.minigames[key]ContentMinigameDefinitionConsultez le type et le schéma pour connaître la structure et les valeurs valides.
content.assetsobject · obligatoireIdentifiant de ressource → définition du média ; l’export générique ne fournit actuellement aucune ressource déjà résolue pour un moteur.
{"additionalProperties":{"$ref":"#/$defs/ContentAsset"}}
content.assets[key]ContentAssetConsultez le type et le schéma pour connaître la structure et les valeurs valides.
content.variableDefinitionsobject · obligatoireDéfinitions des variables créées par l’auteur, avec leurs noms et références de texte.
{"additionalProperties":{"$ref":"#/$defs/ContentVariableDefinition"}}
content.variableDefinitions[key]ContentVariableDefinitionConsultez le type et le schéma pour connaître la structure et les valeurs valides.
content.commandDefinitionsobject · obligatoireDéfinitions des commandes créées par l’auteur, y compris leurs références de texte.
{"additionalProperties":{"$ref":"#/$defs/ContentCommandDefinition"}}
content.commandDefinitions[key]ContentCommandDefinitionConsultez le type et le schéma pour connaître la structure et les valeurs valides.
Schema · ExecutableStory
{
  "type": "object",
  "properties": {
    "format": {
      "const": "vnle.story"
    },
    "containerVersion": {
      "const": 1
    },
    "storyBuildId": {
      "$ref": "#/$defs/Hash"
    },
    "execution": {
      "$ref": "#/$defs/ExecutionContract"
    },
    "content": {
      "type": "object",
      "properties": {
        "sourceLocale": {
          "$ref": "#/$defs/Locale"
        },
        "locales": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Locale"
          },
          "minItems": 1,
          "uniqueItems": true
        },
        "fallbackPolicy": {
          "$ref": "#/$defs/FallbackPolicy"
        },
        "texts": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ContentTextEntry"
          }
        },
        "translations": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[A-Za-z]{2,8}(-[A-Za-z0-9]{1,8})*$"
          },
          "additionalProperties": {
            "type": "object",
            "propertyNames": {
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
            },
            "additionalProperties": {
              "$ref": "#/$defs/Translation"
            },
            "minProperties": 1
          }
        },
        "characters": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ContentCharacter"
          }
        },
        "quests": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ContentQuestDefinition"
          }
        },
        "items": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ContentItemDefinition"
          }
        },
        "locations": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ContentLocationDefinition"
          }
        },
        "minigames": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ContentMinigameDefinition"
          }
        },
        "assets": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ContentAsset"
          }
        },
        "variableDefinitions": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ContentVariableDefinition"
          }
        },
        "commandDefinitions": {
          "type": "object",
          "propertyNames": {
            "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
          },
          "additionalProperties": {
            "$ref": "#/$defs/ContentCommandDefinition"
          }
        }
      },
      "required": [
        "sourceLocale",
        "locales",
        "fallbackPolicy",
        "texts",
        "translations",
        "characters",
        "quests",
        "items",
        "locations",
        "minigames",
        "assets",
        "variableDefinitions",
        "commandDefinitions"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "format",
    "containerVersion",
    "storyBuildId",
    "execution",
    "content"
  ],
  "additionalProperties": false,
  "title": "ExecutableStory"
}

ExecutableTextUse

ChampType / obligatoireSignification / règles
textRefId · obligatoireRéférence à content.texts et à son contrat de texte.
bindingsobject · obligatoireNoms des paramètres de substitution → opérandes typés.
{"additionalProperties":{"$ref":"#/$defs/ExecutableOperand"}}
bindings[key]ExecutableOperandConsultez le type et le schéma pour connaître la structure et les valeurs valides.
Schema · ExecutableTextUse
{
  "type": "object",
  "properties": {
    "textRef": {
      "$ref": "#/$defs/Id"
    },
    "bindings": {
      "type": "object",
      "propertyNames": {
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
      },
      "additionalProperties": {
        "$ref": "#/$defs/ExecutableOperand"
      }
    }
  },
  "required": [
    "textRef",
    "bindings"
  ],
  "additionalProperties": false,
  "title": "ExecutableTextUse"
}

ExecutionContract

ChampType / obligatoireSignification / règles
format"vnle.execution" · obligatoireIdentificateur de format exact pour ce conteneur de données.
contractVersionRuntimeVersion · obligatoireVersion de compatibilité d'exécution : majeure et mineure.
projectIdId · obligatoireIdentification stable du projet source.
requiredCapabilitiesArray<Capability> · obligatoireFonctionnalités que l’adaptateur d’exécution complet doit vérifier avant le démarrage.
limitsobject · obligatoireLimites d'exécution et de récursion automatiques.
{"additionalProperties":false}
limits.maxAutomaticTransitions1000 · obligatoireTransitions automatiques maximales sans entrée utilisateur.
limits.maxConditionDepth32 · obligatoireProfondeur maximale d’imbrication des conditions.
limits.maxConditionTerms1024 · obligatoireNombre maximal de termes dans les conditions.
limits.maxCallDepth32 · obligatoireProfondeur maximale d’imbrication des appels de sous-histoires.
entriesobject · obligatoireID d'entrée → référence de flux et de nœud.
{"additionalProperties":{"$ref":"#/$defs/RuntimeEntry"}}
entries[key]RuntimeEntryConsultez le type et le schéma pour connaître la structure et les valeurs valides.
nodesobject · obligatoireIdentifiant de nœud → nœud exécutable ; kind détermine ses champs.
{"additionalProperties":{"$ref":"#/$defs/ExecutableNode"}}
nodes[key]ExecutableNodeConsultez le type et le schéma pour connaître la structure et les valeurs valides.
variablesobject · obligatoireIdentifiant de variable → définition typée de la variable d’exécution.
{"additionalProperties":{"$ref":"#/$defs/RuntimeVariable"}}
variables[key]RuntimeVariableConsultez le type et le schéma pour connaître la structure et les valeurs valides.
commandsobject · obligatoireIdentifiant de commande → signature d’exécution typée.
{"additionalProperties":{"$ref":"#/$defs/RuntimeSignature"}}
commands[key]RuntimeSignatureConsultez le type et le schéma pour connaître la structure et les valeurs valides.
textContractsobject · obligatoireIdentifiant de texte → contrats des paramètres de substitution requis par l’exécution.
{"additionalProperties":{"$ref":"#/$defs/PlaceholderContract"}}
textContracts[key]PlaceholderContractConsultez le type et le schéma pour connaître la structure et les valeurs valides.
Schema · ExecutionContract
{
  "type": "object",
  "properties": {
    "format": {
      "const": "vnle.execution"
    },
    "contractVersion": {
      "$ref": "#/$defs/RuntimeVersion"
    },
    "projectId": {
      "$ref": "#/$defs/Id"
    },
    "requiredCapabilities": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Capability"
      },
      "uniqueItems": true
    },
    "limits": {
      "type": "object",
      "properties": {
        "maxAutomaticTransitions": {
          "const": 1000
        },
        "maxConditionDepth": {
          "const": 32
        },
        "maxConditionTerms": {
          "const": 1024
        },
        "maxCallDepth": {
          "const": 32
        }
      },
      "required": [
        "maxAutomaticTransitions",
        "maxConditionDepth",
        "maxConditionTerms",
        "maxCallDepth"
      ],
      "additionalProperties": false
    },
    "entries": {
      "type": "object",
      "propertyNames": {
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
      },
      "additionalProperties": {
        "$ref": "#/$defs/RuntimeEntry"
      }
    },
    "nodes": {
      "type": "object",
      "propertyNames": {
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
      },
      "additionalProperties": {
        "$ref": "#/$defs/ExecutableNode"
      }
    },
    "variables": {
      "type": "object",
      "propertyNames": {
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
      },
      "additionalProperties": {
        "$ref": "#/$defs/RuntimeVariable"
      }
    },
    "commands": {
      "type": "object",
      "propertyNames": {
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
      },
      "additionalProperties": {
        "$ref": "#/$defs/RuntimeSignature"
      }
    },
    "textContracts": {
      "type": "object",
      "propertyNames": {
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
      },
      "additionalProperties": {
        "$ref": "#/$defs/PlaceholderContract"
      }
    }
  },
  "required": [
    "format",
    "contractVersion",
    "projectId",
    "requiredCapabilities",
    "limits",
    "entries",
    "nodes",
    "variables",
    "commands",
    "textContracts"
  ],
  "additionalProperties": false,
  "title": "ExecutionContract"
}

FallbackPolicy

ChampType / obligatoireSignification / règles
Schema · FallbackPolicy
{
  "type": "string",
  "enum": [
    "block",
    "source"
  ],
  "title": "FallbackPolicy"
}

Hash

ChampType / obligatoireSignification / règles
Schema · Hash
{
  "type": "string",
  "pattern": "^sha256:[0-9a-f]{64}$",
  "title": "Hash"
}

Id

ChampType / obligatoireSignification / règles
Schema · Id
{
  "type": "string",
  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
  "title": "Id"
}

Key

ChampType / obligatoireSignification / règles
Schema · Key
{
  "type": "string",
  "pattern": "^[A-Za-z][A-Za-z0-9_.-]{0,127}$",
  "title": "Key"
}

Locale

ChampType / obligatoireSignification / règles
Schema · Locale
{
  "type": "string",
  "pattern": "^[A-Za-z]{2,8}(-[A-Za-z0-9]{1,8})*$",
  "title": "Locale"
}

Message

ChampType / obligatoireSignification / règles
kind"segments" · obligatoireDiscriminateur choisissant la variante valide.
segmentsArray<object | object> · obligatoireSegments de texte et de paramètres de substitution du message, dans leur ordre.
Schema · Message
{
  "type": "object",
  "properties": {
    "kind": {
      "const": "segments"
    },
    "segments": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "kind": {
                "const": "text"
              },
              "text": {
                "type": "string"
              }
            },
            "required": [
              "kind",
              "text"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "kind": {
                "const": "placeholder"
              },
              "placeholderRef": {
                "$ref": "#/$defs/Id"
              }
            },
            "required": [
              "kind",
              "placeholderRef"
            ],
            "additionalProperties": false
          }
        ]
      }
    }
  },
  "required": [
    "kind",
    "segments"
  ],
  "additionalProperties": false,
  "title": "Message"
}

OutcomeDefinition

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
resultsArray<ResultDefinition> · obligatoireValeurs de résultat nommées et typées d’une issue.
Schema · OutcomeDefinition
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ResultDefinition"
      }
    }
  },
  "required": [
    "id",
    "name",
    "results"
  ],
  "additionalProperties": false,
  "title": "OutcomeDefinition"
}

ParameterDefinition

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
valueTypeValueType · obligatoireContrat de la valeur attendue, y compris les types d’entités possibles.
defaultValueTypedValueValeur initiale ou par défaut typée.
Schema · ParameterDefinition
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "valueType": {
      "$ref": "#/$defs/ValueType"
    },
    "defaultValue": {
      "$ref": "#/$defs/TypedValue"
    }
  },
  "required": [
    "id",
    "name",
    "valueType"
  ],
  "additionalProperties": false,
  "title": "ParameterDefinition"
}

PlaceholderContract

ChampType / obligatoireSignification / règles
map[key]ScalarTypeConsultez le type et le schéma pour connaître la structure et les valeurs valides.
Schema · PlaceholderContract
{
  "type": "object",
  "propertyNames": {
    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
  },
  "additionalProperties": {
    "$ref": "#/$defs/ScalarType"
  },
  "title": "PlaceholderContract"
}

PlaceholderDefinition

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
displayNamestring · obligatoireNom lisible de la ressource.
valueTypeScalarType · obligatoireContrat de la valeur attendue, y compris les types d’entités possibles.
Schema · PlaceholderDefinition
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "displayName": {
      "type": "string"
    },
    "valueType": {
      "$ref": "#/$defs/ScalarType"
    }
  },
  "required": [
    "id",
    "displayName",
    "valueType"
  ],
  "additionalProperties": false,
  "title": "PlaceholderDefinition"
}

QuestObjective

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
labelTextRefId · obligatoireIdentifiant du texte du libellé traduit.
descriptionTextRefIdID texte pour la description localisée.
Schema · QuestObjective
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "labelTextRef": {
      "$ref": "#/$defs/Id"
    },
    "descriptionTextRef": {
      "$ref": "#/$defs/Id"
    }
  },
  "required": [
    "id",
    "labelTextRef"
  ],
  "additionalProperties": false,
  "title": "QuestObjective"
}

RelativePath

ChampType / obligatoireSignification / règles
Schema · RelativePath
{
  "type": "string",
  "minLength": 1,
  "maxLength": 1024,
  "title": "RelativePath"
}

ResultDefinition

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
namestring · obligatoireNom saisi par l’auteur ; ne pas utiliser comme clé de référence.
valueTypeValueType · obligatoireContrat de la valeur attendue, y compris les types d’entités possibles.
Schema · ResultDefinition
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "valueType": {
      "$ref": "#/$defs/ValueType"
    }
  },
  "required": [
    "id",
    "name",
    "valueType"
  ],
  "additionalProperties": false,
  "title": "ResultDefinition"
}

RuntimeEntry

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
flowRefId · obligatoireIdentifiant de scène ou de sous-histoire.
nodeRefId · obligatoireIdentifiant du prochain nœud exécutable.
Schema · RuntimeEntry
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "flowRef": {
      "$ref": "#/$defs/Id"
    },
    "nodeRef": {
      "$ref": "#/$defs/Id"
    }
  },
  "required": [
    "id",
    "flowRef",
    "nodeRef"
  ],
  "additionalProperties": false,
  "title": "RuntimeEntry"
}

RuntimeSignature

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
inputsArray<object> · obligatoireEntrées nommées et typées de la signature.
outcomesArray<object> · obligatoireIssues possibles de la commande, avec leur nom, leur contrat de données et leurs associations.
{"minItems":1}
Schema · RuntimeSignature
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "inputs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/Id"
          },
          "valueType": {
            "$ref": "#/$defs/ValueType"
          },
          "defaultValue": {
            "$ref": "#/$defs/TypedValue"
          }
        },
        "required": [
          "id",
          "valueType"
        ],
        "additionalProperties": false
      }
    },
    "outcomes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/$defs/Id"
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/$defs/Id"
                },
                "valueType": {
                  "$ref": "#/$defs/ValueType"
                }
              },
              "required": [
                "id",
                "valueType"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "results"
        ],
        "additionalProperties": false
      },
      "minItems": 1
    }
  },
  "required": [
    "id",
    "inputs",
    "outcomes"
  ],
  "additionalProperties": false,
  "title": "RuntimeSignature"
}

RuntimeVariable

ChampType / obligatoireSignification / règles
idId · obligatoireIdentifiant stable ; les noms affichés ne servent pas de clés.
valueTypeScalarType · obligatoireContrat de la valeur attendue, y compris les types d’entités possibles.
defaultValueScalarValue · obligatoireValeur initiale ou par défaut typée.
Schema · RuntimeVariable
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "valueType": {
      "$ref": "#/$defs/ScalarType"
    },
    "defaultValue": {
      "$ref": "#/$defs/ScalarValue"
    }
  },
  "required": [
    "id",
    "valueType",
    "defaultValue"
  ],
  "additionalProperties": false,
  "title": "RuntimeVariable"
}

RuntimeVersion

ChampType / obligatoireSignification / règles
major1 · obligatoireVersion majeure incompatible; rejeter les versions non prises en charge.
minor1 · obligatoireVersion d'extension dans la version principale.
Schema · RuntimeVersion
{
  "type": "object",
  "properties": {
    "major": {
      "const": 1
    },
    "minor": {
      "const": 1
    }
  },
  "required": [
    "major",
    "minor"
  ],
  "additionalProperties": false,
  "title": "RuntimeVersion"
}

ScalarType

ChampType / obligatoireSignification / règles
Schema · ScalarType
{
  "type": "string",
  "enum": [
    "boolean",
    "integer",
    "string"
  ],
  "title": "ScalarType"
}

ScalarValue

ChampType / obligatoireSignification / règles
[oneOf 1].type"boolean" · obligatoireDiscriminant de type ; les valeurs autorisées dépendent du schéma qui l’entoure.
[oneOf 1].valueboolean · obligatoireValeur littérale ; elle doit correspondre au type déclaré.
[oneOf 2].type"integer" · obligatoireDiscriminant de type ; les valeurs autorisées dépendent du schéma qui l’entoure.
[oneOf 2].valueinteger · obligatoireValeur littérale ; elle doit correspondre au type déclaré.
{"minimum":-2147483648,"maximum":2147483647}
[oneOf 3].type"string" · obligatoireDiscriminant de type ; les valeurs autorisées dépendent du schéma qui l’entoure.
[oneOf 3].valuestring · obligatoireValeur littérale ; elle doit correspondre au type déclaré.
Schema · ScalarValue
{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "boolean"
        },
        "value": {
          "type": "boolean"
        }
      },
      "required": [
        "type",
        "value"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "integer"
        },
        "value": {
          "type": "integer",
          "minimum": -2147483648,
          "maximum": 2147483647
        }
      },
      "required": [
        "type",
        "value"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "value"
      ],
      "additionalProperties": false
    }
  ],
  "title": "ScalarValue"
}

Translation

ChampType / obligatoireSignification / règles
textRefId · obligatoireRéférence à content.texts et à son contrat de texte.
localeLocale · obligatoireCode de langue de cette traduction.
messageMessage · obligatoireMessage traduit respectant le contrat des paramètres de substitution.
allowEmptyboolean · obligatoirePermettre une traduction intentionnellement vide.
workflowStatus"draft" | "translated" | "reviewed" · obligatoireÉtat du flux de travail de traduction, pas une branche d'exécution.
basedOnSourceFingerprintHash · obligatoireVersion source utilisée pour cette traduction ; une différence indique qu’elle est obsolète.
reviewedContextFingerprintHashEmpreinte contextuelle pour l'état de traduction examiné.
origin"ai"Consultez le type et le schéma pour connaître la structure et les valeurs valides.
Schema · Translation
{
  "type": "object",
  "properties": {
    "textRef": {
      "$ref": "#/$defs/Id"
    },
    "locale": {
      "$ref": "#/$defs/Locale"
    },
    "message": {
      "$ref": "#/$defs/Message"
    },
    "allowEmpty": {
      "type": "boolean"
    },
    "workflowStatus": {
      "type": "string",
      "enum": [
        "draft",
        "translated",
        "reviewed"
      ]
    },
    "basedOnSourceFingerprint": {
      "$ref": "#/$defs/Hash"
    },
    "reviewedContextFingerprint": {
      "$ref": "#/$defs/Hash"
    },
    "origin": {
      "const": "ai"
    }
  },
  "required": [
    "textRef",
    "locale",
    "message",
    "allowEmpty",
    "workflowStatus",
    "basedOnSourceFingerprint"
  ],
  "additionalProperties": false,
  "title": "Translation"
}

TypedValue

ChampType / obligatoireSignification / règles
[oneOf 2].type"reference" · obligatoireDiscriminant de type ; les valeurs autorisées dépendent du schéma qui l’entoure.
[oneOf 2].entityTypeEntityType · obligatoireType de catalogue pour une référence d'entité.
[oneOf 2].valueId · obligatoireValeur littérale ; elle doit correspondre au type déclaré.
Schema · TypedValue
{
  "oneOf": [
    {
      "$ref": "#/$defs/ScalarValue"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "reference"
        },
        "entityType": {
          "$ref": "#/$defs/EntityType"
        },
        "value": {
          "$ref": "#/$defs/Id"
        }
      },
      "required": [
        "type",
        "entityType",
        "value"
      ],
      "additionalProperties": false
    }
  ],
  "title": "TypedValue"
}

ValueType

ChampType / obligatoireSignification / règles
[oneOf 2].kind"reference" · obligatoireDiscriminateur choisissant la variante valide.
[oneOf 2].entityTypeEntityType · obligatoireType de catalogue pour une référence d'entité.
Schema · ValueType
{
  "oneOf": [
    {
      "$ref": "#/$defs/ScalarType"
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "reference"
        },
        "entityType": {
          "$ref": "#/$defs/EntityType"
        }
      },
      "required": [
        "kind",
        "entityType"
      ],
      "additionalProperties": false
    }
  ],
  "title": "ValueType"
}