games-development-ai/contracts/play-loop/reference-asset-consumption-manifest.schema.json
lili 686aaaa421
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
feat(reference-assets): 签认《山海行纪》并闭合可信消费门
冻结地图1二十分钟纵切版的平衡、证据与金标登记。

新增 ReferenceAsset/2 清单、策略、release、受信快照及 CLI/Service/acceptance provenance /4 消费链;保持 survivor live、R1 签名与部署关闭。
2026-07-28 09:11:54 -07:00

49 lines
1.6 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://wanxiang.ai/contracts/play-loop/reference-asset-consumption-manifest.schema.json",
"title": "ReferenceAssetConsumptionManifestV1",
"description": "ReferenceAssetConsumptionManifest/1。manifest 使用项目自有 reference-asset-consumption-manifest/1 canonical JSON 字节口径;entries 必须按 path 升序、路径必须为 NFC 的仓内相对 POSIX 路径,size 为非负 JSON 安全整数,sha256 为小写 SHA-256。",
"type": "object",
"required": ["schemaVersion", "manifestId", "canonicalization", "entries"],
"properties": {
"schemaVersion": { "const": "ReferenceAssetConsumptionManifest/1" },
"manifestId": {
"type": "string",
"pattern": "^[A-Za-z0-9_][A-Za-z0-9._-]*$"
},
"canonicalization": { "const": "reference-asset-consumption-manifest/1" },
"entries": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/$defs/entry" }
}
},
"additionalProperties": false,
"$defs": {
"entry": {
"type": "object",
"required": ["path", "size", "sha256"],
"properties": {
"path": { "$ref": "#/$defs/relativePath" },
"size": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"sha256": { "$ref": "#/$defs/sha256" }
},
"additionalProperties": false
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"relativePath": {
"type": "string",
"minLength": 1,
"maxLength": 1024,
"pattern": "^(?!/)(?!.*//)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?!.*\\\\).+$"
}
}
}