5etools-utils 0.8.11 → 0.8.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "5etools-utils",
3
- "version": "0.8.11",
3
+ "version": "0.8.12",
4
4
  "description": "Shared utilities for the 5etools ecosystem.",
5
5
  "type": "module",
6
6
  "main": "lib/Api.js",
@@ -0,0 +1,230 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "gendata-spell-source-lookup.json",
4
+ "version": "1.0.0",
5
+ "type": "object",
6
+ "description": "Keys are lowercase'd source identifiers.",
7
+ "$defs": {
8
+ "leafDefinedInSources": {
9
+ "type": "object",
10
+ "properties": {
11
+ "definedInSources": {
12
+ "type": "array",
13
+ "items": {
14
+ "type": "string"
15
+ },
16
+ "uniqueItems": true
17
+ }
18
+ },
19
+ "required": [
20
+ "definedInSources"
21
+ ],
22
+ "additionalProperties": false,
23
+ "minProperties": 1
24
+ },
25
+ "basicEntityMap": {
26
+ "type": "object",
27
+ "description": "Keys are source identifiers.",
28
+ "patternProperties": {
29
+ "^[-A-Za-z0-9]+$": {
30
+ "type": "object",
31
+ "description": "Keys are entity names.",
32
+ "patternProperties": {
33
+ "^[-A-Za-z0-9 '()/;]+$": {
34
+ "oneOf": [
35
+ {
36
+ "const": true
37
+ },
38
+ {
39
+ "$ref": "#/$defs/leafDefinedInSources"
40
+ }
41
+ ]
42
+ }
43
+ },
44
+ "additionalProperties": false,
45
+ "minProperties": 1
46
+ }
47
+ },
48
+ "additionalProperties": false,
49
+ "minProperties": 1
50
+ }
51
+ },
52
+ "patternProperties": {
53
+ "^[-a-z0-9]+$": {
54
+ "type": "object",
55
+ "description": "Keys are lowercase'd spell names.",
56
+ "patternProperties": {
57
+ "^[-a-z0-9 '()/;]+$": {
58
+ "type": "object",
59
+ "properties": {
60
+ "class": {
61
+ "$ref": "#/$defs/basicEntityMap"
62
+ },
63
+ "feat": {
64
+ "$ref": "#/$defs/basicEntityMap"
65
+ },
66
+ "reward": {
67
+ "$ref": "#/$defs/basicEntityMap"
68
+ },
69
+ "background": {
70
+ "$ref": "#/$defs/basicEntityMap"
71
+ },
72
+ "charoption": {
73
+ "$ref": "#/$defs/basicEntityMap"
74
+ },
75
+ "subclass": {
76
+ "type": "object",
77
+ "description": "Keys are source identifiers.",
78
+ "patternProperties": {
79
+ "^[-A-Za-z0-9]+$": {
80
+ "type": "object",
81
+ "description": "Keys are class names.",
82
+ "patternProperties": {
83
+ "^[-A-Za-z0-9 '()/;]+$": {
84
+ "type": "object",
85
+ "description": "Keys are source identifiers.",
86
+ "patternProperties": {
87
+ "^[-A-Za-z0-9]+$": {
88
+ "type": "object",
89
+ "description": "Keys are subclass names.",
90
+ "patternProperties": {
91
+ "^[-A-Za-z0-9 '()/;]+$": {
92
+ "type": "object",
93
+ "properties": {
94
+ "name": {
95
+ "type": "string"
96
+ },
97
+ "subSubclasses": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "string"
101
+ },
102
+ "uniqueItems": true
103
+ }
104
+ },
105
+ "required": [
106
+ "name"
107
+ ],
108
+ "additionalProperties": false,
109
+ "minProperties": 1
110
+ }
111
+ },
112
+ "additionalProperties": false,
113
+ "minProperties": 1
114
+ }
115
+ },
116
+ "additionalProperties": false,
117
+ "minProperties": 1
118
+ }
119
+ },
120
+ "additionalProperties": false,
121
+ "minProperties": 1
122
+ }
123
+ },
124
+ "additionalProperties": false,
125
+ "minProperties": 1
126
+ },
127
+ "classVariant": {
128
+ "type": "object",
129
+ "description": "Keys are source identifiers.",
130
+ "patternProperties": {
131
+ "^[-A-Za-z0-9]+$": {
132
+ "type": "object",
133
+ "description": "Keys are class names.",
134
+ "patternProperties": {
135
+ "^[-A-Za-z0-9 '()/;]+$": {
136
+ "$ref": "#/$defs/leafDefinedInSources"
137
+ }
138
+ },
139
+ "additionalProperties": false,
140
+ "minProperties": 1
141
+ }
142
+ },
143
+ "additionalProperties": false,
144
+ "minProperties": 1
145
+ },
146
+ "optionalfeature": {
147
+ "type": "object",
148
+ "description": "Keys are source identifiers.",
149
+ "patternProperties": {
150
+ "^[-A-Za-z0-9]+$": {
151
+ "type": "object",
152
+ "description": "Keys are optional feature names.",
153
+ "patternProperties": {
154
+ "^[-A-Za-z0-9 '()/;]+$": {
155
+ "type": "object",
156
+ "properties": {
157
+ "featureType": {
158
+ "type": "array",
159
+ "items": {
160
+ "$ref": "../util.json#/$defs/dataOptionalfeatureType"
161
+ },
162
+ "uniqueItems": true
163
+ }
164
+ },
165
+ "required": [
166
+ "featureType"
167
+ ],
168
+ "additionalProperties": false,
169
+ "minProperties": 1
170
+ }
171
+ },
172
+ "additionalProperties": false,
173
+ "minProperties": 1
174
+ }
175
+ },
176
+ "additionalProperties": false,
177
+ "minProperties": 1
178
+ },
179
+ "race": {
180
+ "type": "object",
181
+ "description": "Keys are source identifiers.",
182
+ "patternProperties": {
183
+ "^[-A-Za-z0-9]+$": {
184
+ "type": "object",
185
+ "description": "Keys are race names.",
186
+ "patternProperties": {
187
+ "^[-A-Za-z0-9 '()/;]+$": {
188
+ "oneOf": [
189
+ {
190
+ "const": true
191
+ },
192
+ {
193
+ "type": "object",
194
+ "properties": {
195
+ "baseName": {
196
+ "type": "string"
197
+ },
198
+ "baseSource": {
199
+ "type": "string"
200
+ }
201
+ },
202
+ "required": [
203
+ "baseName",
204
+ "baseSource"
205
+ ],
206
+ "additionalProperties": false,
207
+ "minProperties": 1
208
+ }
209
+ ]
210
+ }
211
+ },
212
+ "additionalProperties": false,
213
+ "minProperties": 1
214
+ }
215
+ },
216
+ "additionalProperties": false,
217
+ "minProperties": 1
218
+ }
219
+ },
220
+ "additionalProperties": false,
221
+ "minProperties": 1
222
+ }
223
+ },
224
+ "additionalProperties": false,
225
+ "minProperties": 1
226
+ }
227
+ },
228
+ "additionalProperties": false,
229
+ "minProperties": 1
230
+ }
@@ -0,0 +1,230 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "gendata-spell-source-lookup.json",
4
+ "version": "1.0.0",
5
+ "type": "object",
6
+ "description": "Keys are lowercase'd source identifiers.",
7
+ "$defs": {
8
+ "leafDefinedInSources": {
9
+ "type": "object",
10
+ "properties": {
11
+ "definedInSources": {
12
+ "type": "array",
13
+ "items": {
14
+ "type": "string"
15
+ },
16
+ "uniqueItems": true
17
+ }
18
+ },
19
+ "required": [
20
+ "definedInSources"
21
+ ],
22
+ "additionalProperties": false,
23
+ "minProperties": 1
24
+ },
25
+ "basicEntityMap": {
26
+ "type": "object",
27
+ "description": "Keys are source identifiers.",
28
+ "patternProperties": {
29
+ "^[-A-Za-z0-9]+$": {
30
+ "type": "object",
31
+ "description": "Keys are entity names.",
32
+ "patternProperties": {
33
+ "^[-A-Za-z0-9 '()/;]+$": {
34
+ "oneOf": [
35
+ {
36
+ "const": true
37
+ },
38
+ {
39
+ "$ref": "#/$defs/leafDefinedInSources"
40
+ }
41
+ ]
42
+ }
43
+ },
44
+ "additionalProperties": false,
45
+ "minProperties": 1
46
+ }
47
+ },
48
+ "additionalProperties": false,
49
+ "minProperties": 1
50
+ }
51
+ },
52
+ "patternProperties": {
53
+ "^[-a-z0-9]+$": {
54
+ "type": "object",
55
+ "description": "Keys are lowercase'd spell names.",
56
+ "patternProperties": {
57
+ "^[-a-z0-9 '()/;]+$": {
58
+ "type": "object",
59
+ "properties": {
60
+ "class": {
61
+ "$ref": "#/$defs/basicEntityMap"
62
+ },
63
+ "feat": {
64
+ "$ref": "#/$defs/basicEntityMap"
65
+ },
66
+ "reward": {
67
+ "$ref": "#/$defs/basicEntityMap"
68
+ },
69
+ "background": {
70
+ "$ref": "#/$defs/basicEntityMap"
71
+ },
72
+ "charoption": {
73
+ "$ref": "#/$defs/basicEntityMap"
74
+ },
75
+ "subclass": {
76
+ "type": "object",
77
+ "description": "Keys are source identifiers.",
78
+ "patternProperties": {
79
+ "^[-A-Za-z0-9]+$": {
80
+ "type": "object",
81
+ "description": "Keys are class names.",
82
+ "patternProperties": {
83
+ "^[-A-Za-z0-9 '()/;]+$": {
84
+ "type": "object",
85
+ "description": "Keys are source identifiers.",
86
+ "patternProperties": {
87
+ "^[-A-Za-z0-9]+$": {
88
+ "type": "object",
89
+ "description": "Keys are subclass names.",
90
+ "patternProperties": {
91
+ "^[-A-Za-z0-9 '()/;]+$": {
92
+ "type": "object",
93
+ "properties": {
94
+ "name": {
95
+ "type": "string"
96
+ },
97
+ "subSubclasses": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "string"
101
+ },
102
+ "uniqueItems": true
103
+ }
104
+ },
105
+ "required": [
106
+ "name"
107
+ ],
108
+ "additionalProperties": false,
109
+ "minProperties": 1
110
+ }
111
+ },
112
+ "additionalProperties": false,
113
+ "minProperties": 1
114
+ }
115
+ },
116
+ "additionalProperties": false,
117
+ "minProperties": 1
118
+ }
119
+ },
120
+ "additionalProperties": false,
121
+ "minProperties": 1
122
+ }
123
+ },
124
+ "additionalProperties": false,
125
+ "minProperties": 1
126
+ },
127
+ "classVariant": {
128
+ "type": "object",
129
+ "description": "Keys are source identifiers.",
130
+ "patternProperties": {
131
+ "^[-A-Za-z0-9]+$": {
132
+ "type": "object",
133
+ "description": "Keys are class names.",
134
+ "patternProperties": {
135
+ "^[-A-Za-z0-9 '()/;]+$": {
136
+ "$ref": "#/$defs/leafDefinedInSources"
137
+ }
138
+ },
139
+ "additionalProperties": false,
140
+ "minProperties": 1
141
+ }
142
+ },
143
+ "additionalProperties": false,
144
+ "minProperties": 1
145
+ },
146
+ "optionalfeature": {
147
+ "type": "object",
148
+ "description": "Keys are source identifiers.",
149
+ "patternProperties": {
150
+ "^[-A-Za-z0-9]+$": {
151
+ "type": "object",
152
+ "description": "Keys are optional feature names.",
153
+ "patternProperties": {
154
+ "^[-A-Za-z0-9 '()/;]+$": {
155
+ "type": "object",
156
+ "properties": {
157
+ "featureType": {
158
+ "type": "array",
159
+ "items": {
160
+ "$ref": "../util.json#/$defs/dataOptionalfeatureType"
161
+ },
162
+ "uniqueItems": true
163
+ }
164
+ },
165
+ "required": [
166
+ "featureType"
167
+ ],
168
+ "additionalProperties": false,
169
+ "minProperties": 1
170
+ }
171
+ },
172
+ "additionalProperties": false,
173
+ "minProperties": 1
174
+ }
175
+ },
176
+ "additionalProperties": false,
177
+ "minProperties": 1
178
+ },
179
+ "race": {
180
+ "type": "object",
181
+ "description": "Keys are source identifiers.",
182
+ "patternProperties": {
183
+ "^[-A-Za-z0-9]+$": {
184
+ "type": "object",
185
+ "description": "Keys are race names.",
186
+ "patternProperties": {
187
+ "^[-A-Za-z0-9 '()/;]+$": {
188
+ "oneOf": [
189
+ {
190
+ "const": true
191
+ },
192
+ {
193
+ "type": "object",
194
+ "properties": {
195
+ "baseName": {
196
+ "type": "string"
197
+ },
198
+ "baseSource": {
199
+ "type": "string"
200
+ }
201
+ },
202
+ "required": [
203
+ "baseName",
204
+ "baseSource"
205
+ ],
206
+ "additionalProperties": false,
207
+ "minProperties": 1
208
+ }
209
+ ]
210
+ }
211
+ },
212
+ "additionalProperties": false,
213
+ "minProperties": 1
214
+ }
215
+ },
216
+ "additionalProperties": false,
217
+ "minProperties": 1
218
+ }
219
+ },
220
+ "additionalProperties": false,
221
+ "minProperties": 1
222
+ }
223
+ },
224
+ "additionalProperties": false,
225
+ "minProperties": 1
226
+ }
227
+ },
228
+ "additionalProperties": false,
229
+ "minProperties": 1
230
+ }
@@ -0,0 +1,230 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "gendata-spell-source-lookup.json",
4
+ "version": "1.0.0",
5
+ "type": "object",
6
+ "description": "Keys are lowercase'd source identifiers.",
7
+ "$defs": {
8
+ "leafDefinedInSources": {
9
+ "type": "object",
10
+ "properties": {
11
+ "definedInSources": {
12
+ "type": "array",
13
+ "items": {
14
+ "type": "string"
15
+ },
16
+ "uniqueItems": true
17
+ }
18
+ },
19
+ "required": [
20
+ "definedInSources"
21
+ ],
22
+ "additionalProperties": false,
23
+ "minProperties": 1
24
+ },
25
+ "basicEntityMap": {
26
+ "type": "object",
27
+ "description": "Keys are source identifiers.",
28
+ "patternProperties": {
29
+ "^[-A-Za-z0-9]+$": {
30
+ "type": "object",
31
+ "description": "Keys are entity names.",
32
+ "patternProperties": {
33
+ "^[-A-Za-z0-9 '()/;]+$": {
34
+ "oneOf": [
35
+ {
36
+ "const": true
37
+ },
38
+ {
39
+ "$ref": "#/$defs/leafDefinedInSources"
40
+ }
41
+ ]
42
+ }
43
+ },
44
+ "additionalProperties": false,
45
+ "minProperties": 1
46
+ }
47
+ },
48
+ "additionalProperties": false,
49
+ "minProperties": 1
50
+ }
51
+ },
52
+ "patternProperties": {
53
+ "^[-a-z0-9]+$": {
54
+ "type": "object",
55
+ "description": "Keys are lowercase'd spell names.",
56
+ "patternProperties": {
57
+ "^[-a-z0-9 '()/;]+$": {
58
+ "type": "object",
59
+ "properties": {
60
+ "class": {
61
+ "$ref": "#/$defs/basicEntityMap"
62
+ },
63
+ "feat": {
64
+ "$ref": "#/$defs/basicEntityMap"
65
+ },
66
+ "reward": {
67
+ "$ref": "#/$defs/basicEntityMap"
68
+ },
69
+ "background": {
70
+ "$ref": "#/$defs/basicEntityMap"
71
+ },
72
+ "charoption": {
73
+ "$ref": "#/$defs/basicEntityMap"
74
+ },
75
+ "subclass": {
76
+ "type": "object",
77
+ "description": "Keys are source identifiers.",
78
+ "patternProperties": {
79
+ "^[-A-Za-z0-9]+$": {
80
+ "type": "object",
81
+ "description": "Keys are class names.",
82
+ "patternProperties": {
83
+ "^[-A-Za-z0-9 '()/;]+$": {
84
+ "type": "object",
85
+ "description": "Keys are source identifiers.",
86
+ "patternProperties": {
87
+ "^[-A-Za-z0-9]+$": {
88
+ "type": "object",
89
+ "description": "Keys are subclass names.",
90
+ "patternProperties": {
91
+ "^[-A-Za-z0-9 '()/;]+$": {
92
+ "type": "object",
93
+ "properties": {
94
+ "name": {
95
+ "type": "string"
96
+ },
97
+ "subSubclasses": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "string"
101
+ },
102
+ "uniqueItems": true
103
+ }
104
+ },
105
+ "required": [
106
+ "name"
107
+ ],
108
+ "additionalProperties": false,
109
+ "minProperties": 1
110
+ }
111
+ },
112
+ "additionalProperties": false,
113
+ "minProperties": 1
114
+ }
115
+ },
116
+ "additionalProperties": false,
117
+ "minProperties": 1
118
+ }
119
+ },
120
+ "additionalProperties": false,
121
+ "minProperties": 1
122
+ }
123
+ },
124
+ "additionalProperties": false,
125
+ "minProperties": 1
126
+ },
127
+ "classVariant": {
128
+ "type": "object",
129
+ "description": "Keys are source identifiers.",
130
+ "patternProperties": {
131
+ "^[-A-Za-z0-9]+$": {
132
+ "type": "object",
133
+ "description": "Keys are class names.",
134
+ "patternProperties": {
135
+ "^[-A-Za-z0-9 '()/;]+$": {
136
+ "$ref": "#/$defs/leafDefinedInSources"
137
+ }
138
+ },
139
+ "additionalProperties": false,
140
+ "minProperties": 1
141
+ }
142
+ },
143
+ "additionalProperties": false,
144
+ "minProperties": 1
145
+ },
146
+ "optionalfeature": {
147
+ "type": "object",
148
+ "description": "Keys are source identifiers.",
149
+ "patternProperties": {
150
+ "^[-A-Za-z0-9]+$": {
151
+ "type": "object",
152
+ "description": "Keys are optional feature names.",
153
+ "patternProperties": {
154
+ "^[-A-Za-z0-9 '()/;]+$": {
155
+ "type": "object",
156
+ "properties": {
157
+ "featureType": {
158
+ "type": "array",
159
+ "items": {
160
+ "$ref": "../util.json#/$defs/dataOptionalfeatureType"
161
+ },
162
+ "uniqueItems": true
163
+ }
164
+ },
165
+ "required": [
166
+ "featureType"
167
+ ],
168
+ "additionalProperties": false,
169
+ "minProperties": 1
170
+ }
171
+ },
172
+ "additionalProperties": false,
173
+ "minProperties": 1
174
+ }
175
+ },
176
+ "additionalProperties": false,
177
+ "minProperties": 1
178
+ },
179
+ "race": {
180
+ "type": "object",
181
+ "description": "Keys are source identifiers.",
182
+ "patternProperties": {
183
+ "^[-A-Za-z0-9]+$": {
184
+ "type": "object",
185
+ "description": "Keys are race names.",
186
+ "patternProperties": {
187
+ "^[-A-Za-z0-9 '()/;]+$": {
188
+ "oneOf": [
189
+ {
190
+ "const": true
191
+ },
192
+ {
193
+ "type": "object",
194
+ "properties": {
195
+ "baseName": {
196
+ "type": "string"
197
+ },
198
+ "baseSource": {
199
+ "type": "string"
200
+ }
201
+ },
202
+ "required": [
203
+ "baseName",
204
+ "baseSource"
205
+ ],
206
+ "additionalProperties": false,
207
+ "minProperties": 1
208
+ }
209
+ ]
210
+ }
211
+ },
212
+ "additionalProperties": false,
213
+ "minProperties": 1
214
+ }
215
+ },
216
+ "additionalProperties": false,
217
+ "minProperties": 1
218
+ }
219
+ },
220
+ "additionalProperties": false,
221
+ "minProperties": 1
222
+ }
223
+ },
224
+ "additionalProperties": false,
225
+ "minProperties": 1
226
+ }
227
+ },
228
+ "additionalProperties": false,
229
+ "minProperties": 1
230
+ }
@@ -0,0 +1,230 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "gendata-spell-source-lookup.json",
4
+ "version": "1.0.0",
5
+ "type": "object",
6
+ "description": "Keys are lowercase'd source identifiers.",
7
+ "$defs": {
8
+ "leafDefinedInSources": {
9
+ "type": "object",
10
+ "properties": {
11
+ "definedInSources": {
12
+ "type": "array",
13
+ "items": {
14
+ "type": "string"
15
+ },
16
+ "uniqueItems": true
17
+ }
18
+ },
19
+ "required": [
20
+ "definedInSources"
21
+ ],
22
+ "additionalProperties": false,
23
+ "minProperties": 1
24
+ },
25
+ "basicEntityMap": {
26
+ "type": "object",
27
+ "description": "Keys are source identifiers.",
28
+ "patternProperties": {
29
+ "^[-A-Za-z0-9]+$": {
30
+ "type": "object",
31
+ "description": "Keys are entity names.",
32
+ "patternProperties": {
33
+ "^[-A-Za-z0-9 '()/;]+$": {
34
+ "oneOf": [
35
+ {
36
+ "const": true
37
+ },
38
+ {
39
+ "$ref": "#/$defs/leafDefinedInSources"
40
+ }
41
+ ]
42
+ }
43
+ },
44
+ "additionalProperties": false,
45
+ "minProperties": 1
46
+ }
47
+ },
48
+ "additionalProperties": false,
49
+ "minProperties": 1
50
+ }
51
+ },
52
+ "patternProperties": {
53
+ "^[-a-z0-9]+$": {
54
+ "type": "object",
55
+ "description": "Keys are lowercase'd spell names.",
56
+ "patternProperties": {
57
+ "^[-a-z0-9 '()/;]+$": {
58
+ "type": "object",
59
+ "properties": {
60
+ "class": {
61
+ "$ref": "#/$defs/basicEntityMap"
62
+ },
63
+ "feat": {
64
+ "$ref": "#/$defs/basicEntityMap"
65
+ },
66
+ "reward": {
67
+ "$ref": "#/$defs/basicEntityMap"
68
+ },
69
+ "background": {
70
+ "$ref": "#/$defs/basicEntityMap"
71
+ },
72
+ "charoption": {
73
+ "$ref": "#/$defs/basicEntityMap"
74
+ },
75
+ "subclass": {
76
+ "type": "object",
77
+ "description": "Keys are source identifiers.",
78
+ "patternProperties": {
79
+ "^[-A-Za-z0-9]+$": {
80
+ "type": "object",
81
+ "description": "Keys are class names.",
82
+ "patternProperties": {
83
+ "^[-A-Za-z0-9 '()/;]+$": {
84
+ "type": "object",
85
+ "description": "Keys are source identifiers.",
86
+ "patternProperties": {
87
+ "^[-A-Za-z0-9]+$": {
88
+ "type": "object",
89
+ "description": "Keys are subclass names.",
90
+ "patternProperties": {
91
+ "^[-A-Za-z0-9 '()/;]+$": {
92
+ "type": "object",
93
+ "properties": {
94
+ "name": {
95
+ "type": "string"
96
+ },
97
+ "subSubclasses": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "string"
101
+ },
102
+ "uniqueItems": true
103
+ }
104
+ },
105
+ "required": [
106
+ "name"
107
+ ],
108
+ "additionalProperties": false,
109
+ "minProperties": 1
110
+ }
111
+ },
112
+ "additionalProperties": false,
113
+ "minProperties": 1
114
+ }
115
+ },
116
+ "additionalProperties": false,
117
+ "minProperties": 1
118
+ }
119
+ },
120
+ "additionalProperties": false,
121
+ "minProperties": 1
122
+ }
123
+ },
124
+ "additionalProperties": false,
125
+ "minProperties": 1
126
+ },
127
+ "classVariant": {
128
+ "type": "object",
129
+ "description": "Keys are source identifiers.",
130
+ "patternProperties": {
131
+ "^[-A-Za-z0-9]+$": {
132
+ "type": "object",
133
+ "description": "Keys are class names.",
134
+ "patternProperties": {
135
+ "^[-A-Za-z0-9 '()/;]+$": {
136
+ "$ref": "#/$defs/leafDefinedInSources"
137
+ }
138
+ },
139
+ "additionalProperties": false,
140
+ "minProperties": 1
141
+ }
142
+ },
143
+ "additionalProperties": false,
144
+ "minProperties": 1
145
+ },
146
+ "optionalfeature": {
147
+ "type": "object",
148
+ "description": "Keys are source identifiers.",
149
+ "patternProperties": {
150
+ "^[-A-Za-z0-9]+$": {
151
+ "type": "object",
152
+ "description": "Keys are optional feature names.",
153
+ "patternProperties": {
154
+ "^[-A-Za-z0-9 '()/;]+$": {
155
+ "type": "object",
156
+ "properties": {
157
+ "featureType": {
158
+ "type": "array",
159
+ "items": {
160
+ "$ref": "../util.json#/$defs/dataOptionalfeatureType"
161
+ },
162
+ "uniqueItems": true
163
+ }
164
+ },
165
+ "required": [
166
+ "featureType"
167
+ ],
168
+ "additionalProperties": false,
169
+ "minProperties": 1
170
+ }
171
+ },
172
+ "additionalProperties": false,
173
+ "minProperties": 1
174
+ }
175
+ },
176
+ "additionalProperties": false,
177
+ "minProperties": 1
178
+ },
179
+ "race": {
180
+ "type": "object",
181
+ "description": "Keys are source identifiers.",
182
+ "patternProperties": {
183
+ "^[-A-Za-z0-9]+$": {
184
+ "type": "object",
185
+ "description": "Keys are race names.",
186
+ "patternProperties": {
187
+ "^[-A-Za-z0-9 '()/;]+$": {
188
+ "oneOf": [
189
+ {
190
+ "const": true
191
+ },
192
+ {
193
+ "type": "object",
194
+ "properties": {
195
+ "baseName": {
196
+ "type": "string"
197
+ },
198
+ "baseSource": {
199
+ "type": "string"
200
+ }
201
+ },
202
+ "required": [
203
+ "baseName",
204
+ "baseSource"
205
+ ],
206
+ "additionalProperties": false,
207
+ "minProperties": 1
208
+ }
209
+ ]
210
+ }
211
+ },
212
+ "additionalProperties": false,
213
+ "minProperties": 1
214
+ }
215
+ },
216
+ "additionalProperties": false,
217
+ "minProperties": 1
218
+ }
219
+ },
220
+ "additionalProperties": false,
221
+ "minProperties": 1
222
+ }
223
+ },
224
+ "additionalProperties": false,
225
+ "minProperties": 1
226
+ }
227
+ },
228
+ "additionalProperties": false,
229
+ "minProperties": 1
230
+ }