{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://abdess.github.io/retrobios/api/v1/schemas/pack-manifest.schema.json", "title": "RetroBIOS pack integrity manifest", "type": "object", "additionalProperties": false, "required": ["schema_version", "version", "generator", "generated", "files", "summary", "errors"], "properties": { "schema_version": { "const": 1 }, "version": { "const": 1 }, "generator": { "const": "retrobios generate_pack.py" }, "generated": { "type": "string", "format": "date-time" }, "files": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["path", "sha1", "md5", "size", "status", "name"], "properties": { "path": { "type": "string", "minLength": 1 }, "sha1": { "type": "string", "pattern": "^[a-f0-9]{40}$" }, "md5": { "type": "string", "pattern": "^[a-f0-9]{32}$" }, "size": { "type": "integer", "minimum": 0 }, "status": { "enum": ["verified", "verified_md5", "verified_rebuild", "verified_data", "verified_members", "untracked"] }, "name": { "type": "string" }, "systems": { "type": "array", "items": { "type": "string", "minLength": 1 } } } } }, "summary": { "type": "object", "additionalProperties": false, "required": ["total_files", "verified", "untracked", "errors"], "properties": { "total_files": { "type": "integer", "minimum": 0 }, "verified": { "type": "integer", "minimum": 0 }, "untracked": { "type": "integer", "minimum": 0 }, "errors": { "type": "integer", "minimum": 0 } } }, "errors": { "type": "array", "items": { "type": "string" } }, "system_titles": { "type": "object", "additionalProperties": { "type": "string" } }, "system_names": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } }, "list_version": { "description": "Version of the platform's list the pack was built from, the version of its install manifest. The installer compares it with the version the machine runs when it installs from the pack alone. The version key above numbers this file's format.", "type": "string", "minLength": 1 }, "list_records": { "description": "What the platform's install list narrows by: the installer names that list as the remedy for --core or --region given with the pack alone only when it records them.", "type": "array", "uniqueItems": true, "items": { "enum": ["systems", "cores", "regions"] } }, "install_list": { "description": "The install manifest built with the same choices as the pack, as install/.json holds it. With the pack alone, the installer narrows by system, core and region from it. validate_schemas.py checks it against install-manifest.schema.json.", "type": "object" }, "targets": { "description": "The platform's cores per hardware target, as install/targets/.json publishes them. With the pack alone, the installer applies the card's board and accepts --target from it. validate_schemas.py checks it against target-manifest.schema.json.", "type": "object" } } }