{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "govctl Conformance Case",
"type": "object",
"additionalProperties": false,
"required": ["govctl", "case"],
"properties": {
"govctl": {
"type": "object",
"additionalProperties": false,
"required": ["id", "title"],
"properties": {
"id": {
"type": "string",
"pattern": "^CONF-[A-Z][A-Z0-9-]*$"
},
"title": {
"type": "string",
"minLength": 1
},
"tags": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"uniqueItems": true
}
}
},
"case": {
"type": "object",
"additionalProperties": false,
"required": ["path", "selector", "requirements"],
"properties": {
"path": {
"type": "string",
"minLength": 1
},
"selector": {
"type": "string",
"minLength": 1
},
"requirements": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["ref", "version"],
"properties": {
"ref": {
"type": "string",
"pattern": "^RFC-[0-9]{4}:C-[A-Z][A-Z0-9-]*$"
},
"version": {
"type": "string",
"pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"
}
}
}
},
"guards": {
"type": "array",
"items": {
"type": "string",
"pattern": "^GUARD-[A-Z][A-Z0-9-]*$"
},
"uniqueItems": true
}
}
}
}
}