固化 Match-3 生产者、视觉、音频与双 Judge 证据闭包。 将《山海行纪》r1.1 绑定新的不可变 release,并以生产预检现场核验 bundle、Registry/2 和 25 项 Writer 快照。 同步地图1平衡锁值、跨游戏回归修复、验收契约与 SoT 证据。
65 lines
4.4 KiB
JSON
65 lines
4.4 KiB
JSON
{
|
||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
"$id": "https://wanxiang.ai/contracts/play-loop/single-roll-proof-v2.schema.json",
|
||
"title": "SingleRollProofV2",
|
||
"description": "SingleRollProof/2。内部单掷证据包通过 ref/hash 绑定 ProofObligationResolution/1;playtest/3 与 SingleRollFactV3 顶层保持不变。",
|
||
"type": "object",
|
||
"required": [
|
||
"schemaVersion", "packageType", "runId", "roll", "gameId", "genre", "templateRoute",
|
||
"proofProfileId", "proofRegistryVersion", "taskBindingHash", "acceptanceRequestHash",
|
||
"evidenceMode", "artifactHash", "briefHash", "requestedSeed", "actualSeed", "policySeed",
|
||
"environment", "actor", "actions", "frames", "events", "briefRuleMatches",
|
||
"proofObligations", "firstPlay", "proofObligationResolutionRef",
|
||
"proofObligationResolutionHash", "collectionProofRef", "collectionProofHash",
|
||
"judgePackageRef", "judgePackageHash", "judgeARef", "judgeAHash", "judgeBRef",
|
||
"judgeBHash", "judgeConsensusRef", "judgeConsensusHash", "costReservationRef",
|
||
"costReservationHash", "judge", "errors", "costRmb", "cost"
|
||
],
|
||
"properties": {
|
||
"schemaVersion": { "const": "playtest/3" },
|
||
"packageType": { "const": "SingleRollProof/2" },
|
||
"runId": { "type": "string", "minLength": 1 },
|
||
"roll": { "type": "integer", "minimum": 1, "maximum": 2 },
|
||
"gameId": { "type": "string", "minLength": 1 },
|
||
"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": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"acceptanceRequestHash": { "$ref": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"evidenceMode": { "const": "native" },
|
||
"artifactHash": { "$ref": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"briefHash": { "$ref": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"requestedSeed": { "type": "integer", "minimum": 0 },
|
||
"actualSeed": { "type": "integer", "minimum": 0 },
|
||
"policySeed": { "type": "integer", "minimum": 0 },
|
||
"environment": { "$ref": "playtest-evidence-v3.schema.json#/$defs/environmentV3" },
|
||
"actor": { "$ref": "single-roll-fact-v3.schema.json#/$defs/runnerActor" },
|
||
"actions": { "type": "array", "items": { "$ref": "proof-action.schema.json" } },
|
||
"frames": { "type": "array", "items": { "$ref": "single-roll-fact-v3.schema.json#/$defs/evidenceFrame" } },
|
||
"events": { "type": "array", "items": { "$ref": "game-event.schema.json" } },
|
||
"briefRuleMatches": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true },
|
||
"proofObligations": { "type": "array", "items": { "$ref": "playtest-evidence.schema.json#/$defs/proofObligation" } },
|
||
"firstPlay": { "$ref": "playtest-evidence.schema.json#/$defs/firstPlay" },
|
||
"proofObligationResolutionRef": { "type": "string", "minLength": 1 },
|
||
"proofObligationResolutionHash": { "$ref": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"collectionProofRef": { "type": "string", "minLength": 1 },
|
||
"collectionProofHash": { "$ref": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"judgePackageRef": { "type": "string", "minLength": 1 },
|
||
"judgePackageHash": { "$ref": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"judgeARef": { "$ref": "playtest-evidence-v3.schema.json#/$defs/judgeSlotRef" },
|
||
"judgeAHash": { "$ref": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"judgeBRef": { "$ref": "playtest-evidence-v3.schema.json#/$defs/judgeSlotRef" },
|
||
"judgeBHash": { "$ref": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"judgeConsensusRef": { "type": "string", "minLength": 1 },
|
||
"judgeConsensusHash": { "$ref": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"costReservationRef": { "type": "string", "minLength": 1 },
|
||
"costReservationHash": { "$ref": "playtest-evidence.schema.json#/$defs/sha256" },
|
||
"judge": { "$ref": "playtest-evidence-v3.schema.json#/$defs/judgeConsensusProjection" },
|
||
"errors": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
||
"costRmb": { "type": "number", "minimum": 0 },
|
||
"cost": { "$ref": "single-roll-fact-v3.schema.json#/$defs/costLedger" }
|
||
},
|
||
"additionalProperties": false
|
||
}
|