固化 Match-3 生产者、视觉、音频与双 Judge 证据闭包。 将《山海行纪》r1.1 绑定新的不可变 release,并以生产预检现场核验 bundle、Registry/2 和 25 项 Writer 快照。 同步地图1平衡锁值、跨游戏回归修复、验收契约与 SoT 证据。
80 lines
3.7 KiB
JSON
80 lines
3.7 KiB
JSON
{
|
||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
"$id": "https://wanxiang.ai/contracts/play-loop/match3-swap-set.schema.json",
|
||
"title": "Match3SwapSetV1",
|
||
"description": "Match3SwapSet/1。封存确定性规则层声称从匿名棋盘投影枚举出的正交交换集合;单文件 schema/hash 只校验结构自洽,生产入口必须与 BoardProjection 联合复算。",
|
||
"type": "object",
|
||
"required": [
|
||
"schemaVersion", "sourceFrameRef", "sourceFrameHash", "targetSetRef", "targetSetHash", "latticeId",
|
||
"interactionProfileId", "interactionRegistryVersion", "interactionBindingHash",
|
||
"projectionRef", "projectionHash", "solver", "beforeRuns", "candidates", "status", "candidateSetHash"
|
||
],
|
||
"properties": {
|
||
"schemaVersion": { "const": "Match3SwapSet/1" },
|
||
"sourceFrameRef": { "type": "string", "minLength": 1 },
|
||
"sourceFrameHash": { "$ref": "#/$defs/sha256" },
|
||
"targetSetRef": { "type": "string", "minLength": 1 },
|
||
"targetSetHash": { "$ref": "#/$defs/sha256" },
|
||
"latticeId": { "type": "string", "pattern": "^l[0-9]{2}$" },
|
||
"interactionProfileId": { "const": "match3.orthogonal-swap-v1" },
|
||
"interactionRegistryVersion": { "enum": ["2026-07-15.v1", "2026-07-15.v2"] },
|
||
"interactionBindingHash": { "$ref": "#/$defs/sha256" },
|
||
"projectionRef": { "type": "string", "minLength": 1 },
|
||
"projectionHash": { "$ref": "#/$defs/sha256" },
|
||
"solver": { "$ref": "#/$defs/versionedComponent" },
|
||
"beforeRuns": { "type": "array", "maxItems": 288, "items": { "$ref": "#/$defs/run" } },
|
||
"candidates": { "type": "array", "maxItems": 264, "items": { "$ref": "#/$defs/candidate" } },
|
||
"status": { "enum": ["resolved", "no_candidate", "indeterminate"] },
|
||
"candidateSetHash": { "$ref": "#/$defs/sha256" }
|
||
},
|
||
"additionalProperties": false,
|
||
"$defs": {
|
||
"sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
|
||
"classId": { "type": "string", "pattern": "^vc[0-9]{2,3}$" },
|
||
"cell": {
|
||
"type": "object",
|
||
"required": ["row", "column"],
|
||
"properties": {
|
||
"row": { "type": "integer", "minimum": 1, "maximum": 12 },
|
||
"column": { "type": "integer", "minimum": 1, "maximum": 12 }
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"versionedComponent": {
|
||
"type": "object",
|
||
"required": ["id", "version", "configHash"],
|
||
"properties": {
|
||
"id": { "const": "match3-orthogonal-swap" },
|
||
"version": { "const": "1.0.0" },
|
||
"configHash": { "$ref": "#/$defs/sha256" }
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"run": {
|
||
"type": "object",
|
||
"required": ["axis", "classId", "cells"],
|
||
"properties": {
|
||
"axis": { "enum": ["horizontal", "vertical"] },
|
||
"classId": { "$ref": "#/$defs/classId" },
|
||
"cells": { "type": "array", "minItems": 3, "maxItems": 12, "items": { "$ref": "#/$defs/cell" } }
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"candidate": {
|
||
"type": "object",
|
||
"required": [
|
||
"candidateId", "pair", "pairKey", "beforeClassIds", "newRuns", "candidateHash"
|
||
],
|
||
"properties": {
|
||
"candidateId": { "type": "string", "pattern": "^ms[0-9]{2,3}$" },
|
||
"pair": { "type": "array", "minItems": 2, "maxItems": 2, "items": { "$ref": "#/$defs/cell" } },
|
||
"pairKey": { "type": "string", "pattern": "^r[1-9][0-9]?c[1-9][0-9]?-r[1-9][0-9]?c[1-9][0-9]?$" },
|
||
"beforeClassIds": { "type": "array", "minItems": 2, "maxItems": 2, "items": { "$ref": "#/$defs/classId" } },
|
||
"newRuns": { "type": "array", "minItems": 1, "maxItems": 4, "items": { "$ref": "#/$defs/run" } },
|
||
"candidateHash": { "$ref": "#/$defs/sha256" }
|
||
},
|
||
"additionalProperties": false
|
||
}
|
||
}
|
||
}
|