Files
card-layouts/schemas/series.schema.json
T
2026-07-15 08:41:20 +02:00

159 lines
3.2 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Manifest serii kart",
"description": "Maszynowy opis kolejności repozytoriów kart i ich zadań.",
"type": "object",
"required": [
"version",
"series",
"org",
"title",
"default_branch",
"cards"
],
"properties": {
"$schema": {
"type": "string"
},
"version": {
"const": 1
},
"series": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]*$"
},
"org": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"default_branch": {
"type": "string",
"minLength": 1
},
"cards": {
"type": "array",
"items": {
"$ref": "#/$defs/cardEntry"
}
}
},
"$defs": {
"cardEntry": {
"type": "object",
"required": [
"id",
"repo",
"branch",
"title",
"summary",
"status",
"card_series",
"card_number",
"card_count",
"slug",
"version",
"build",
"tasks"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"repo": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]*$"
},
"branch": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string"
},
"kind": {
"type": "string"
},
"status": {
"type": "string"
},
"area": {
"type": "string"
},
"card_series": {
"type": "string"
},
"card_number": {
"type": "string"
},
"card_count": {
"type": "string"
},
"slug": {
"type": "string"
},
"version": {
"type": "string"
},
"document_uuid": {
"type": "string"
},
"pdf": {
"type": "string"
},
"build": {
"type": "object",
"required": ["driver", "all_target", "clean_target"],
"properties": {
"driver": {
"const": "make"
},
"all_target": {
"type": "string"
},
"clean_target": {
"type": "string"
}
},
"additionalProperties": true
},
"tasks": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "title", "target"],
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"target": {
"type": "string"
},
"source": {
"type": "string"
},
"build_dir": {
"type": "string"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
},
"additionalProperties": false
}