{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://wanxiang.ai/contracts/play-loop/acceptance-request-v3.schema.json", "title": "AcceptanceRequestV3", "description": "acceptance-request/3。在 acceptance-request/2 之上为 W-GOLD-LIVE 参照资产消费开口:新增三个可选字段 designRef / referenceAssetRecordIds / consumerRef,全部不进 required,旧 acceptance(不带这三个字段)在本 schema 下仍然 valid——v2 的 required 集合、repairOrdinal 的 if-then 修回约束、interactionBinding 嵌套规则与 canonical acceptanceRequestHash 口径一律不变。交互身份只允许嵌套 InteractionBinding/1 或显式 null。designRef/referenceAssetRecordIds 指向的持久记录定义见 reference-asset-record.schema.json(金标 SoT §7):消费者按 recordId 对账 role + consumerRef + artifactHash 后才能读取资产,未 active 的记录不得被消费为校准锚/生成范例/内容金标。", "type": "object", "required": [ "schemaVersion", "gameId", "briefHash", "genre", "templateRoute", "proofProfileId", "proofRegistryVersion", "taskBindingHash", "interactionBinding", "sourceArtifactHash", "parentAcceptanceRequestHash", "repairOrdinal" ], "properties": { "schemaVersion": { "const": "acceptance-request/3" }, "gameId": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" }, "briefHash": { "$ref": "#/$defs/sha256" }, "genre": { "enum": ["narrative", "trpg", "heritage", "puzzle", "sim-business"] }, "templateRoute": { "type": "string", "pattern": "^_template-[a-z0-9-]+$" }, "proofProfileId": { "type": "string", "pattern": "^[a-z][a-z0-9-]*\\.[a-z][a-z0-9-]*$" }, "proofRegistryVersion": { "type": "string", "minLength": 1 }, "taskBindingHash": { "$ref": "#/$defs/sha256" }, "interactionBinding": { "anyOf": [ { "$ref": "interaction-binding.schema.json" }, { "type": "null" } ] }, "sourceArtifactHash": { "anyOf": [{ "$ref": "#/$defs/sha256" }, { "type": "null" }] }, "parentAcceptanceRequestHash": { "anyOf": [{ "$ref": "#/$defs/sha256" }, { "type": "null" }] }, "repairOrdinal": { "enum": [0, 1] }, "designRef": { "description": "可选。本次 acceptance 所依据的已批准 designIntent 引用(持久记录 recordId 或设计文档 ref/路径,如金标 SoT §7.1《山海行纪》追认记录)。不带本字段等价于『未声明设计引用』,与 v2 行为一致。", "anyOf": [{ "type": "string", "minLength": 1 }, { "type": "null" }] }, "referenceAssetRecordIds": { "description": "可选。本次 acceptance 声明消费的参照资产 recordId 列表(ReferenceAssetRecord/1.recordId)。仅声明消费意图;实际消费对账快照(role + artifactHash)落在 acceptance-provenance/3 的 consumedReferenceAssets。元素必须形如合法 recordId。", "type": "array", "items": { "$ref": "#/$defs/recordId" } }, "consumerRef": { "description": "可选。本次 acceptance 的消费者身份(runner/profile、Actor/Judge/rubric 版本、prompt id@version 或内容评测版本),供参照资产注册表按 recordId 对账消费方。语义与 ReferenceAssetRecord/1.consumerRef 同源。", "anyOf": [{ "type": "string", "minLength": 1 }, { "type": "null" }] } }, "additionalProperties": false, "allOf": [ { "if": { "properties": { "repairOrdinal": { "const": 0 } }, "required": ["repairOrdinal"] }, "then": { "properties": { "sourceArtifactHash": { "type": "null" }, "parentAcceptanceRequestHash": { "type": "null" } } } }, { "if": { "properties": { "repairOrdinal": { "const": 1 } }, "required": ["repairOrdinal"] }, "then": { "properties": { "sourceArtifactHash": { "$ref": "#/$defs/sha256" }, "parentAcceptanceRequestHash": { "$ref": "#/$defs/sha256" } } } } ], "$defs": { "sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "recordId": { "type": "string", "pattern": "^[A-Za-z0-9_][A-Za-z0-9._-]*$" } } }