Files
libretro/schemas/pack-manifest.schema.json
T
Abdessamad Derraz 0fa4552dae fix: refuse only the axis a list lacks
The MinUI family's lists record cores and regions and no system: every
narrowing was refused with a remedy that fetched the same list. Each
option is now refused by the axis missing, with what works, and a pack
names its platform's list only when that list records the axis. Line
mode names what c chooses and skips a question with one answer, and
Options leaves out parallel downloads when nothing is downloaded.
2026-10-27 15:37:24 +01:00

55 lines
2.3 KiB
JSON

{
"$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_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"] }
}
}
}