{ "$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}(?:/|$))(?!.*\\\\).+$" } } }