5etools-utils 0.12.76 → 0.12.78

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.
@@ -93,12 +93,21 @@ class _BrewFileTester {
93
93
  },
94
94
  ];
95
95
 
96
+ static _ALL_CORPUS_IDS_LOWER = new Set();
97
+
96
98
  static _testFile_publicationTuples ({ALL_ERRORS, file, contents}) {
97
99
  this._PROP_PUBLICATION_PAIRS
98
100
  .forEach(({propContents, propData}) => {
99
101
  const idsContents = new Set((contents[propContents] || []).map(it => it.id));
100
102
  const idsData = new Set((contents[propData] || []).map(it => it.id));
101
103
 
104
+ const idsCombined = new Set([...idsContents, ...idsData]);
105
+ const duplicateCorpusIds = [...idsCombined].filter(src => this._ALL_CORPUS_IDS_LOWER.has(src.toLowerCase()));
106
+ if (duplicateCorpusIds.length) {
107
+ ALL_ERRORS.push(`${file} :: "${propContents}"/"${propData}" id${duplicateCorpusIds.length === 1 ? "" : "s"} exist in other documents; ids were: ${duplicateCorpusIds.map(id => `"${id}"`).join(", ")}`);
108
+ }
109
+ duplicateCorpusIds.forEach(id => this._ALL_CORPUS_IDS_LOWER.add(id.toLowerCase()));
110
+
102
111
  if (MiscUtil.setEq(idsContents, idsData)) return;
103
112
 
104
113
  const lstContents = [...idsContents].sort((a, b) => a.localeCompare(b, {sensitivity: "base"}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "5etools-utils",
3
- "version": "0.12.76",
3
+ "version": "0.12.78",
4
4
  "description": "Shared utilities for the 5etools ecosystem.",
5
5
  "type": "module",
6
6
  "main": "lib/Api.js",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "adventures.json",
4
- "version": "1.10.24",
4
+ "version": "1.10.25",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this adventure in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "books.json",
4
- "version": "1.2.13",
4
+ "version": "1.2.14",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this book in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.10.29",
3
+ "version": "1.10.30",
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": {
@@ -10,7 +10,7 @@
10
10
  "type": "object",
11
11
  "properties": {
12
12
  "id": {
13
- "type": "string"
13
+ "$ref": "util.json#/$defs/corpusId"
14
14
  },
15
15
  "source": {
16
16
  "$ref": "util.json#/$defs/source"
@@ -8,15 +8,15 @@
8
8
  "sources": {
9
9
  "type": "string",
10
10
  "enum": [
11
- "CoS",
11
+ "PHB",
12
12
  "DMG",
13
+ "MM",
14
+ "CoS",
13
15
  "EEPC",
14
16
  "EET",
15
17
  "HotDQ",
16
18
  "LMoP",
17
- "MM",
18
19
  "OotA",
19
- "PHB",
20
20
  "PotA",
21
21
  "RoT",
22
22
  "RoTOS",
@@ -114,17 +114,21 @@
114
114
  "VEoR",
115
115
  "GHLoE",
116
116
  "DoDk",
117
- "HWCS",
118
- "HWAitW",
119
117
  "ToB1-2023",
118
+ "XPHB",
119
+ "XDMG",
120
+ "XMM",
120
121
  "TD",
121
122
  "Screen",
122
123
  "ScreenWildernessKit",
123
124
  "ScreenDungeonKit",
124
125
  "ScreenSpelljammer",
126
+ "XScreen",
125
127
  "HF",
126
128
  "HFFotM",
127
129
  "HFStCM",
130
+ "PaF",
131
+ "HFDoMM",
128
132
  "CM",
129
133
  "NRH",
130
134
  "NRH-TCMC",
@@ -146,6 +150,9 @@
146
150
  "DitLCoT",
147
151
  "VNotEE",
148
152
  "LRDT",
153
+ "UtHftLH",
154
+ "ScoEE",
155
+ "HBTD",
149
156
  "ALCurseOfStrahd",
150
157
  "ALElementalEvil",
151
158
  "ALRageOfDemons",
@@ -3,7 +3,7 @@
3
3
  "$id": "util.json",
4
4
  "title": "Util",
5
5
  "description": "Utility definitions to be used in other schemas.",
6
- "version": "1.17.20",
6
+ "version": "1.17.22",
7
7
  "$defs": {
8
8
  "metaDependenciesArray": {
9
9
  "type": "array",
@@ -55,6 +55,17 @@
55
55
  }
56
56
  ]
57
57
  },
58
+ "corpusId": {
59
+ "description": "An ID that will be used to refer to this corpus (adventure/book) in tags.",
60
+ "anyOf": [
61
+ {
62
+ "$ref": "#/$defs/_sourceString"
63
+ },
64
+ {
65
+ "$ref": "sources-homebrew-legacy.json#/$defs/sourcesColon"
66
+ }
67
+ ]
68
+ },
58
69
  "sourceJson": {
59
70
  "anyOf": [
60
71
  {
@@ -221,7 +232,8 @@
221
232
  "propNameStats": {
222
233
  "type": "string",
223
234
  "enum": [
224
- "subclass"
235
+ "subclass",
236
+ "monsterFluff"
225
237
  ]
226
238
  },
227
239
  "abilityScoreAbbreviation": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "adventures.json",
4
- "version": "1.10.24",
4
+ "version": "1.10.25",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this adventure in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "books.json",
4
- "version": "1.2.13",
4
+ "version": "1.2.14",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this book in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.10.29",
3
+ "version": "1.10.30",
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": {
@@ -10,7 +10,7 @@
10
10
  "type": "object",
11
11
  "properties": {
12
12
  "id": {
13
- "type": "string"
13
+ "$ref": "util.json#/$defs/corpusId"
14
14
  },
15
15
  "source": {
16
16
  "$ref": "util.json#/$defs/source"
@@ -8,15 +8,15 @@
8
8
  "sources": {
9
9
  "type": "string",
10
10
  "enum": [
11
- "CoS",
11
+ "PHB",
12
12
  "DMG",
13
+ "MM",
14
+ "CoS",
13
15
  "EEPC",
14
16
  "EET",
15
17
  "HotDQ",
16
18
  "LMoP",
17
- "MM",
18
19
  "OotA",
19
- "PHB",
20
20
  "PotA",
21
21
  "RoT",
22
22
  "RoTOS",
@@ -114,17 +114,21 @@
114
114
  "VEoR",
115
115
  "GHLoE",
116
116
  "DoDk",
117
- "HWCS",
118
- "HWAitW",
119
117
  "ToB1-2023",
118
+ "XPHB",
119
+ "XDMG",
120
+ "XMM",
120
121
  "TD",
121
122
  "Screen",
122
123
  "ScreenWildernessKit",
123
124
  "ScreenDungeonKit",
124
125
  "ScreenSpelljammer",
126
+ "XScreen",
125
127
  "HF",
126
128
  "HFFotM",
127
129
  "HFStCM",
130
+ "PaF",
131
+ "HFDoMM",
128
132
  "CM",
129
133
  "NRH",
130
134
  "NRH-TCMC",
@@ -146,6 +150,9 @@
146
150
  "DitLCoT",
147
151
  "VNotEE",
148
152
  "LRDT",
153
+ "UtHftLH",
154
+ "ScoEE",
155
+ "HBTD",
149
156
  "ALCurseOfStrahd",
150
157
  "ALElementalEvil",
151
158
  "ALRageOfDemons",
@@ -3,7 +3,7 @@
3
3
  "$id": "util.json",
4
4
  "title": "Util",
5
5
  "description": "Utility definitions to be used in other schemas.",
6
- "version": "1.17.20",
6
+ "version": "1.17.22",
7
7
  "$defs": {
8
8
  "metaDependenciesArray": {
9
9
  "type": "array",
@@ -55,6 +55,17 @@
55
55
  }
56
56
  ]
57
57
  },
58
+ "corpusId": {
59
+ "description": "An ID that will be used to refer to this corpus (adventure/book) in tags.",
60
+ "anyOf": [
61
+ {
62
+ "$ref": "#/$defs/_sourceString"
63
+ },
64
+ {
65
+ "$ref": "sources-homebrew-legacy.json#/$defs/sourcesColon"
66
+ }
67
+ ]
68
+ },
58
69
  "sourceJson": {
59
70
  "anyOf": [
60
71
  {
@@ -221,7 +232,8 @@
221
232
  "propNameStats": {
222
233
  "type": "string",
223
234
  "enum": [
224
- "subclass"
235
+ "subclass",
236
+ "monsterFluff"
225
237
  ]
226
238
  },
227
239
  "abilityScoreAbbreviation": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "adventures.json",
4
- "version": "1.10.24",
4
+ "version": "1.10.25",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this adventure in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "books.json",
4
- "version": "1.2.13",
4
+ "version": "1.2.14",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this book in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.10.29",
3
+ "version": "1.10.30",
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": {
@@ -10,7 +10,7 @@
10
10
  "type": "object",
11
11
  "properties": {
12
12
  "id": {
13
- "type": "string"
13
+ "$ref": "util.json#/$defs/corpusId"
14
14
  },
15
15
  "source": {
16
16
  "$ref": "util.json#/$defs/source"
@@ -8,15 +8,15 @@
8
8
  "sources": {
9
9
  "type": "string",
10
10
  "enum": [
11
- "CoS",
11
+ "PHB",
12
12
  "DMG",
13
+ "MM",
14
+ "CoS",
13
15
  "EEPC",
14
16
  "EET",
15
17
  "HotDQ",
16
18
  "LMoP",
17
- "MM",
18
19
  "OotA",
19
- "PHB",
20
20
  "PotA",
21
21
  "RoT",
22
22
  "RoTOS",
@@ -114,17 +114,21 @@
114
114
  "VEoR",
115
115
  "GHLoE",
116
116
  "DoDk",
117
- "HWCS",
118
- "HWAitW",
119
117
  "ToB1-2023",
118
+ "XPHB",
119
+ "XDMG",
120
+ "XMM",
120
121
  "TD",
121
122
  "Screen",
122
123
  "ScreenWildernessKit",
123
124
  "ScreenDungeonKit",
124
125
  "ScreenSpelljammer",
126
+ "XScreen",
125
127
  "HF",
126
128
  "HFFotM",
127
129
  "HFStCM",
130
+ "PaF",
131
+ "HFDoMM",
128
132
  "CM",
129
133
  "NRH",
130
134
  "NRH-TCMC",
@@ -146,6 +150,9 @@
146
150
  "DitLCoT",
147
151
  "VNotEE",
148
152
  "LRDT",
153
+ "UtHftLH",
154
+ "ScoEE",
155
+ "HBTD",
149
156
  "ALCurseOfStrahd",
150
157
  "ALElementalEvil",
151
158
  "ALRageOfDemons",
@@ -3,7 +3,7 @@
3
3
  "$id": "util.json",
4
4
  "title": "Util",
5
5
  "description": "Utility definitions to be used in other schemas.",
6
- "version": "1.17.20",
6
+ "version": "1.17.22",
7
7
  "$defs": {
8
8
  "metaDependenciesArray": {
9
9
  "type": "array",
@@ -52,6 +52,14 @@
52
52
  }
53
53
  ]
54
54
  },
55
+ "corpusId": {
56
+ "description": "An ID that will be used to refer to this corpus (adventure/book) in tags.",
57
+ "anyOf": [
58
+ {
59
+ "$ref": "#/$defs/_sourceString"
60
+ }
61
+ ]
62
+ },
55
63
  "sourceJson": {
56
64
  "anyOf": [
57
65
  {
@@ -205,7 +213,8 @@
205
213
  "propNameStats": {
206
214
  "type": "string",
207
215
  "enum": [
208
- "subclass"
216
+ "subclass",
217
+ "monsterFluff"
209
218
  ]
210
219
  },
211
220
  "abilityScoreAbbreviation": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "adventures.json",
4
- "version": "1.10.24",
4
+ "version": "1.10.25",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this adventure in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "books.json",
4
- "version": "1.2.13",
4
+ "version": "1.2.14",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this book in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.10.29",
3
+ "version": "1.10.30",
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": {
@@ -10,7 +10,7 @@
10
10
  "type": "object",
11
11
  "properties": {
12
12
  "id": {
13
- "type": "string"
13
+ "$ref": "util.json#/$defs/corpusId"
14
14
  },
15
15
  "source": {
16
16
  "$ref": "util.json#/$defs/source"
@@ -8,15 +8,15 @@
8
8
  "sources": {
9
9
  "type": "string",
10
10
  "enum": [
11
- "CoS",
11
+ "PHB",
12
12
  "DMG",
13
+ "MM",
14
+ "CoS",
13
15
  "EEPC",
14
16
  "EET",
15
17
  "HotDQ",
16
18
  "LMoP",
17
- "MM",
18
19
  "OotA",
19
- "PHB",
20
20
  "PotA",
21
21
  "RoT",
22
22
  "RoTOS",
@@ -114,17 +114,21 @@
114
114
  "VEoR",
115
115
  "GHLoE",
116
116
  "DoDk",
117
- "HWCS",
118
- "HWAitW",
119
117
  "ToB1-2023",
118
+ "XPHB",
119
+ "XDMG",
120
+ "XMM",
120
121
  "TD",
121
122
  "Screen",
122
123
  "ScreenWildernessKit",
123
124
  "ScreenDungeonKit",
124
125
  "ScreenSpelljammer",
126
+ "XScreen",
125
127
  "HF",
126
128
  "HFFotM",
127
129
  "HFStCM",
130
+ "PaF",
131
+ "HFDoMM",
128
132
  "CM",
129
133
  "NRH",
130
134
  "NRH-TCMC",
@@ -146,6 +150,9 @@
146
150
  "DitLCoT",
147
151
  "VNotEE",
148
152
  "LRDT",
153
+ "UtHftLH",
154
+ "ScoEE",
155
+ "HBTD",
149
156
  "ALCurseOfStrahd",
150
157
  "ALElementalEvil",
151
158
  "ALRageOfDemons",
@@ -3,7 +3,7 @@
3
3
  "$id": "util.json",
4
4
  "title": "Util",
5
5
  "description": "Utility definitions to be used in other schemas.",
6
- "version": "1.17.20",
6
+ "version": "1.17.22",
7
7
  "$defs": {
8
8
  "metaDependenciesArray": {
9
9
  "type": "array",
@@ -52,6 +52,14 @@
52
52
  }
53
53
  ]
54
54
  },
55
+ "corpusId": {
56
+ "description": "An ID that will be used to refer to this corpus (adventure/book) in tags.",
57
+ "anyOf": [
58
+ {
59
+ "$ref": "#/$defs/_sourceString"
60
+ }
61
+ ]
62
+ },
55
63
  "sourceJson": {
56
64
  "anyOf": [
57
65
  {
@@ -205,7 +213,8 @@
205
213
  "propNameStats": {
206
214
  "type": "string",
207
215
  "enum": [
208
- "subclass"
216
+ "subclass",
217
+ "monsterFluff"
209
218
  ]
210
219
  },
211
220
  "abilityScoreAbbreviation": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "adventures.json",
4
- "version": "1.10.24",
4
+ "version": "1.10.25",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this adventure in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "books.json",
4
- "version": "1.2.13",
4
+ "version": "1.2.14",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this book in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.10.29",
3
+ "version": "1.10.30",
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": {
@@ -10,7 +10,7 @@
10
10
  "type": "object",
11
11
  "properties": {
12
12
  "id": {
13
- "type": "string"
13
+ "$ref": "util.json#/$defs/corpusId"
14
14
  },
15
15
  "source": {
16
16
  "$ref": "util.json#/$defs/source"
@@ -8,15 +8,15 @@
8
8
  "sources": {
9
9
  "type": "string",
10
10
  "enum": [
11
- "CoS",
11
+ "PHB",
12
12
  "DMG",
13
+ "MM",
14
+ "CoS",
13
15
  "EEPC",
14
16
  "EET",
15
17
  "HotDQ",
16
18
  "LMoP",
17
- "MM",
18
19
  "OotA",
19
- "PHB",
20
20
  "PotA",
21
21
  "RoT",
22
22
  "RoTOS",
@@ -114,17 +114,21 @@
114
114
  "VEoR",
115
115
  "GHLoE",
116
116
  "DoDk",
117
- "HWCS",
118
- "HWAitW",
119
117
  "ToB1-2023",
118
+ "XPHB",
119
+ "XDMG",
120
+ "XMM",
120
121
  "TD",
121
122
  "Screen",
122
123
  "ScreenWildernessKit",
123
124
  "ScreenDungeonKit",
124
125
  "ScreenSpelljammer",
126
+ "XScreen",
125
127
  "HF",
126
128
  "HFFotM",
127
129
  "HFStCM",
130
+ "PaF",
131
+ "HFDoMM",
128
132
  "CM",
129
133
  "NRH",
130
134
  "NRH-TCMC",
@@ -146,6 +150,9 @@
146
150
  "DitLCoT",
147
151
  "VNotEE",
148
152
  "LRDT",
153
+ "UtHftLH",
154
+ "ScoEE",
155
+ "HBTD",
149
156
  "ALCurseOfStrahd",
150
157
  "ALElementalEvil",
151
158
  "ALRageOfDemons",
@@ -3,7 +3,7 @@
3
3
  "$id": "util.json",
4
4
  "title": "Util",
5
5
  "description": "Utility definitions to be used in other schemas.",
6
- "version": "1.17.20",
6
+ "version": "1.17.22",
7
7
  "$defs": {
8
8
  "metaDependenciesArray": {
9
9
  "type": "array",
@@ -51,6 +51,14 @@
51
51
  }
52
52
  ]
53
53
  },
54
+ "corpusId": {
55
+ "description": "An ID that will be used to refer to this corpus (adventure/book) in tags.",
56
+ "anyOf": [
57
+ {
58
+ "$ref": "#/$defs/_sourceString"
59
+ }
60
+ ]
61
+ },
54
62
  "sourceJson": {
55
63
  "anyOf": [
56
64
  {
@@ -216,7 +224,8 @@
216
224
  "propNameStats": {
217
225
  "type": "string",
218
226
  "enum": [
219
- "subclass"
227
+ "subclass",
228
+ "monsterFluff"
220
229
  ]
221
230
  },
222
231
  "abilityScoreAbbreviation": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "adventures.json",
4
- "version": "1.10.24",
4
+ "version": "1.10.25",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this adventure in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "books.json",
4
- "version": "1.2.13",
4
+ "version": "1.2.14",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -18,8 +18,7 @@
18
18
  "$ref": "util.json#/$defs/alias"
19
19
  },
20
20
  "id": {
21
- "type": "string",
22
- "description": "An ID that will be used to refer to this book in tags."
21
+ "$ref": "util.json#/$defs/corpusId"
23
22
  },
24
23
  "source": {
25
24
  "$ref": "util.json#/$defs/source"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.10.29",
3
+ "version": "1.10.30",
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": {
@@ -10,7 +10,7 @@
10
10
  "type": "object",
11
11
  "properties": {
12
12
  "id": {
13
- "type": "string"
13
+ "$ref": "util.json#/$defs/corpusId"
14
14
  },
15
15
  "source": {
16
16
  "$ref": "util.json#/$defs/source"
@@ -8,15 +8,15 @@
8
8
  "sources": {
9
9
  "type": "string",
10
10
  "enum": [
11
- "CoS",
11
+ "PHB",
12
12
  "DMG",
13
+ "MM",
14
+ "CoS",
13
15
  "EEPC",
14
16
  "EET",
15
17
  "HotDQ",
16
18
  "LMoP",
17
- "MM",
18
19
  "OotA",
19
- "PHB",
20
20
  "PotA",
21
21
  "RoT",
22
22
  "RoTOS",
@@ -114,17 +114,21 @@
114
114
  "VEoR",
115
115
  "GHLoE",
116
116
  "DoDk",
117
- "HWCS",
118
- "HWAitW",
119
117
  "ToB1-2023",
118
+ "XPHB",
119
+ "XDMG",
120
+ "XMM",
120
121
  "TD",
121
122
  "Screen",
122
123
  "ScreenWildernessKit",
123
124
  "ScreenDungeonKit",
124
125
  "ScreenSpelljammer",
126
+ "XScreen",
125
127
  "HF",
126
128
  "HFFotM",
127
129
  "HFStCM",
130
+ "PaF",
131
+ "HFDoMM",
128
132
  "CM",
129
133
  "NRH",
130
134
  "NRH-TCMC",
@@ -146,6 +150,9 @@
146
150
  "DitLCoT",
147
151
  "VNotEE",
148
152
  "LRDT",
153
+ "UtHftLH",
154
+ "ScoEE",
155
+ "HBTD",
149
156
  "ALCurseOfStrahd",
150
157
  "ALElementalEvil",
151
158
  "ALRageOfDemons",
@@ -3,7 +3,7 @@
3
3
  "$id": "util.json",
4
4
  "title": "Util",
5
5
  "description": "Utility definitions to be used in other schemas.",
6
- "version": "1.17.20",
6
+ "version": "1.17.22",
7
7
  "$defs": {
8
8
  "metaDependenciesArray": {
9
9
  "type": "array",
@@ -51,6 +51,14 @@
51
51
  }
52
52
  ]
53
53
  },
54
+ "corpusId": {
55
+ "description": "An ID that will be used to refer to this corpus (adventure/book) in tags.",
56
+ "anyOf": [
57
+ {
58
+ "$ref": "#/$defs/_sourceString"
59
+ }
60
+ ]
61
+ },
54
62
  "sourceJson": {
55
63
  "anyOf": [
56
64
  {
@@ -216,7 +224,8 @@
216
224
  "propNameStats": {
217
225
  "type": "string",
218
226
  "enum": [
219
- "subclass"
227
+ "subclass",
228
+ "monsterFluff"
220
229
  ]
221
230
  },
222
231
  "abilityScoreAbbreviation": {