1{
2 "$schema": "https://json-schema.org/draft/2020-12/schema",
3 "$id": "https://variants-schema.wheelnext.dev/peps/825/v0.1.1.json",
4 "title": "Variant metadata, v0.1.1",
5 "description": "The format for variant metadata (variant.json) and index-level metadata ({name}-{version}-variants.json)",
6 "type": "object",
7 "properties": {
8 "$schema": {
9 "description": "JSON schema URL",
10 "type": "string"
11 },
12 "default-priorities": {
13 "description": "Default priorities for ordering variants",
14 "type": "object",
15 "properties": {
16 "namespace": {
17 "description": "Namespaces (in order of preference)",
18 "type": "array",
19 "items": {
20 "type": "string",
21 "pattern": "^[a-z0-9_]+$"
22 },
23 "minItems": 1,
24 "uniqueItems": true
25 }
26 },
27 "additionalProperties": false,
28 "uniqueItems": true,
29 "required": [
30 "namespace"
31 ]
32 },
33 "variants": {
34 "description": "Mapping of variant labels to properties",
35 "type": "object",
36 "patternProperties": {
37 "^[a-z0-9_.]{1,16}$": {
38 "type": "object",
39 "description": "Mapping of namespaces in a variant",
40 "patternProperties": {
41 "^[a-z0-9_.]+$": {
42 "description": "Mapping of feature names in a namespace",
43 "patternProperties": {
44 "^[a-z0-9_.]+$": {
45 "description": "List of values for this variant feature",
46 "type": "array",
47 "items": {
48 "type": "string",
49 "pattern": "^[a-z0-9_.]+$"
50 },
51 "minItems": 1,
52 "uniqueItems": true
53 }
54 },
55 "uniqueItems": true,
56 "additionalProperties": false
57 }
58 },
59 "uniqueItems": true,
60 "additionalProperties": false
61 }
62 },
63 "additionalProperties": false,
64 "uniqueItems": true
65 }
66 },
67 "required": [
68 "$schema",
69 "default-priorities",
70 "variants"
71 ],
72 "additionalProperties": false,
73 "uniqueItems": true
74}