固化 Match-3 生产者、视觉、音频与双 Judge 证据闭包。 将《山海行纪》r1.1 绑定新的不可变 release,并以生产预检现场核验 bundle、Registry/2 和 25 项 Writer 快照。 同步地图1平衡锁值、跨游戏回归修复、验收契约与 SoT 证据。
59 lines
2.1 KiB
JSON
59 lines
2.1 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://wanxiang.ai/contracts/play-loop/actor-protocol-bundle.schema.json",
|
|
"title": "ActorProtocolBundleV1",
|
|
"description": "Actor View、Selection、Prompt 与 validator 的联合版本门。",
|
|
"type": "object",
|
|
"required": ["schemaVersion", "prompt", "validator", "actorView", "selection"],
|
|
"properties": {
|
|
"schemaVersion": { "const": "ActorProtocolBundle/1" },
|
|
"prompt": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object", "required": ["id", "version", "hash"],
|
|
"properties": {
|
|
"id": { "const": "playtest.actor" },
|
|
"version": { "type": "string", "minLength": 1 },
|
|
"hash": { "$ref": "#/$defs/sha256" }
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object", "required": ["id", "version", "artifactRef", "runtimeEligible", "hash"],
|
|
"properties": {
|
|
"id": { "const": "playtest.actor.contract-match3-v4" },
|
|
"version": { "const": "3.0.1" },
|
|
"artifactRef": { "const": "artifacts/playtest-actor-v4.contract.md" },
|
|
"runtimeEligible": { "const": false },
|
|
"hash": { "$ref": "#/$defs/sha256" }
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
},
|
|
"validator": {
|
|
"type": "object", "required": ["id", "version", "selectionSchemaVersion"],
|
|
"properties": {
|
|
"id": { "type": "string", "minLength": 1 },
|
|
"version": { "type": "string", "minLength": 1 },
|
|
"selectionSchemaVersion": { "enum": ["ActorSelection/1", "ActorSelection/2"] }
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"actorView": {
|
|
"anyOf": [
|
|
{ "$ref": "actor-view-v3.schema.json" },
|
|
{ "$ref": "actor-view-v4.schema.json" }
|
|
]
|
|
},
|
|
"selection": {
|
|
"anyOf": [
|
|
{ "$ref": "actor-selection.schema.json" },
|
|
{ "$ref": "actor-selection-v2.schema.json" }
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"$defs": { "sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" } }
|
|
}
|