Руководство VNLE
Справочник полей JSON Исполняемые данные и содержимое format и containerVersion определяют контейнер. execution содержит точки входа и узлы, content — тексты, переводы и каталоги. UUID связывают таблицы. Не ищите записи по отображаемым названиям. JSON не допускает комментариев, поэтому пояснения вынесены отдельно, чтобы пример оставался корректным JSON.
// 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 advancingstory.json
Переключение языков и отсутствие переводов Храните язык отдельно от текущего узла. При смене языка заново получите тот же textRef: используйте перевод для locale, если он есть, иначе sourceMessage. Отсутствие таблицы языка означает отсутствие переводов. allowEmpty разрешает намеренно пустой текст. Подставляйте значения с учётом их типа и формата, а не выводите JSON в виде строки. Отпечаток оригинала помогает определить устаревший перевод; один workflowStatus не подтверждает его актуальность.
Ниже перечислены все определения, доступные в текущей схеме экспорта истории, со всеми свойствами, вариантами и ограничениями. Раздел Schema раскрывает также вложенные правила. При additionalProperties = false дополнительные поля не допускаются.
JSON Schema · Draft 2020-12
Capability Поле Тип / обязательность Значение / правила
Schema · Capability {
"type": "string",
"pattern": "^[a-z][a-z0-9.-]*$",
"title": "Capability"
}ContentAsset Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. mediaTypestring · обязательно MIME-тип медиаданных. relativePathRelativePath · обязательноПроверенный относительный путь к ресурсу; нельзя использовать его как путь файловой системы без проверки. contentHashHash · обязательноSHA-256 содержимого указанного медиафайла. displayNamestring · обязательно Понятное человеку отображаемое название ресурса. licenseNotestring Примечание о лицензии ресурса; автоматическая юридическая проверка не выполняется. widthinteger Структуру и допустимые значения см. в типе и схеме.{"minimum":0,"maximum":2147483647} heightinteger Структуру и допустимые значения см. в типе и схеме.{"minimum":0,"maximum":2147483647} byteSizeinteger Структуру и допустимые значения см. в типе и схеме.{"minimum":0,"maximum":2147483647} originalNamestring Структуру и допустимые значения см. в типе и схеме.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. keyKey · обязательноСтабильный читаемый ключ; идентификаторы остаются техническими ссылками. nameTextRefId · обязательноТекстовый идентификатор для локализованного имени. colorstring · обязательно Цвет отображения персонажа, а не логическое значение.{"pattern":"^#[0-9a-fA-F]{6}$"} defaultPortraitRefId Ресурс стандартного портрета персонажа; не включается в универсальный экспорт. emotionsobject · обязательно ID эмоции → определение эмоции.{"additionalProperties":{"$ref":"#/$defs/Emotion"}} emotions[key]Emotion Структуру и допустимые значения см. в типе и схеме.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. keyKey · обязательноСтабильный читаемый ключ; идентификаторы остаются техническими ссылками. categorystring · обязательно Категория каталога для организации определения. inputsArray<ParameterDefinition > · обязательно Именованные типизированные входные параметры сигнатуры. outcomesArray<OutcomeDefinition > · обязательно Именованные исходы команды и их контракты или привязки.{"minItems":1} descriptionstring Авторское описание, а не исполняемая инструкция.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. keyKey · обязательноСтабильный читаемый ключ; идентификаторы остаются техническими ссылками. nameTextRefId · обязательноТекстовый идентификатор для локализованного имени. descriptionTextRefId Текстовый идентификатор для локализованного описания. iconAssetRefId ID ресурса для значка в каталоге.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. keyKey · обязательноСтабильный читаемый ключ; идентификаторы остаются техническими ссылками. nameTextRefId · обязательноТекстовый идентификатор для локализованного имени. descriptionTextRefId Текстовый идентификатор для локализованного описания. previewAssetRefId ID ресурса предпросмотра.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. keyKey · обязательноСтабильный читаемый ключ; идентификаторы остаются техническими ссылками. nameTextRefId Текстовый идентификатор для локализованного имени. commandRefId · обязательноИдентификатор команды игры для выполнения.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. keyKey · обязательноСтабильный читаемый ключ; идентификаторы остаются техническими ссылками. titleTextRefId · обязательноТекстовый идентификатор локализованного заголовка. descriptionTextRefId Текстовый идентификатор для локализованного описания. objectiveDefinitionsArray<QuestObjective > · обязательно ID цели задания → определение цели.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. keyKey Стабильный читаемый ключ; идентификаторы остаются техническими ссылками. categorystring · обязательно Категория каталога для организации определения. sourceMessageСообщение · обязательноИсходное сообщение из текстовых сегментов и подстановочных полей. placeholdersobject · обязательно Ключ подстановочного поля → определение типа и формата.{"additionalProperties":{"$ref":"#/$defs/PlaceholderDefinition"}} placeholders[key]PlaceholderDefinition Структуру и допустимые значения см. в типе и схеме. externalUseboolean · обязательно Помечает текст, используемый вне графа узлов.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. keyKey · обязательноСтабильный читаемый ключ; идентификаторы остаются техническими ссылками. valueTypeScalarType · обязательноКонтракт ожидаемого значения, включая допустимые типы сущностей. defaultValueScalarValue · обязательноТипизированное начальное значение или значение по умолчанию. descriptionstring Авторское описание, а не исполняемая инструкция.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. portraitRefId Ресурс портрета для эмоции; не включается в универсальный экспорт.
Schema · Emotion {
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/Id"
},
"name": {
"type": "string"
},
"portraitRef": {
"$ref": "#/$defs/Id"
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"title": "Emotion"
}EntityType Поле Тип / обязательность Значение / правила
Schema · EntityType {
"type": "string",
"enum": [
"item",
"quest",
"location",
"minigame",
"asset"
],
"title": "EntityType"
}EntryRef Поле Тип / обязательность Значение / правила flowRefId · обязательноID сцены или подыстории. entryRefId · обязательноID точки входа внутри указанного сценария.
Schema · EntryRef {
"type": "object",
"properties": {
"flowRef": {
"$ref": "#/$defs/Id"
},
"entryRef": {
"$ref": "#/$defs/Id"
}
},
"required": [
"flowRef",
"entryRef"
],
"additionalProperties": false,
"title": "EntryRef"
}ExecutableChoiceOption Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. textExecutableTextUse · обязательноДля текстовых сегментов: буквальный текст. Для использования текста: textRef и bindings. conditionExecutableCondition Условие, проверяемое перед ветвлением или включением варианта ответа. effectsArray<ExecutableEffect > · обязательно Изменения состояния, применяемые узлом действия в заданном порядке. continuationExecutableContinuation · обязательноПродолжение после завершения узла.
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 Поле Тип / обязательность Значение / правила [oneOf 1].kind"compare" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 1].leftExecutableOperand · обязательноТипизированный левый операнд сравнения. [oneOf 1].operator"eq" | "ne" | "lt" | "lte" | "gt" | "gte" · обязательно Оператор сравнения или логический оператор; допустимые значения приведены в вариантах. [oneOf 1].rightExecutableOperand · обязательноТипизированный правый операнд сравнения. [oneOf 2].kind"all" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 2].childrenArray<ExecutableCondition > · обязательно Дочерние условия составного выражения. [oneOf 3].kind"any" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 3].childrenArray<ExecutableCondition > · обязательно Дочерние условия составного выражения. [oneOf 4].kind"not" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 4].childExecutableCondition · обязательноДочернее условие унарного оператора.
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 Поле Тип / обязательность Значение / правила [oneOf 1].kind"node" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 1].nodeRefId · обязательноID следующего исполняемого узла. [oneOf 2].kind"end" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры.
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 Поле Тип / обязательность Значение / правила [oneOf 1].kind"set" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 1].variableRefId · обязательноИдентификатор переменной для чтения или записи. [oneOf 1].valueExecutableOperand · обязательноКонстанта; её тип должен совпадать с объявленным. [oneOf 2].kind"add" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 2].variableRefId · обязательноИдентификатор переменной для чтения или записи. [oneOf 2].valueExecutableOperand · обязательноКонстанта; её тип должен совпадать с объявленным. [oneOf 3].kind"subtract" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 3].variableRefId · обязательноИдентификатор переменной для чтения или записи. [oneOf 3].valueExecutableOperand · обязательноКонстанта; её тип должен совпадать с объявленным.
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 Поле Тип / обязательность Значение / правила [oneOf 1].kind"continue" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 1].continuationExecutableContinuation · обязательноПродолжение после завершения узла. [oneOf 2].kind"fault" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры.
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 Поле Тип / обязательность Значение / правила [oneOf 1].idId · обязательноСтабильный ID; отображаемые названия не являются ключами. [oneOf 1].flowRefId · обязательноID сцены или подыстории. [oneOf 1].kind"dialogue" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 1].textExecutableTextUse · обязательноДля текстовых сегментов: буквальный текст. Для использования текста: textRef и bindings. [oneOf 1].speakerRefId ID говорящего персонажа; отсутствие означает, что персонаж не назначен. [oneOf 1].emotionRefId Эмоция персонажа, выбранная для этого диалога. [oneOf 1].continuationExecutableContinuation · обязательноПродолжение после завершения узла. [oneOf 2].idId · обязательноСтабильный ID; отображаемые названия не являются ключами. [oneOf 2].flowRefId · обязательноID сцены или подыстории. [oneOf 2].kind"choice" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 2].optionOrderArray<Id > · обязательно ID вариантов ответа в порядке отображения. [oneOf 2].optionsobject · обязательно ID варианта → вариант с текстом, условием и продолжением.{"additionalProperties":{"$ref":"#/$defs/ExecutableChoiceOption"}} [oneOf 2].options[key]ExecutableChoiceOption Структуру и допустимые значения см. в типе и схеме. [oneOf 2].whenEmptyExecutableEmptyChoice · обязательноПоведение при отсутствии доступных вариантов ответа. [oneOf 3].idId · обязательноСтабильный ID; отображаемые названия не являются ключами. [oneOf 3].flowRefId · обязательноID сцены или подыстории. [oneOf 3].kind"branch" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 3].conditionExecutableCondition · обязательноУсловие, проверяемое перед ветвлением или включением варианта ответа. [oneOf 3].whenTrueExecutableContinuation · обязательноПродолжение, когда условие истинно. [oneOf 3].whenFalseExecutableContinuation · обязательноПродолжение, когда условие ложное. [oneOf 4].idId · обязательноСтабильный ID; отображаемые названия не являются ключами. [oneOf 4].flowRefId · обязательноID сцены или подыстории. [oneOf 4].kind"action" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 4].effectsArray<ExecutableEffect > · обязательно Изменения состояния, применяемые узлом действия в заданном порядке. [oneOf 4].continuationExecutableContinuation · обязательноПродолжение после завершения узла. [oneOf 5].idId · обязательноСтабильный ID; отображаемые названия не являются ключами. [oneOf 5].flowRefId · обязательноID сцены или подыстории. [oneOf 5].kind"command" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 5].commandRefId · обязательноИдентификатор команды игры для выполнения. [oneOf 5].argumentsobject · обязательно Значения именованных аргументов, передаваемые вызову.{"additionalProperties":{"$ref":"#/$defs/ExecutableOperand"}} [oneOf 5].arguments[key]ExecutableOperand Структуру и допустимые значения см. в типе и схеме. [oneOf 5].outcomesobject · обязательно Именованные исходы команды и их контракты или привязки.{"additionalProperties":{"$ref":"#/$defs/ExecutableOutcomeBinding"}} [oneOf 5].outcomes[key]ExecutableOutcomeBinding Структуру и допустимые значения см. в типе и схеме. [oneOf 6].idId · обязательноСтабильный ID; отображаемые названия не являются ключами. [oneOf 6].flowRefId · обязательноID сцены или подыстории. [oneOf 6].kind"jump" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 6].targetEntryRef · обязательноТипизированная ссылка на цель, например переменную или точку входа; точная структура указана в соответствующем варианте. [oneOf 7].idId · обязательноСтабильный ID; отображаемые названия не являются ключами. [oneOf 7].flowRefId · обязательноID сцены или подыстории. [oneOf 7].kind"end" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 8].idId · обязательноСтабильный ID; отображаемые названия не являются ключами. [oneOf 8].flowRefId · обязательноID сцены или подыстории. [oneOf 8].kind"call" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 8].targetEntryRef · обязательноТипизированная ссылка на цель, например переменную или точку входа; точная структура указана в соответствующем варианте. [oneOf 8].continuationExecutableContinuation · обязательноПродолжение после завершения узла. [oneOf 9].idId · обязательноСтабильный ID; отображаемые названия не являются ключами. [oneOf 9].flowRefId · обязательноID сцены или подыстории. [oneOf 9].kind"return" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры.
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 Поле Тип / обязательность Значение / правила [oneOf 1].kind"literal" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 1].valueTypedValue · обязательноКонстанта; её тип должен совпадать с объявленным. [oneOf 2].kind"variable" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 2].variableRefId · обязательноИдентификатор переменной для чтения или записи.
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 Поле Тип / обязательность Значение / правила resultBindingsobject · обязательно Имя результата команды → переменная назначения для возвращаемого значения.{"additionalProperties":{"$ref":"#/$defs/Id"}} resultBindings[key]Id Структуру и допустимые значения см. в типе и схеме. continuationExecutableContinuation · обязательноПродолжение после завершения узла.
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 Поле Тип / обязательность Значение / правила format"vnle.story" · обязательно Идентификатор точного формата для этого контейнера данных. containerVersion1 · обязательно Целочисленная версия контейнера истории; сейчас 1. storyBuildIdHash · обязательноSHA-256 канонических данных исполнения; изменения только содержания не изменяют его. executionExecutionContract · обязательноТипизированный контракт исполнения. contentobject · обязательно Языковые и каталожные данные отделены от исполнения.{"additionalProperties":false} content.sourceLocaleLocale · обязательноИсходный язык текстов; используется также при отсутствии перевода. content.localesArray<Locale > · обязательно Заявленные языки экспорта, включая исходный.{"minItems":1} content.fallbackPolicyFallbackPolicy · обязательноСейчас source: при отсутствии перевода используется оригинал. content.textsobject · обязательно ID текста → исходное сообщение, подстановочные поля и метаданные.{"additionalProperties":{"$ref":"#/$defs/ContentTextEntry"}} content.texts[key]ContentTextEntry Структуру и допустимые значения см. в типе и схеме. content.translationsobject · обязательно Код языка → ID текста → перевод; при отсутствии записи используется оригинал.{"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]object Структуру и допустимые значения см. в типе и схеме. content.charactersobject · обязательно Идентификатор персонажа — персонаж с локализованными именами и эмоциями.{"additionalProperties":{"$ref":"#/$defs/ContentCharacter"}} content.characters[key]ContentCharacter Структуру и допустимые значения см. в типе и схеме. content.questsobject · обязательно ID задания → определение задания с целями.{"additionalProperties":{"$ref":"#/$defs/ContentQuestDefinition"}} content.quests[key]ContentQuestDefinition Структуру и допустимые значения см. в типе и схеме. content.itemsobject · обязательно ID предмета → определение предмета.{"additionalProperties":{"$ref":"#/$defs/ContentItemDefinition"}} content.items[key]ContentItemDefinition Структуру и допустимые значения см. в типе и схеме. content.locationsobject · обязательно Идентификатор местоположения — определение местоположения.{"additionalProperties":{"$ref":"#/$defs/ContentLocationDefinition"}} content.locations[key]ContentLocationDefinition Структуру и допустимые значения см. в типе и схеме. content.minigamesobject · обязательно ID мини-игры → определение; игровой процесс реализует сама игра.{"additionalProperties":{"$ref":"#/$defs/ContentMinigameDefinition"}} content.minigames[key]ContentMinigameDefinition Структуру и допустимые значения см. в типе и схеме. content.assetsobject · обязательно ID ресурса → определение медиа; универсальный экспорт пока не содержит разрешённых ресурсов движка.{"additionalProperties":{"$ref":"#/$defs/ContentAsset"}} content.assets[key]ContentAsset Структуру и допустимые значения см. в типе и схеме. content.variableDefinitionsobject · обязательно Определения переменных, заданные автором, с именами и ссылками на текст.{"additionalProperties":{"$ref":"#/$defs/ContentVariableDefinition"}} content.variableDefinitions[key]ContentVariableDefinition Структуру и допустимые значения см. в типе и схеме. content.commandDefinitionsobject · обязательно Авторские определения команд, включая текстовые ссылки.{"additionalProperties":{"$ref":"#/$defs/ContentCommandDefinition"}} content.commandDefinitions[key]ContentCommandDefinition Структуру и допустимые значения см. в типе и схеме.
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 Поле Тип / обязательность Значение / правила textRefId · обязательноСсылка на content.texts и его текстовый контракт. bindingsobject · обязательно Имя подстановочного поля или параметра → типизированный операнд.{"additionalProperties":{"$ref":"#/$defs/ExecutableOperand"}} bindings[key]ExecutableOperand Структуру и допустимые значения см. в типе и схеме.
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 Поле Тип / обязательность Значение / правила format"vnle.execution" · обязательно Идентификатор точного формата для этого контейнера данных. contractVersionRuntimeVersion · обязательноВерсия совместимости исполнения: основной и дополнительный номера. projectIdId · обязательноСтабильный идентификатор исходного проекта. requiredCapabilitiesArray<Capability > · обязательно Возможности, которые полноценный адаптер исполнения обязан проверить перед запуском. limitsobject · обязательно Пределы автоматического исполнения и рекурсии.{"additionalProperties":false} limits.maxAutomaticTransitions1000 · обязательно Максимальное число автоматических переходов без ввода пользователя. limits.maxConditionDepth32 · обязательно Максимальная глубина вложенности условий. limits.maxConditionTerms1024 · обязательно Максимальное число элементов условия. limits.maxCallDepth32 · обязательно Максимальная глубина вложенных вызовов подысторий. entriesobject · обязательно ID точки входа → ссылки на сценарий и узел.{"additionalProperties":{"$ref":"#/$defs/RuntimeEntry"}} entries[key]RuntimeEntry Структуру и допустимые значения см. в типе и схеме. nodesobject · обязательно ID узла → исполняемый узел; kind определяет его поля.{"additionalProperties":{"$ref":"#/$defs/ExecutableNode"}} nodes[key]ExecutableNode Структуру и допустимые значения см. в типе и схеме. variablesobject · обязательно ID переменной → типизированное определение переменной времени выполнения.{"additionalProperties":{"$ref":"#/$defs/RuntimeVariable"}} variables[key]RuntimeVariable Структуру и допустимые значения см. в типе и схеме. commandsobject · обязательно ID команды → типизированная сигнатура времени выполнения.{"additionalProperties":{"$ref":"#/$defs/RuntimeSignature"}} commands[key]RuntimeSignature Структуру и допустимые значения см. в типе и схеме. textContractsobject · обязательно ID текста → контракты подстановочных полей, необходимые для исполнения.{"additionalProperties":{"$ref":"#/$defs/PlaceholderContract"}} textContracts[key]PlaceholderContract Структуру и допустимые значения см. в типе и схеме.
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 Поле Тип / обязательность Значение / правила
Schema · FallbackPolicy {
"type": "string",
"enum": [
"block",
"source"
],
"title": "FallbackPolicy"
}Hash Поле Тип / обязательность Значение / правила
Schema · Hash {
"type": "string",
"pattern": "^sha256:[0-9a-f]{64}$",
"title": "Hash"
}Id Поле Тип / обязательность Значение / правила
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 Поле Тип / обязательность Значение / правила
Schema · Key {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.-]{0,127}$",
"title": "Key"
}Locale Поле Тип / обязательность Значение / правила
Schema · Locale {
"type": "string",
"pattern": "^[A-Za-z]{2,8}(-[A-Za-z0-9]{1,8})*$",
"title": "Locale"
}Сообщение Поле Тип / обязательность Значение / правила kind"segments" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. segmentsArray<object | object> · обязательно Текстовые сегменты и подстановочные поля сообщения в заданном порядке.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. resultsArray<ResultDefinition > · обязательно Именованные типизированные значения, возвращаемые исходом.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. valueTypeValueType · обязательноКонтракт ожидаемого значения, включая допустимые типы сущностей. defaultValueTypedValue Типизированное начальное значение или значение по умолчанию.
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 Поле Тип / обязательность Значение / правила map[key]ScalarType Структуру и допустимые значения см. в типе и схеме.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. displayNamestring · обязательно Понятное человеку отображаемое название ресурса. valueTypeScalarType · обязательноКонтракт ожидаемого значения, включая допустимые типы сущностей.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. labelTextRefId · обязательноID текста локализованной подписи. descriptionTextRefId Текстовый идентификатор для локализованного описания.
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 Поле Тип / обязательность Значение / правила
Schema · RelativePath {
"type": "string",
"minLength": 1,
"maxLength": 1024,
"title": "RelativePath"
}ResultDefinition Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. namestring · обязательно Название, заданное автором; не используйте его как ключ ссылки. valueTypeValueType · обязательноКонтракт ожидаемого значения, включая допустимые типы сущностей.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. flowRefId · обязательноID сцены или подыстории. nodeRefId · обязательноID следующего исполняемого узла.
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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. inputsArray<object> · обязательно Именованные типизированные входные параметры сигнатуры. outcomesArray<object> · обязательно Именованные исходы команды и их контракты или привязки.{"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 Поле Тип / обязательность Значение / правила idId · обязательноСтабильный ID; отображаемые названия не являются ключами. valueTypeScalarType · обязательноКонтракт ожидаемого значения, включая допустимые типы сущностей. defaultValueScalarValue · обязательноТипизированное начальное значение или значение по умолчанию.
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 Поле Тип / обязательность Значение / правила major1 · обязательно Несовместимая основная версия; отклонить неподдерживаемые версии. minor1 · обязательно Версия расширения в пределах основной версии.
Schema · RuntimeVersion {
"type": "object",
"properties": {
"major": {
"const": 1
},
"minor": {
"const": 1
}
},
"required": [
"major",
"minor"
],
"additionalProperties": false,
"title": "RuntimeVersion"
}ScalarType Поле Тип / обязательность Значение / правила
Schema · ScalarType {
"type": "string",
"enum": [
"boolean",
"integer",
"string"
],
"title": "ScalarType"
}ScalarValue Поле Тип / обязательность Значение / правила [oneOf 1].type"boolean" · обязательно Дискриминатор типа; допустимые значения зависят от содержащей его схемы. [oneOf 1].valueboolean · обязательно Константа; её тип должен совпадать с объявленным. [oneOf 2].type"integer" · обязательно Дискриминатор типа; допустимые значения зависят от содержащей его схемы. [oneOf 2].valueinteger · обязательно Константа; её тип должен совпадать с объявленным.{"minimum":-2147483648,"maximum":2147483647} [oneOf 3].type"string" · обязательно Дискриминатор типа; допустимые значения зависят от содержащей его схемы. [oneOf 3].valuestring · обязательно Константа; её тип должен совпадать с объявленным.
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 Поле Тип / обязательность Значение / правила textRefId · обязательноСсылка на content.texts и его текстовый контракт. localeLocale · обязательноКод языка этой записи перевода. messageСообщение · обязательноПереведённое сообщение, соблюдающее контракт подстановочных полей. allowEmptyboolean · обязательно Разрешить намеренно пустой перевод. workflowStatus"draft" | "translated" | "reviewed" · обязательно Статус рабочего процесса перевода, а не ветка времени выполнения. basedOnSourceFingerprintHash · обязательноИсходная основа перевода; несовпадение означает, что перевод устарел. reviewedContextFingerprintHash Отпечаток контекста на момент проверки перевода. origin"ai" Структуру и допустимые значения см. в типе и схеме.
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 Поле Тип / обязательность Значение / правила [oneOf 2].type"reference" · обязательно Дискриминатор типа; допустимые значения зависят от содержащей его схемы. [oneOf 2].entityTypeEntityType · обязательноТип каталога для ссылки на сущность. [oneOf 2].valueId · обязательноКонстанта; её тип должен совпадать с объявленным.
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 Поле Тип / обязательность Значение / правила [oneOf 2].kind"reference" · обязательно Поле-дискриминатор, выбирающее допустимый вариант структуры. [oneOf 2].entityTypeEntityType · обязательноТип каталога для ссылки на сущность.
Schema · ValueType {
"oneOf": [
{
"$ref": "#/$defs/ScalarType"
},
{
"type": "object",
"properties": {
"kind": {
"const": "reference"
},
"entityType": {
"$ref": "#/$defs/EntityType"
}
},
"required": [
"kind",
"entityType"
],
"additionalProperties": false
}
],
"title": "ValueType"
}VNLE · Онлайн-руководство