{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://wanxiang.ai/contracts/play-loop/legacy-game-log-mapping.schema.json", "title": "LegacyGameLogMapping", "description": "historical_replay 专用的 legacy-game-log/1 精确适配 allowlist。映射只看 profile、精确 tag 与 payload 路径,不读取 message,也不能进入 native 生产验收。", "type": "object", "required": ["schemaVersion", "mappingVersion", "proofRegistryVersion", "sourceEventVersion", "targetEventVersion", "mappings"], "properties": { "schemaVersion": { "const": "legacy-game-log-mapping/1" }, "mappingVersion": { "type": "string", "minLength": 1 }, "proofRegistryVersion": { "type": "string", "minLength": 1 }, "sourceEventVersion": { "const": "legacy-game-log/1" }, "targetEventVersion": { "const": "game-event/1" }, "description": { "type": "string", "minLength": 1 }, "mappings": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/mapping" } } }, "patternProperties": { "^_": {} }, "additionalProperties": false, "$defs": { "mapping": { "type": "object", "required": ["id", "proofProfileId", "legacyTag", "requiredPayloadPaths", "type"], "properties": { "id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" }, "proofProfileId": { "type": "string", "pattern": "^[a-z][a-z0-9-]*\\.[a-z][a-z0-9-]*$" }, "legacyTag": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" }, "requiredPayloadPaths": { "type": "array", "minItems": 1, "items": { "type": "string", "pattern": "^(?:|(?:/(?:[^~/]|~[01])*)+)$" } }, "type": { "$ref": "game-event.schema.json#/$defs/eventType" } }, "additionalProperties": false } } }