5etools-utils 0.8.10 → 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.10",
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
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.10.8",
3
+ "version": "1.10.9",
4
4
  "type": "object",
5
5
  "description": "Homebrew for 5etools. Should include arrays titled similarly to the main site data, e.g. `spell` or `class`",
6
6
  "$defs": {
@@ -267,6 +267,16 @@
267
267
  "minItems": 1,
268
268
  "uniqueItems": true
269
269
  },
270
+ "fonts": {
271
+ "description": "A map of \"font family\" to font URL.",
272
+ "type": "object",
273
+ "patternProperties": {
274
+ "^[a-zA-Z0-9]+$": {
275
+ "type": "string",
276
+ "minLength": 3
277
+ }
278
+ }
279
+ },
270
280
  "unlisted": {
271
281
  "description": "If this homebrew file should be ignored/hidden by any indexer.",
272
282
  "type": "boolean"
@@ -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
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.10.8",
3
+ "version": "1.10.9",
4
4
  "type": "object",
5
5
  "description": "Homebrew for 5etools. Should include arrays titled similarly to the main site data, e.g. `spell` or `class`",
6
6
  "$defs": {
@@ -265,6 +265,16 @@
265
265
  "minItems": 1,
266
266
  "uniqueItems": true
267
267
  },
268
+ "fonts": {
269
+ "description": "A map of \"font family\" to font URL.",
270
+ "type": "object",
271
+ "patternProperties": {
272
+ "^[a-zA-Z0-9]+$": {
273
+ "type": "string",
274
+ "minLength": 3
275
+ }
276
+ }
277
+ },
268
278
  "unlisted": {
269
279
  "description": "If this homebrew file should be ignored/hidden by any indexer.",
270
280
  "type": "boolean"
@@ -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
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.10.8",
3
+ "version": "1.10.9",
4
4
  "type": "object",
5
5
  "description": "Homebrew for 5etools. Should include arrays titled similarly to the main site data, e.g. `spell` or `class`",
6
6
  "$defs": {
@@ -267,6 +267,16 @@
267
267
  "minItems": 1,
268
268
  "uniqueItems": true
269
269
  },
270
+ "fonts": {
271
+ "description": "A map of \"font family\" to font URL.",
272
+ "type": "object",
273
+ "patternProperties": {
274
+ "^[a-zA-Z0-9]+$": {
275
+ "type": "string",
276
+ "minLength": 3
277
+ }
278
+ }
279
+ },
270
280
  "unlisted": {
271
281
  "description": "If this homebrew file should be ignored/hidden by any indexer.",
272
282
  "type": "boolean"
@@ -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
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.10.8",
3
+ "version": "1.10.9",
4
4
  "type": "object",
5
5
  "description": "Homebrew for 5etools. Should include arrays titled similarly to the main site data, e.g. `spell` or `class`",
6
6
  "$defs": {
@@ -265,6 +265,16 @@
265
265
  "minItems": 1,
266
266
  "uniqueItems": true
267
267
  },
268
+ "fonts": {
269
+ "description": "A map of \"font family\" to font URL.",
270
+ "type": "object",
271
+ "patternProperties": {
272
+ "^[a-zA-Z0-9]+$": {
273
+ "type": "string",
274
+ "minLength": 3
275
+ }
276
+ }
277
+ },
268
278
  "unlisted": {
269
279
  "description": "If this homebrew file should be ignored/hidden by any indexer.",
270
280
  "type": "boolean"