VNLEWIKICrea historias. Conecta mundos.
Español
Manual de VNLE

Referencia de campos JSON

Ejecución y contenido

format y containerVersion identifican el contenedor. execution contiene entradas y nodos; content contiene textos, traducciones y catálogos. Los UUID conectan las tablas: no uses los nombres visibles como referencias. JSON no admite comentarios; las explicaciones se mantienen aparte para que el ejemplo siga siendo válido.

// 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

Cambio de idioma y traducciones ausentes

Guarda el idioma separado del nodo actual. Al cambiarlo, resuelve de nuevo el mismo textRef: usa la traducción de locale si existe; de lo contrario, sourceMessage. Si falta la tabla de un idioma, sus traducciones están ausentes. allowEmpty permite texto vacío intencionadamente. Evalúa los marcadores de posición con el formato de su tipo; no conviertas el propio JSON en texto. Las huellas del original detectan traducciones desactualizadas; workflowStatus por sí solo no garantiza que estén al día.

A continuación se incluyen todas las definiciones accesibles desde el esquema actual de exportación, con sus propiedades, variantes y restricciones. Schema también muestra las reglas anidadas. Si additionalProperties es false, se rechazan los campos adicionales.

JSON Schema · Draft 2020-12

Capability

CampoTipo / obligatorioSignificado / reglas
Schema · Capability
{
  "type": "string",
  "pattern": "^[a-z][a-z0-9.-]*$",
  "title": "Capability"
}

ContentAsset

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
mediaTypestring · obligatorioTipo MIME del contenido multimedia.
relativePathRelativePath · obligatorioRuta relativa validada de un recurso; nunca la uses como ruta del sistema de archivos sin comprobarla.
contentHashHash · obligatorioSHA-256 de los bytes del recurso multimedia referenciado.
displayNamestring · obligatorioNombre visible y legible del recurso.
licenseNotestringNota sobre la licencia del recurso; no se verifica legalmente de forma automática.
widthintegerVer tipo y esquema para estructura y valores válidos.
{"minimum":0,"maximum":2147483647}
heightintegerVer tipo y esquema para estructura y valores válidos.
{"minimum":0,"maximum":2147483647}
byteSizeintegerVer tipo y esquema para estructura y valores válidos.
{"minimum":0,"maximum":2147483647}
originalNamestringVer tipo y esquema para estructura y valores válidos.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
keyKey · obligatorioClave legible y estable; los identificadores siguen siendo las referencias técnicas.
nameTextRefId · obligatorioID de texto para el nombre localizado.
colorstring · obligatorioColor de visualización del personaje; no es un valor de la lógica del juego.
{"pattern":"^#[0-9a-fA-F]{6}$"}
defaultPortraitRefIdRecurso del retrato predeterminado del personaje; no se incluye en la exportación genérica.
emotionsobject · obligatorioIdentificador de emoción → definición de la emoción.
{"additionalProperties":{"$ref":"#/$defs/Emotion"}}
emotions[key]EmotionVer tipo y esquema para estructura y valores válidos.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
keyKey · obligatorioClave legible y estable; los identificadores siguen siendo las referencias técnicas.
categorystring · obligatorioCategoría del catálogo utilizada para organizar la definición.
inputsArray<ParameterDefinition> · obligatorioEntradas de la firma, con nombre y tipo.
outcomesArray<OutcomeDefinition> · obligatorioPosibles resultados del comando, con sus nombres, contratos y asociaciones.
{"minItems":1}
descriptionstringDescripción escrita por el autor; no es una instrucción ejecutable.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
keyKey · obligatorioClave legible y estable; los identificadores siguen siendo las referencias técnicas.
nameTextRefId · obligatorioID de texto para el nombre localizado.
descriptionTextRefIdID de texto para la descripción localizada.
iconAssetRefIdIdentificador de recurso para un icono del catálogo.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
keyKey · obligatorioClave legible y estable; los identificadores siguen siendo las referencias técnicas.
nameTextRefId · obligatorioID de texto para el nombre localizado.
descriptionTextRefIdID de texto para la descripción localizada.
previewAssetRefIdIdentificador de recurso para una vista previa.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
keyKey · obligatorioClave legible y estable; los identificadores siguen siendo las referencias técnicas.
nameTextRefIdID de texto para el nombre localizado.
commandRefId · obligatorioID del comando del juego para ejecutar.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
keyKey · obligatorioClave legible y estable; los identificadores siguen siendo las referencias técnicas.
titleTextRefId · obligatorioID de texto de un título localizado.
descriptionTextRefIdID de texto para la descripción localizada.
objectiveDefinitionsArray<QuestObjective> · obligatorioIdentificador de objetivo de misión → definición del objetivo.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
keyKeyClave legible y estable; los identificadores siguen siendo las referencias técnicas.
categorystring · obligatorioCategoría del catálogo utilizada para organizar la definición.
sourceMessageMensaje · obligatorioMensaje original compuesto por segmentos de texto y marcadores de posición.
placeholdersobject · obligatorioClave del marcador de posición → definición del tipo y formato.
{"additionalProperties":{"$ref":"#/$defs/PlaceholderDefinition"}}
placeholders[key]PlaceholderDefinitionVer tipo y esquema para estructura y valores válidos.
externalUseboolean · obligatorioMarca un texto utilizado fuera del grafo de nodos.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
keyKey · obligatorioClave legible y estable; los identificadores siguen siendo las referencias técnicas.
valueTypeScalarType · obligatorioContrato de valor previsto, incluidos posibles tipos de entidades.
defaultValueScalarValue · obligatorioValor inicial o predeterminado con su tipo.
descriptionstringDescripción escrita por el autor; no es una instrucción ejecutable.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
portraitRefIdRecurso de retrato para una emoción; no se incluye en la exportación genérica.
Schema · Emotion
{
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/Id"
    },
    "name": {
      "type": "string"
    },
    "portraitRef": {
      "$ref": "#/$defs/Id"
    }
  },
  "required": [
    "id",
    "name"
  ],
  "additionalProperties": false,
  "title": "Emotion"
}

EntityType

CampoTipo / obligatorioSignificado / reglas
Schema · EntityType
{
  "type": "string",
  "enum": [
    "item",
    "quest",
    "location",
    "minigame",
    "asset"
  ],
  "title": "EntityType"
}

EntryRef

CampoTipo / obligatorioSignificado / reglas
flowRefId · obligatorioIdentificador de escena o subhistoria.
entryRefId · obligatorioID de entrada dentro del flujo especificado.
Schema · EntryRef
{
  "type": "object",
  "properties": {
    "flowRef": {
      "$ref": "#/$defs/Id"
    },
    "entryRef": {
      "$ref": "#/$defs/Id"
    }
  },
  "required": [
    "flowRef",
    "entryRef"
  ],
  "additionalProperties": false,
  "title": "EntryRef"
}

ExecutableChoiceOption

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
textExecutableTextUse · obligatorioPara segmentos de texto: contenido literal. Para usos del texto: textRef y bindings.
conditionExecutableConditionCondición evaluada antes de ramificar o habilitar una opción.
effectsArray<ExecutableEffect> · obligatorioEfectos sobre el estado aplicados en orden por el nodo de acción.
continuationExecutableContinuation · obligatorioContinuación después de que el nodo termine.
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

CampoTipo / obligatorioSignificado / reglas
[oneOf 1].kind"compare" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 1].leftExecutableOperand · obligatorioOperando izquierdo tipado de la comparación.
[oneOf 1].operator"eq" | "ne" | "lt" | "lte" | "gt" | "gte" · obligatorioOperador de comparación o lógico; las variantes indican los valores permitidos.
[oneOf 1].rightExecutableOperand · obligatorioOperando derecho tipado de la comparación.
[oneOf 2].kind"all" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 2].childrenArray<ExecutableCondition> · obligatorioCondiciones hijas de una expresión compuesta.
[oneOf 3].kind"any" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 3].childrenArray<ExecutableCondition> · obligatorioCondiciones hijas de una expresión compuesta.
[oneOf 4].kind"not" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 4].childExecutableCondition · obligatorioCondición hija de un operador unario.
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

CampoTipo / obligatorioSignificado / reglas
[oneOf 1].kind"node" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 1].nodeRefId · obligatorioIdentificador del siguiente nodo ejecutable.
[oneOf 2].kind"end" · obligatorioDiscriminador que selecciona la variante válida.
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

CampoTipo / obligatorioSignificado / reglas
[oneOf 1].kind"set" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 1].variableRefId · obligatorioID de la variable para leer o escribir.
[oneOf 1].valueExecutableOperand · obligatorioValor literal; debe coincidir con el tipo declarado.
[oneOf 2].kind"add" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 2].variableRefId · obligatorioID de la variable para leer o escribir.
[oneOf 2].valueExecutableOperand · obligatorioValor literal; debe coincidir con el tipo declarado.
[oneOf 3].kind"subtract" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 3].variableRefId · obligatorioID de la variable para leer o escribir.
[oneOf 3].valueExecutableOperand · obligatorioValor literal; debe coincidir con el tipo declarado.
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

CampoTipo / obligatorioSignificado / reglas
[oneOf 1].kind"continue" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 1].continuationExecutableContinuation · obligatorioContinuación después de que el nodo termine.
[oneOf 2].kind"fault" · obligatorioDiscriminador que selecciona la variante válida.
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

CampoTipo / obligatorioSignificado / reglas
[oneOf 1].idId · obligatorioIdentificador estable; los nombres visibles no son claves.
[oneOf 1].flowRefId · obligatorioIdentificador de escena o subhistoria.
[oneOf 1].kind"dialogue" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 1].textExecutableTextUse · obligatorioPara segmentos de texto: contenido literal. Para usos del texto: textRef y bindings.
[oneOf 1].speakerRefIdIdentificador del personaje que habla; su ausencia indica que no hay un personaje asignado.
[oneOf 1].emotionRefIdEmoción del personaje seleccionada para este diálogo.
[oneOf 1].continuationExecutableContinuation · obligatorioContinuación después de que el nodo termine.
[oneOf 2].idId · obligatorioIdentificador estable; los nombres visibles no son claves.
[oneOf 2].flowRefId · obligatorioIdentificador de escena o subhistoria.
[oneOf 2].kind"choice" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 2].optionOrderArray<Id> · obligatorioIdentificadores de las opciones en su orden de presentación.
[oneOf 2].optionsobject · obligatorioIdentificador de opción → opción con texto, condición y continuación.
{"additionalProperties":{"$ref":"#/$defs/ExecutableChoiceOption"}}
[oneOf 2].options[key]ExecutableChoiceOptionVer tipo y esquema para estructura y valores válidos.
[oneOf 2].whenEmptyExecutableEmptyChoice · obligatorioComportamiento cuando no hay opción de elección disponible.
[oneOf 3].idId · obligatorioIdentificador estable; los nombres visibles no son claves.
[oneOf 3].flowRefId · obligatorioIdentificador de escena o subhistoria.
[oneOf 3].kind"branch" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 3].conditionExecutableCondition · obligatorioCondición evaluada antes de ramificar o habilitar una opción.
[oneOf 3].whenTrueExecutableContinuation · obligatorioContinuación cuando la condición es verdadera.
[oneOf 3].whenFalseExecutableContinuation · obligatorioContinuación cuando la condición es falsa.
[oneOf 4].idId · obligatorioIdentificador estable; los nombres visibles no son claves.
[oneOf 4].flowRefId · obligatorioIdentificador de escena o subhistoria.
[oneOf 4].kind"action" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 4].effectsArray<ExecutableEffect> · obligatorioEfectos sobre el estado aplicados en orden por el nodo de acción.
[oneOf 4].continuationExecutableContinuation · obligatorioContinuación después de que el nodo termine.
[oneOf 5].idId · obligatorioIdentificador estable; los nombres visibles no son claves.
[oneOf 5].flowRefId · obligatorioIdentificador de escena o subhistoria.
[oneOf 5].kind"command" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 5].commandRefId · obligatorioID del comando del juego para ejecutar.
[oneOf 5].argumentsobject · obligatorioValores de los argumentos con nombre que se pasan a la llamada.
{"additionalProperties":{"$ref":"#/$defs/ExecutableOperand"}}
[oneOf 5].arguments[key]ExecutableOperandVer tipo y esquema para estructura y valores válidos.
[oneOf 5].outcomesobject · obligatorioPosibles resultados del comando, con sus nombres, contratos y asociaciones.
{"additionalProperties":{"$ref":"#/$defs/ExecutableOutcomeBinding"}}
[oneOf 5].outcomes[key]ExecutableOutcomeBindingVer tipo y esquema para estructura y valores válidos.
[oneOf 6].idId · obligatorioIdentificador estable; los nombres visibles no son claves.
[oneOf 6].flowRefId · obligatorioIdentificador de escena o subhistoria.
[oneOf 6].kind"jump" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 6].targetEntryRef · obligatorioReferencia de destino tipada, como una variable o una entrada; consulta la variante para conocer su estructura exacta.
[oneOf 7].idId · obligatorioIdentificador estable; los nombres visibles no son claves.
[oneOf 7].flowRefId · obligatorioIdentificador de escena o subhistoria.
[oneOf 7].kind"end" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 8].idId · obligatorioIdentificador estable; los nombres visibles no son claves.
[oneOf 8].flowRefId · obligatorioIdentificador de escena o subhistoria.
[oneOf 8].kind"call" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 8].targetEntryRef · obligatorioReferencia de destino tipada, como una variable o una entrada; consulta la variante para conocer su estructura exacta.
[oneOf 8].continuationExecutableContinuation · obligatorioContinuación después de que el nodo termine.
[oneOf 9].idId · obligatorioIdentificador estable; los nombres visibles no son claves.
[oneOf 9].flowRefId · obligatorioIdentificador de escena o subhistoria.
[oneOf 9].kind"return" · obligatorioDiscriminador que selecciona la variante válida.
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

CampoTipo / obligatorioSignificado / reglas
[oneOf 1].kind"literal" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 1].valueTypedValue · obligatorioValor literal; debe coincidir con el tipo declarado.
[oneOf 2].kind"variable" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 2].variableRefId · obligatorioID de la variable para leer o escribir.
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

CampoTipo / obligatorioSignificado / reglas
resultBindingsobject · obligatorioNombre del resultado del comando → variable de destino para el valor devuelto.
{"additionalProperties":{"$ref":"#/$defs/Id"}}
resultBindings[key]IdVer tipo y esquema para estructura y valores válidos.
continuationExecutableContinuation · obligatorioContinuación después de que el nodo termine.
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

CampoTipo / obligatorioSignificado / reglas
format"vnle.story" · obligatorioIdentificador de formato exacto para este contenedor de datos.
containerVersion1 · obligatorioVersión entera del contenedor de la historia; actualmente 1.
storyBuildIdHash · obligatorioSHA-256 de los datos de ejecución canónicos; cambiar solo el contenido no lo modifica.
executionExecutionContract · obligatorioContrato de ejecución tipado.
contentobject · obligatorioDatos de idioma y catálogo separados de la ejecución.
{"additionalProperties":false}
content.sourceLocaleLocale · obligatorioIdioma original de los textos, utilizado también cuando falta una traducción.
content.localesArray<Locale> · obligatorioIdiomas declarados en la exportación, incluido el original.
{"minItems":1}
content.fallbackPolicyFallbackPolicy · obligatorioActualmente source: las traducciones ausentes utilizan el texto original.
content.textsobject · obligatorioID de texto → mensaje fuente, marcadores de posición y metadatos.
{"additionalProperties":{"$ref":"#/$defs/ContentTextEntry"}}
content.texts[key]ContentTextEntryVer tipo y esquema para estructura y valores válidos.
content.translationsobject · obligatorioIdioma → identificador de texto → traducción; si falta una entrada, se usa el texto original.
{"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]objectVer tipo y esquema para estructura y valores válidos.
content.charactersobject · obligatorioIdentificador de personaje → personaje con nombres localizados y emociones.
{"additionalProperties":{"$ref":"#/$defs/ContentCharacter"}}
content.characters[key]ContentCharacterVer tipo y esquema para estructura y valores válidos.
content.questsobject · obligatorioIdentificador de misión → definición de la misión con sus objetivos.
{"additionalProperties":{"$ref":"#/$defs/ContentQuestDefinition"}}
content.quests[key]ContentQuestDefinitionVer tipo y esquema para estructura y valores válidos.
content.itemsobject · obligatorioIdentificador de objeto → definición del objeto.
{"additionalProperties":{"$ref":"#/$defs/ContentItemDefinition"}}
content.items[key]ContentItemDefinitionVer tipo y esquema para estructura y valores válidos.
content.locationsobject · obligatorioID de ubicación → definición de ubicación.
{"additionalProperties":{"$ref":"#/$defs/ContentLocationDefinition"}}
content.locations[key]ContentLocationDefinitionVer tipo y esquema para estructura y valores válidos.
content.minigamesobject · obligatorioIdentificador de minijuego → definición; el juego anfitrión implementa su funcionamiento.
{"additionalProperties":{"$ref":"#/$defs/ContentMinigameDefinition"}}
content.minigames[key]ContentMinigameDefinitionVer tipo y esquema para estructura y valores válidos.
content.assetsobject · obligatorioIdentificador de recurso → definición del contenido multimedia; la exportación genérica no proporciona actualmente recursos ya resueltos para un motor.
{"additionalProperties":{"$ref":"#/$defs/ContentAsset"}}
content.assets[key]ContentAssetVer tipo y esquema para estructura y valores válidos.
content.variableDefinitionsobject · obligatorioDefiniciones de las variables creadas por el autor, con sus nombres y referencias de texto.
{"additionalProperties":{"$ref":"#/$defs/ContentVariableDefinition"}}
content.variableDefinitions[key]ContentVariableDefinitionVer tipo y esquema para estructura y valores válidos.
content.commandDefinitionsobject · obligatorioDefiniciones de los comandos creados por el autor, incluidas sus referencias de texto.
{"additionalProperties":{"$ref":"#/$defs/ContentCommandDefinition"}}
content.commandDefinitions[key]ContentCommandDefinitionVer tipo y esquema para estructura y valores válidos.
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

CampoTipo / obligatorioSignificado / reglas
textRefId · obligatorioReferencia a content.texts y a su contrato de texto.
bindingsobject · obligatorioNombre del marcador de posición o parámetro → operando tipado.
{"additionalProperties":{"$ref":"#/$defs/ExecutableOperand"}}
bindings[key]ExecutableOperandVer tipo y esquema para estructura y valores válidos.
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

CampoTipo / obligatorioSignificado / reglas
format"vnle.execution" · obligatorioIdentificador de formato exacto para este contenedor de datos.
contractVersionRuntimeVersion · obligatorioVersión de compatibilidad de ejecución: mayor y menor.
projectIdId · obligatorioID estable del proyecto fuente.
requiredCapabilitiesArray<Capability> · obligatorioCapacidades que un adaptador de ejecución completo debe comprobar antes de empezar.
limitsobject · obligatorioLímites para la ejecución automática y la recursión.
{"additionalProperties":false}
limits.maxAutomaticTransitions1000 · obligatorioNúmero máximo de transiciones automáticas sin intervención del usuario.
limits.maxConditionDepth32 · obligatorioProfundidad máxima de anidamiento de condiciones.
limits.maxConditionTerms1024 · obligatorioNúmero máximo de términos en las condiciones.
limits.maxCallDepth32 · obligatorioProfundidad máxima de llamadas anidadas a subhistorias.
entriesobject · obligatorioID de entrada → flujo y referencia de nodos.
{"additionalProperties":{"$ref":"#/$defs/RuntimeEntry"}}
entries[key]RuntimeEntryVer tipo y esquema para estructura y valores válidos.
nodesobject · obligatorioIdentificador de nodo → nodo ejecutable; kind determina sus campos.
{"additionalProperties":{"$ref":"#/$defs/ExecutableNode"}}
nodes[key]ExecutableNodeVer tipo y esquema para estructura y valores válidos.
variablesobject · obligatorioIdentificador de variable → definición tipada de la variable de ejecución.
{"additionalProperties":{"$ref":"#/$defs/RuntimeVariable"}}
variables[key]RuntimeVariableVer tipo y esquema para estructura y valores válidos.
commandsobject · obligatorioIdentificador de comando → firma de ejecución tipada.
{"additionalProperties":{"$ref":"#/$defs/RuntimeSignature"}}
commands[key]RuntimeSignatureVer tipo y esquema para estructura y valores válidos.
textContractsobject · obligatorioIdentificador de texto → contratos de marcadores de posición requeridos por la ejecución.
{"additionalProperties":{"$ref":"#/$defs/PlaceholderContract"}}
textContracts[key]PlaceholderContractVer tipo y esquema para estructura y valores válidos.
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

CampoTipo / obligatorioSignificado / reglas
Schema · FallbackPolicy
{
  "type": "string",
  "enum": [
    "block",
    "source"
  ],
  "title": "FallbackPolicy"
}

Hash

CampoTipo / obligatorioSignificado / reglas
Schema · Hash
{
  "type": "string",
  "pattern": "^sha256:[0-9a-f]{64}$",
  "title": "Hash"
}

Id

CampoTipo / obligatorioSignificado / reglas
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

CampoTipo / obligatorioSignificado / reglas
Schema · Key
{
  "type": "string",
  "pattern": "^[A-Za-z][A-Za-z0-9_.-]{0,127}$",
  "title": "Key"
}

Locale

CampoTipo / obligatorioSignificado / reglas
Schema · Locale
{
  "type": "string",
  "pattern": "^[A-Za-z]{2,8}(-[A-Za-z0-9]{1,8})*$",
  "title": "Locale"
}

Mensaje

CampoTipo / obligatorioSignificado / reglas
kind"segments" · obligatorioDiscriminador que selecciona la variante válida.
segmentsArray<object | object> · obligatorioSegmentos de texto y marcadores de posición del mensaje, en orden.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
resultsArray<ResultDefinition> · obligatorioValores de resultado con nombre y tipo para una salida.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
valueTypeValueType · obligatorioContrato de valor previsto, incluidos posibles tipos de entidades.
defaultValueTypedValueValor inicial o predeterminado con su tipo.
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

CampoTipo / obligatorioSignificado / reglas
map[key]ScalarTypeVer tipo y esquema para estructura y valores válidos.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
displayNamestring · obligatorioNombre visible y legible del recurso.
valueTypeScalarType · obligatorioContrato de valor previsto, incluidos posibles tipos de entidades.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
labelTextRefId · obligatorioID de texto de la etiqueta localizada.
descriptionTextRefIdID de texto para la descripción localizada.
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

CampoTipo / obligatorioSignificado / reglas
Schema · RelativePath
{
  "type": "string",
  "minLength": 1,
  "maxLength": 1024,
  "title": "RelativePath"
}

ResultDefinition

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
namestring · obligatorioNombre definido por el autor; no lo uses como clave de referencia.
valueTypeValueType · obligatorioContrato de valor previsto, incluidos posibles tipos de entidades.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
flowRefId · obligatorioIdentificador de escena o subhistoria.
nodeRefId · obligatorioIdentificador del siguiente nodo ejecutable.
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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
inputsArray<object> · obligatorioEntradas de la firma, con nombre y tipo.
outcomesArray<object> · obligatorioPosibles resultados del comando, con sus nombres, contratos y asociaciones.
{"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

CampoTipo / obligatorioSignificado / reglas
idId · obligatorioIdentificador estable; los nombres visibles no son claves.
valueTypeScalarType · obligatorioContrato de valor previsto, incluidos posibles tipos de entidades.
defaultValueScalarValue · obligatorioValor inicial o predeterminado con su tipo.
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

CampoTipo / obligatorioSignificado / reglas
major1 · obligatorioVersión principal incompatible; rechazar versiones no compatibles.
minor1 · obligatorioVersión de extensión dentro de la versión principal.
Schema · RuntimeVersion
{
  "type": "object",
  "properties": {
    "major": {
      "const": 1
    },
    "minor": {
      "const": 1
    }
  },
  "required": [
    "major",
    "minor"
  ],
  "additionalProperties": false,
  "title": "RuntimeVersion"
}

ScalarType

CampoTipo / obligatorioSignificado / reglas
Schema · ScalarType
{
  "type": "string",
  "enum": [
    "boolean",
    "integer",
    "string"
  ],
  "title": "ScalarType"
}

ScalarValue

CampoTipo / obligatorioSignificado / reglas
[oneOf 1].type"boolean" · obligatorioDiscriminador de tipo; los valores permitidos dependen del esquema que lo contiene.
[oneOf 1].valueboolean · obligatorioValor literal; debe coincidir con el tipo declarado.
[oneOf 2].type"integer" · obligatorioDiscriminador de tipo; los valores permitidos dependen del esquema que lo contiene.
[oneOf 2].valueinteger · obligatorioValor literal; debe coincidir con el tipo declarado.
{"minimum":-2147483648,"maximum":2147483647}
[oneOf 3].type"string" · obligatorioDiscriminador de tipo; los valores permitidos dependen del esquema que lo contiene.
[oneOf 3].valuestring · obligatorioValor literal; debe coincidir con el tipo declarado.
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

CampoTipo / obligatorioSignificado / reglas
textRefId · obligatorioReferencia a content.texts y a su contrato de texto.
localeLocale · obligatorioCódigo de idioma de esta entrada de traducción.
messageMensaje · obligatorioMensaje traducido que respeta el contrato de los marcadores de posición.
allowEmptyboolean · obligatorioPermitir una traducción intencionalmente vacía.
workflowStatus"draft" | "translated" | "reviewed" · obligatorioEstado de flujo de trabajo de traducción, no una rama de tiempo de ejecución.
basedOnSourceFingerprintHash · obligatorioVersión del original utilizada por esta traducción; si no coincide, la traducción está desactualizada.
reviewedContextFingerprintHashHuella del contexto correspondiente al estado revisado de la traducción.
origin"ai"Ver tipo y esquema para estructura y valores válidos.
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

CampoTipo / obligatorioSignificado / reglas
[oneOf 2].type"reference" · obligatorioDiscriminador de tipo; los valores permitidos dependen del esquema que lo contiene.
[oneOf 2].entityTypeEntityType · obligatorioTipo de catálogo para una referencia de entidad.
[oneOf 2].valueId · obligatorioValor literal; debe coincidir con el tipo declarado.
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

CampoTipo / obligatorioSignificado / reglas
[oneOf 2].kind"reference" · obligatorioDiscriminador que selecciona la variante válida.
[oneOf 2].entityTypeEntityType · obligatorioTipo de catálogo para una referencia de entidad.
Schema · ValueType
{
  "oneOf": [
    {
      "$ref": "#/$defs/ScalarType"
    },
    {
      "type": "object",
      "properties": {
        "kind": {
          "const": "reference"
        },
        "entityType": {
          "$ref": "#/$defs/EntityType"
        }
      },
      "required": [
        "kind",
        "entityType"
      ],
      "additionalProperties": false
    }
  ],
  "title": "ValueType"
}