1{
2        "$schema": "http://json-schema.org/draft-04/schema#",
3        "title": "Command and Structure Validation in Vulkan",
4        "description": "A database of validatable commands and structures in the Vulkan API",
5        "type": "object",
6        "additionalProperties": false,
7        "properties": {
8                "version info": {
9                        "additionalProperties": false,
10                        "properties": {
11                                "schema version": {"type": "integer", "const": 3},
12                                "api version": {"type": "string"},
13                                "comment": {"type": "string"},
14                                "date": {"type": "string"}
15                        },
16                        "required": [
17                                "schema version",
18                                "api version",
19                                "comment",
20                                "date"
21                        ]
22                },
23                "validation": {
24                        "patternProperties": {
25                                "^[vV]k[A-Z][A-Za-z0-9]+$": {
26                                        "title": "Vulkan Command or Structure",
27                                        "description": "Validation information for a structure or command in the Vulkan API",
28                                        "patternProperties": {
29                                                "^[\\w+!|]+$": {
30                                                        "type": "array",
31                                                        "uniqueItems": true,
32                                                        "minItems": 1,
33                                                        "items":
34                                                        {
35                                                                "title": "Valid Usage Statement",
36                                                                "description": "A valid usage statement",
37                                                                "type": "object",
38                                                                "additionalProperties": false,
39                                                                "properties": {
40                                                                        "vuid": {
41                                                                                "title": "Valid Usage ID",
42                                                                                "description": "String identifier for a valid usage statement, corresponding to an anchor in the spec for that statement",
43                                                                                "type": "string",
44                                                                                "pattern": "VUID-[vV]k[A-Z][A-Za-z0-9]+-[A-Za-z0-9-]*[A-Za-z0-9]"
45                                                                        },
46                                                                        "text": {
47                                                                                "title": "Valid Usage Text",
48                                                                                "description": "HTML formatted string of the valid usage statement text",
49                                                                                "type": "string"
50                                                                        },
51                                                                        "page": {
52                                                                                "title": "Chapter or document name containing VUID",
53                                                                                "description": "String containing a page name in which this VUID lies. Currently unused.",
54                                                                                "type": "string"
55                                                                        }
56                                                                },
57                                                                "required": [
58                                                                        "vuid",
59                                                                        "text",
60                                                                        "page"
61                                                                ]
62                                                        }
63                                                }
64                                        }
65                                }
66                        }
67                }
68        }
69}
70