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