5etools-utils 0.14.15 → 0.14.17

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.14.15",
3
+ "version": "0.14.17",
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.32",
4
+ "version": "1.10.33",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -24,10 +24,7 @@
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
26
  "parentSource": {
27
- "type": "string",
28
- "description": "Used for books that contain multiple adventures, e.g. TftYP",
29
- "$ref": "util.json#/$defs/source",
30
- "markdownDescription": "Used for books that contain multiple adventures, e.g. TftYP"
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
31
28
  },
32
29
  "group": {
33
30
  "description": "The group under which this adventure should be listed in the navbar.",
@@ -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.17",
4
+ "version": "1.2.18",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -23,6 +23,9 @@
23
23
  "source": {
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
+ "parentSource": {
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
28
+ },
26
29
  "legacy": {
27
30
  "$ref": "util.json#/$defs/legacy"
28
31
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "corpus-shared.json",
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "$defs": {
6
6
  "corpusCover": {
7
7
  "description": "A link to an image. Preferred sizes are 300 x 300px or 600 x 600px.",
@@ -87,6 +87,12 @@
87
87
  "format": "date",
88
88
  "description": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339).",
89
89
  "markdownDescription": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339)."
90
+ },
91
+ "corpusParentSource": {
92
+ "type": "string",
93
+ "description": "Used for sources which contain multiple adventures, e.g. TftYP, or \"packages\" of related books, e.g. SAiS.",
94
+ "$ref": "util.json#/$defs/source",
95
+ "markdownDescription": "Used for sources which contain multiple adventures, e.g. TftYP, or "packages" of related books, e.g. SAiS."
90
96
  }
91
97
  }
92
98
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "encounters.json",
4
- "version": "1.3.2",
4
+ "version": "1.3.3",
5
5
  "title": "EncounterArray",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -28,12 +28,9 @@
28
28
  ],
29
29
  "additionalProperties": false
30
30
  },
31
- "encounterTable": {
31
+ "_encounterTableShared": {
32
32
  "type": "object",
33
33
  "properties": {
34
- "caption": {
35
- "type": "string"
36
- },
37
34
  "minlvl": {
38
35
  "type": "integer"
39
36
  },
@@ -64,6 +61,85 @@
64
61
  ],
65
62
  "additionalProperties": false
66
63
  },
64
+ "encounterTable": {
65
+ "anyOf": [
66
+ {
67
+ "type": "object",
68
+ "properties": {
69
+ "minlvl": {
70
+ "type": "integer"
71
+ },
72
+ "maxlvl": {
73
+ "type": "integer"
74
+ },
75
+ "diceExpression": {
76
+ "type": "string"
77
+ },
78
+ "rollAttitude": {
79
+ "type": "boolean"
80
+ },
81
+ "table": {
82
+ "type": "array",
83
+ "items": {
84
+ "$ref": "#/$defs/encounterTableRow"
85
+ }
86
+ },
87
+ "footnotes": {
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "entry.json"
91
+ }
92
+ },
93
+ "caption": {
94
+ "type": "string"
95
+ }
96
+ },
97
+ "required": [
98
+ "table"
99
+ ],
100
+ "additionalProperties": false
101
+ },
102
+ {
103
+ "type": "object",
104
+ "properties": {
105
+ "minlvl": {
106
+ "type": "integer"
107
+ },
108
+ "maxlvl": {
109
+ "type": "integer"
110
+ },
111
+ "diceExpression": {
112
+ "type": "string"
113
+ },
114
+ "rollAttitude": {
115
+ "type": "boolean"
116
+ },
117
+ "table": {
118
+ "type": "array",
119
+ "items": {
120
+ "$ref": "#/$defs/encounterTableRow"
121
+ }
122
+ },
123
+ "footnotes": {
124
+ "type": "array",
125
+ "items": {
126
+ "$ref": "entry.json"
127
+ }
128
+ },
129
+ "captionPrefix": {
130
+ "type": "string"
131
+ },
132
+ "captionSuffix": {
133
+ "type": "string"
134
+ }
135
+ },
136
+ "required": [
137
+ "table"
138
+ ],
139
+ "additionalProperties": false
140
+ }
141
+ ]
142
+ },
67
143
  "encounter": {
68
144
  "type": "object",
69
145
  "properties": {
@@ -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.32",
4
+ "version": "1.10.33",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -24,10 +24,7 @@
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
26
  "parentSource": {
27
- "type": "string",
28
- "description": "Used for books that contain multiple adventures, e.g. TftYP",
29
- "$ref": "util.json#/$defs/source",
30
- "markdownDescription": "Used for books that contain multiple adventures, e.g. TftYP"
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
31
28
  },
32
29
  "group": {
33
30
  "description": "The group under which this adventure should be listed in the navbar.",
@@ -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.17",
4
+ "version": "1.2.18",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -23,6 +23,9 @@
23
23
  "source": {
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
+ "parentSource": {
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
28
+ },
26
29
  "legacy": {
27
30
  "$ref": "util.json#/$defs/legacy"
28
31
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "corpus-shared.json",
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "$defs": {
6
6
  "corpusCover": {
7
7
  "description": "A link to an image. Preferred sizes are 300 x 300px or 600 x 600px.",
@@ -87,6 +87,12 @@
87
87
  "format": "date",
88
88
  "description": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339).",
89
89
  "markdownDescription": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339)."
90
+ },
91
+ "corpusParentSource": {
92
+ "type": "string",
93
+ "description": "Used for sources which contain multiple adventures, e.g. TftYP, or \"packages\" of related books, e.g. SAiS.",
94
+ "$ref": "util.json#/$defs/source",
95
+ "markdownDescription": "Used for sources which contain multiple adventures, e.g. TftYP, or "packages" of related books, e.g. SAiS."
90
96
  }
91
97
  }
92
98
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "encounters.json",
4
- "version": "1.3.2",
4
+ "version": "1.3.3",
5
5
  "title": "EncounterArray",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -28,12 +28,9 @@
28
28
  ],
29
29
  "additionalProperties": false
30
30
  },
31
- "encounterTable": {
31
+ "_encounterTableShared": {
32
32
  "type": "object",
33
33
  "properties": {
34
- "caption": {
35
- "type": "string"
36
- },
37
34
  "minlvl": {
38
35
  "type": "integer"
39
36
  },
@@ -64,6 +61,85 @@
64
61
  ],
65
62
  "additionalProperties": false
66
63
  },
64
+ "encounterTable": {
65
+ "anyOf": [
66
+ {
67
+ "type": "object",
68
+ "properties": {
69
+ "minlvl": {
70
+ "type": "integer"
71
+ },
72
+ "maxlvl": {
73
+ "type": "integer"
74
+ },
75
+ "diceExpression": {
76
+ "type": "string"
77
+ },
78
+ "rollAttitude": {
79
+ "type": "boolean"
80
+ },
81
+ "table": {
82
+ "type": "array",
83
+ "items": {
84
+ "$ref": "#/$defs/encounterTableRow"
85
+ }
86
+ },
87
+ "footnotes": {
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "entry.json"
91
+ }
92
+ },
93
+ "caption": {
94
+ "type": "string"
95
+ }
96
+ },
97
+ "required": [
98
+ "table"
99
+ ],
100
+ "additionalProperties": false
101
+ },
102
+ {
103
+ "type": "object",
104
+ "properties": {
105
+ "minlvl": {
106
+ "type": "integer"
107
+ },
108
+ "maxlvl": {
109
+ "type": "integer"
110
+ },
111
+ "diceExpression": {
112
+ "type": "string"
113
+ },
114
+ "rollAttitude": {
115
+ "type": "boolean"
116
+ },
117
+ "table": {
118
+ "type": "array",
119
+ "items": {
120
+ "$ref": "#/$defs/encounterTableRow"
121
+ }
122
+ },
123
+ "footnotes": {
124
+ "type": "array",
125
+ "items": {
126
+ "$ref": "entry.json"
127
+ }
128
+ },
129
+ "captionPrefix": {
130
+ "type": "string"
131
+ },
132
+ "captionSuffix": {
133
+ "type": "string"
134
+ }
135
+ },
136
+ "required": [
137
+ "table"
138
+ ],
139
+ "additionalProperties": false
140
+ }
141
+ ]
142
+ },
67
143
  "encounter": {
68
144
  "type": "object",
69
145
  "properties": {
@@ -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.32",
4
+ "version": "1.10.33",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -24,10 +24,7 @@
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
26
  "parentSource": {
27
- "type": "string",
28
- "description": "Used for books that contain multiple adventures, e.g. TftYP",
29
- "$ref": "util.json#/$defs/source",
30
- "markdownDescription": "Used for books that contain multiple adventures, e.g. TftYP"
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
31
28
  },
32
29
  "group": {
33
30
  "description": "The group under which this adventure should be listed in the navbar.",
@@ -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.17",
4
+ "version": "1.2.18",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -23,6 +23,9 @@
23
23
  "source": {
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
+ "parentSource": {
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
28
+ },
26
29
  "legacy": {
27
30
  "$ref": "util.json#/$defs/legacy"
28
31
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "corpus-shared.json",
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "$defs": {
6
6
  "corpusCover": {
7
7
  "description": "A link to an image. Preferred sizes are 300 x 300px or 600 x 600px.",
@@ -87,6 +87,12 @@
87
87
  "format": "date",
88
88
  "description": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339).",
89
89
  "markdownDescription": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339)."
90
+ },
91
+ "corpusParentSource": {
92
+ "type": "string",
93
+ "description": "Used for sources which contain multiple adventures, e.g. TftYP, or \"packages\" of related books, e.g. SAiS.",
94
+ "$ref": "util.json#/$defs/source",
95
+ "markdownDescription": "Used for sources which contain multiple adventures, e.g. TftYP, or "packages" of related books, e.g. SAiS."
90
96
  }
91
97
  }
92
98
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "encounters.json",
4
- "version": "1.3.2",
4
+ "version": "1.3.3",
5
5
  "title": "EncounterArray",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -28,12 +28,9 @@
28
28
  ],
29
29
  "additionalProperties": false
30
30
  },
31
- "encounterTable": {
31
+ "_encounterTableShared": {
32
32
  "type": "object",
33
33
  "properties": {
34
- "caption": {
35
- "type": "string"
36
- },
37
34
  "minlvl": {
38
35
  "type": "integer"
39
36
  },
@@ -64,6 +61,85 @@
64
61
  ],
65
62
  "additionalProperties": false
66
63
  },
64
+ "encounterTable": {
65
+ "anyOf": [
66
+ {
67
+ "type": "object",
68
+ "properties": {
69
+ "minlvl": {
70
+ "type": "integer"
71
+ },
72
+ "maxlvl": {
73
+ "type": "integer"
74
+ },
75
+ "diceExpression": {
76
+ "type": "string"
77
+ },
78
+ "rollAttitude": {
79
+ "type": "boolean"
80
+ },
81
+ "table": {
82
+ "type": "array",
83
+ "items": {
84
+ "$ref": "#/$defs/encounterTableRow"
85
+ }
86
+ },
87
+ "footnotes": {
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "entry.json"
91
+ }
92
+ },
93
+ "caption": {
94
+ "type": "string"
95
+ }
96
+ },
97
+ "required": [
98
+ "table"
99
+ ],
100
+ "additionalProperties": false
101
+ },
102
+ {
103
+ "type": "object",
104
+ "properties": {
105
+ "minlvl": {
106
+ "type": "integer"
107
+ },
108
+ "maxlvl": {
109
+ "type": "integer"
110
+ },
111
+ "diceExpression": {
112
+ "type": "string"
113
+ },
114
+ "rollAttitude": {
115
+ "type": "boolean"
116
+ },
117
+ "table": {
118
+ "type": "array",
119
+ "items": {
120
+ "$ref": "#/$defs/encounterTableRow"
121
+ }
122
+ },
123
+ "footnotes": {
124
+ "type": "array",
125
+ "items": {
126
+ "$ref": "entry.json"
127
+ }
128
+ },
129
+ "captionPrefix": {
130
+ "type": "string"
131
+ },
132
+ "captionSuffix": {
133
+ "type": "string"
134
+ }
135
+ },
136
+ "required": [
137
+ "table"
138
+ ],
139
+ "additionalProperties": false
140
+ }
141
+ ]
142
+ },
67
143
  "encounter": {
68
144
  "type": "object",
69
145
  "properties": {
@@ -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.32",
4
+ "version": "1.10.33",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -24,10 +24,7 @@
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
26
  "parentSource": {
27
- "type": "string",
28
- "description": "Used for books that contain multiple adventures, e.g. TftYP",
29
- "$ref": "util.json#/$defs/source",
30
- "markdownDescription": "Used for books that contain multiple adventures, e.g. TftYP"
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
31
28
  },
32
29
  "group": {
33
30
  "description": "The group under which this adventure should be listed in the navbar.",
@@ -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.17",
4
+ "version": "1.2.18",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -23,6 +23,9 @@
23
23
  "source": {
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
+ "parentSource": {
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
28
+ },
26
29
  "legacy": {
27
30
  "$ref": "util.json#/$defs/legacy"
28
31
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "corpus-shared.json",
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "$defs": {
6
6
  "corpusCover": {
7
7
  "description": "A link to an image. Preferred sizes are 300 x 300px or 600 x 600px.",
@@ -87,6 +87,12 @@
87
87
  "format": "date",
88
88
  "description": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339).",
89
89
  "markdownDescription": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339)."
90
+ },
91
+ "corpusParentSource": {
92
+ "type": "string",
93
+ "description": "Used for sources which contain multiple adventures, e.g. TftYP, or \"packages\" of related books, e.g. SAiS.",
94
+ "$ref": "util.json#/$defs/source",
95
+ "markdownDescription": "Used for sources which contain multiple adventures, e.g. TftYP, or "packages" of related books, e.g. SAiS."
90
96
  }
91
97
  }
92
98
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "encounters.json",
4
- "version": "1.3.2",
4
+ "version": "1.3.3",
5
5
  "title": "EncounterArray",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -28,12 +28,9 @@
28
28
  ],
29
29
  "additionalProperties": false
30
30
  },
31
- "encounterTable": {
31
+ "_encounterTableShared": {
32
32
  "type": "object",
33
33
  "properties": {
34
- "caption": {
35
- "type": "string"
36
- },
37
34
  "minlvl": {
38
35
  "type": "integer"
39
36
  },
@@ -64,6 +61,85 @@
64
61
  ],
65
62
  "additionalProperties": false
66
63
  },
64
+ "encounterTable": {
65
+ "anyOf": [
66
+ {
67
+ "type": "object",
68
+ "properties": {
69
+ "minlvl": {
70
+ "type": "integer"
71
+ },
72
+ "maxlvl": {
73
+ "type": "integer"
74
+ },
75
+ "diceExpression": {
76
+ "type": "string"
77
+ },
78
+ "rollAttitude": {
79
+ "type": "boolean"
80
+ },
81
+ "table": {
82
+ "type": "array",
83
+ "items": {
84
+ "$ref": "#/$defs/encounterTableRow"
85
+ }
86
+ },
87
+ "footnotes": {
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "entry.json"
91
+ }
92
+ },
93
+ "caption": {
94
+ "type": "string"
95
+ }
96
+ },
97
+ "required": [
98
+ "table"
99
+ ],
100
+ "additionalProperties": false
101
+ },
102
+ {
103
+ "type": "object",
104
+ "properties": {
105
+ "minlvl": {
106
+ "type": "integer"
107
+ },
108
+ "maxlvl": {
109
+ "type": "integer"
110
+ },
111
+ "diceExpression": {
112
+ "type": "string"
113
+ },
114
+ "rollAttitude": {
115
+ "type": "boolean"
116
+ },
117
+ "table": {
118
+ "type": "array",
119
+ "items": {
120
+ "$ref": "#/$defs/encounterTableRow"
121
+ }
122
+ },
123
+ "footnotes": {
124
+ "type": "array",
125
+ "items": {
126
+ "$ref": "entry.json"
127
+ }
128
+ },
129
+ "captionPrefix": {
130
+ "type": "string"
131
+ },
132
+ "captionSuffix": {
133
+ "type": "string"
134
+ }
135
+ },
136
+ "required": [
137
+ "table"
138
+ ],
139
+ "additionalProperties": false
140
+ }
141
+ ]
142
+ },
67
143
  "encounter": {
68
144
  "type": "object",
69
145
  "properties": {
@@ -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.32",
4
+ "version": "1.10.33",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -24,10 +24,7 @@
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
26
  "parentSource": {
27
- "type": "string",
28
- "description": "Used for books that contain multiple adventures, e.g. TftYP",
29
- "$ref": "util.json#/$defs/source",
30
- "markdownDescription": "Used for books that contain multiple adventures, e.g. TftYP"
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
31
28
  },
32
29
  "group": {
33
30
  "description": "The group under which this adventure should be listed in the navbar.",
@@ -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.17",
4
+ "version": "1.2.18",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -23,6 +23,9 @@
23
23
  "source": {
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
+ "parentSource": {
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
28
+ },
26
29
  "legacy": {
27
30
  "$ref": "util.json#/$defs/legacy"
28
31
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "corpus-shared.json",
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "$defs": {
6
6
  "corpusCover": {
7
7
  "description": "A link to an image. Preferred sizes are 300 x 300px or 600 x 600px.",
@@ -87,6 +87,12 @@
87
87
  "format": "date",
88
88
  "description": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339).",
89
89
  "markdownDescription": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339)."
90
+ },
91
+ "corpusParentSource": {
92
+ "type": "string",
93
+ "description": "Used for sources which contain multiple adventures, e.g. TftYP, or \"packages\" of related books, e.g. SAiS.",
94
+ "$ref": "util.json#/$defs/source",
95
+ "markdownDescription": "Used for sources which contain multiple adventures, e.g. TftYP, or "packages" of related books, e.g. SAiS."
90
96
  }
91
97
  }
92
98
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "encounters.json",
4
- "version": "1.3.2",
4
+ "version": "1.3.3",
5
5
  "title": "EncounterArray",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -28,12 +28,9 @@
28
28
  ],
29
29
  "additionalProperties": false
30
30
  },
31
- "encounterTable": {
31
+ "_encounterTableShared": {
32
32
  "type": "object",
33
33
  "properties": {
34
- "caption": {
35
- "type": "string"
36
- },
37
34
  "minlvl": {
38
35
  "type": "integer"
39
36
  },
@@ -64,6 +61,85 @@
64
61
  ],
65
62
  "additionalProperties": false
66
63
  },
64
+ "encounterTable": {
65
+ "anyOf": [
66
+ {
67
+ "type": "object",
68
+ "properties": {
69
+ "minlvl": {
70
+ "type": "integer"
71
+ },
72
+ "maxlvl": {
73
+ "type": "integer"
74
+ },
75
+ "diceExpression": {
76
+ "type": "string"
77
+ },
78
+ "rollAttitude": {
79
+ "type": "boolean"
80
+ },
81
+ "table": {
82
+ "type": "array",
83
+ "items": {
84
+ "$ref": "#/$defs/encounterTableRow"
85
+ }
86
+ },
87
+ "footnotes": {
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "entry.json"
91
+ }
92
+ },
93
+ "caption": {
94
+ "type": "string"
95
+ }
96
+ },
97
+ "required": [
98
+ "table"
99
+ ],
100
+ "additionalProperties": false
101
+ },
102
+ {
103
+ "type": "object",
104
+ "properties": {
105
+ "minlvl": {
106
+ "type": "integer"
107
+ },
108
+ "maxlvl": {
109
+ "type": "integer"
110
+ },
111
+ "diceExpression": {
112
+ "type": "string"
113
+ },
114
+ "rollAttitude": {
115
+ "type": "boolean"
116
+ },
117
+ "table": {
118
+ "type": "array",
119
+ "items": {
120
+ "$ref": "#/$defs/encounterTableRow"
121
+ }
122
+ },
123
+ "footnotes": {
124
+ "type": "array",
125
+ "items": {
126
+ "$ref": "entry.json"
127
+ }
128
+ },
129
+ "captionPrefix": {
130
+ "type": "string"
131
+ },
132
+ "captionSuffix": {
133
+ "type": "string"
134
+ }
135
+ },
136
+ "required": [
137
+ "table"
138
+ ],
139
+ "additionalProperties": false
140
+ }
141
+ ]
142
+ },
67
143
  "encounter": {
68
144
  "type": "object",
69
145
  "properties": {
@@ -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.32",
4
+ "version": "1.10.33",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "adventure": {
@@ -24,10 +24,7 @@
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
26
  "parentSource": {
27
- "type": "string",
28
- "description": "Used for books that contain multiple adventures, e.g. TftYP",
29
- "$ref": "util.json#/$defs/source",
30
- "markdownDescription": "Used for books that contain multiple adventures, e.g. TftYP"
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
31
28
  },
32
29
  "group": {
33
30
  "description": "The group under which this adventure should be listed in the navbar.",
@@ -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.17",
4
+ "version": "1.2.18",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "book": {
@@ -23,6 +23,9 @@
23
23
  "source": {
24
24
  "$ref": "util.json#/$defs/source"
25
25
  },
26
+ "parentSource": {
27
+ "$ref": "corpus-shared.json#/$defs/corpusParentSource"
28
+ },
26
29
  "legacy": {
27
30
  "$ref": "util.json#/$defs/legacy"
28
31
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "corpus-shared.json",
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "$defs": {
6
6
  "corpusCover": {
7
7
  "description": "A link to an image. Preferred sizes are 300 x 300px or 600 x 600px.",
@@ -87,6 +87,12 @@
87
87
  "format": "date",
88
88
  "description": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339).",
89
89
  "markdownDescription": "The date of publication of the book, in the format YYYY-MM-DD (RFC3339)."
90
+ },
91
+ "corpusParentSource": {
92
+ "type": "string",
93
+ "description": "Used for sources which contain multiple adventures, e.g. TftYP, or \"packages\" of related books, e.g. SAiS.",
94
+ "$ref": "util.json#/$defs/source",
95
+ "markdownDescription": "Used for sources which contain multiple adventures, e.g. TftYP, or "packages" of related books, e.g. SAiS."
90
96
  }
91
97
  }
92
98
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "encounters.json",
4
- "version": "1.3.2",
4
+ "version": "1.3.3",
5
5
  "title": "EncounterArray",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -28,12 +28,9 @@
28
28
  ],
29
29
  "additionalProperties": false
30
30
  },
31
- "encounterTable": {
31
+ "_encounterTableShared": {
32
32
  "type": "object",
33
33
  "properties": {
34
- "caption": {
35
- "type": "string"
36
- },
37
34
  "minlvl": {
38
35
  "type": "integer"
39
36
  },
@@ -64,6 +61,85 @@
64
61
  ],
65
62
  "additionalProperties": false
66
63
  },
64
+ "encounterTable": {
65
+ "anyOf": [
66
+ {
67
+ "type": "object",
68
+ "properties": {
69
+ "minlvl": {
70
+ "type": "integer"
71
+ },
72
+ "maxlvl": {
73
+ "type": "integer"
74
+ },
75
+ "diceExpression": {
76
+ "type": "string"
77
+ },
78
+ "rollAttitude": {
79
+ "type": "boolean"
80
+ },
81
+ "table": {
82
+ "type": "array",
83
+ "items": {
84
+ "$ref": "#/$defs/encounterTableRow"
85
+ }
86
+ },
87
+ "footnotes": {
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "entry.json"
91
+ }
92
+ },
93
+ "caption": {
94
+ "type": "string"
95
+ }
96
+ },
97
+ "required": [
98
+ "table"
99
+ ],
100
+ "additionalProperties": false
101
+ },
102
+ {
103
+ "type": "object",
104
+ "properties": {
105
+ "minlvl": {
106
+ "type": "integer"
107
+ },
108
+ "maxlvl": {
109
+ "type": "integer"
110
+ },
111
+ "diceExpression": {
112
+ "type": "string"
113
+ },
114
+ "rollAttitude": {
115
+ "type": "boolean"
116
+ },
117
+ "table": {
118
+ "type": "array",
119
+ "items": {
120
+ "$ref": "#/$defs/encounterTableRow"
121
+ }
122
+ },
123
+ "footnotes": {
124
+ "type": "array",
125
+ "items": {
126
+ "$ref": "entry.json"
127
+ }
128
+ },
129
+ "captionPrefix": {
130
+ "type": "string"
131
+ },
132
+ "captionSuffix": {
133
+ "type": "string"
134
+ }
135
+ },
136
+ "required": [
137
+ "table"
138
+ ],
139
+ "additionalProperties": false
140
+ }
141
+ ]
142
+ },
67
143
  "encounter": {
68
144
  "type": "object",
69
145
  "properties": {