mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
60 lines
2.8 KiB
JSON
60 lines
2.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://abdess.github.io/retrobios/api/v1/schemas/game-extras.schema.json",
|
|
"title": "RetroBIOS per-game extra files",
|
|
"description": "games/extras.yml: files a game needs beyond its system's region BIOS, decided by the game's extension, header bytes or presence, with the core that reads them. A header trigger names a reader of games/headers.yml and the labels or values it returns.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["extras"],
|
|
"properties": {
|
|
"extras": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["system", "profile", "trigger", "required", "source_ref"],
|
|
"properties": {
|
|
"system": { "type": "string", "minLength": 1 },
|
|
"profile": { "type": "string", "minLength": 1 },
|
|
"trigger": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"minProperties": 1,
|
|
"maxProperties": 1,
|
|
"properties": {
|
|
"extensions": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": { "type": "string", "pattern": "^\\.[a-z0-9]+$" },
|
|
"uniqueItems": true
|
|
},
|
|
"header": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["reader", "values"],
|
|
"properties": {
|
|
"reader": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
|
|
"field": { "type": "string", "pattern": "^[a-z0-9_]+$", "description": "A field of the reader, when the value is read there rather than from the reader's own location." },
|
|
"values": { "type": "array", "minItems": 1, "items": { "type": ["string", "integer"] } }
|
|
}
|
|
},
|
|
"every_game": { "const": true }
|
|
}
|
|
},
|
|
"files": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 }, "uniqueItems": true },
|
|
"region_files": { "const": true, "description": "The files are the system's region files for the game's region (games/regions.yml)." },
|
|
"one_of": { "type": "boolean", "description": "Any single file of the list serves." },
|
|
"filename_override": { "type": "boolean", "description": "Tags in the file name can change the choice: the installer keeps every file listed for this system and core." },
|
|
"required": { "type": "boolean" },
|
|
"note": { "type": "string", "minLength": 1 },
|
|
"source_ref": {
|
|
"type": "string",
|
|
"pattern": "^[\\w.-]+/[\\w.-]+@[0-9a-f]{8,40} \\S.*$"
|
|
}
|
|
},
|
|
"oneOf": [{ "required": ["files"] }, { "required": ["region_files"] }]
|
|
}
|
|
}
|
|
}
|
|
}
|