{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://wanxiang.ai/contracts/play-loop/acceptance-request.schema.json", "title": "AcceptanceRequest", "description": "一次验收运行的不可变输入身份。初始验收不带父链;唯一一次修回必须同时绑定原产物与父请求。", "type": "object", "required": [ "schemaVersion", "gameId", "briefHash", "genre", "templateRoute", "proofProfileId", "proofRegistryVersion", "taskBindingHash", "sourceArtifactHash", "parentAcceptanceRequestHash", "repairOrdinal" ], "properties": { "schemaVersion": { "const": "acceptance-request/1" }, "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" }, "sourceArtifactHash": { "anyOf": [{ "$ref": "#/$defs/sha256" }, { "type": "null" }] }, "parentAcceptanceRequestHash": { "anyOf": [{ "$ref": "#/$defs/sha256" }, { "type": "null" }] }, "repairOrdinal": { "enum": [0, 1] } }, "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}$" } } }