102 lines
2.9 KiB
JSON
102 lines
2.9 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://uci.emissary.cadoles.com/spec.json",
|
|
"title": "UCISpec",
|
|
"description": "Emissary 'UCI' specification",
|
|
"type": "object",
|
|
"properties": {
|
|
"config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"packages": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/package"
|
|
}
|
|
}
|
|
},
|
|
"required": ["packages"],
|
|
"additionalProperties": false
|
|
},
|
|
"postImportCommands": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"command": {
|
|
"type": "string"
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": ["command", "args"],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
},
|
|
"required": ["config", "postImportCommands"],
|
|
"additionalProperties": false,
|
|
"$defs": {
|
|
"package": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"configs": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/config"
|
|
}
|
|
}
|
|
},
|
|
"required": ["name", "configs"],
|
|
"additionalProperties": false
|
|
},
|
|
"config": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"section": {
|
|
"type": "string"
|
|
},
|
|
"options": {
|
|
"anyOf": [
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/option"
|
|
}
|
|
},
|
|
{ "type": "null" }
|
|
]
|
|
}
|
|
},
|
|
"required": ["name"],
|
|
"additionalProperties": false
|
|
},
|
|
"option": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": ["list", "option"]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["type", "name", "value"],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
} |