5etools-utils 0.8.37 → 0.9.0
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/README.md +1 -0
- package/bin/test-json-ua.js +5 -0
- package/lib/BrewTester.js +2 -2
- package/lib/TestJson.js +19 -6
- package/package.json +2 -1
- package/schema/site/util.json +1 -1
- package/schema/site-fast/util.json +1 -1
- package/schema/ua/actions.json +97 -0
- package/schema/ua/adventure/adventure.json +12 -0
- package/schema/ua/adventures.json +214 -0
- package/schema/ua/backgrounds.json +314 -0
- package/schema/ua/bestiary/bestiary.json +3735 -0
- package/schema/ua/bestiary/fluff-bestiary.json +15 -0
- package/schema/ua/bestiary/fluff-index.json +11 -0
- package/schema/ua/bestiary/foundry.json +15 -0
- package/schema/ua/bestiary/index.json +11 -0
- package/schema/ua/bestiary/legendarygroups.json +202 -0
- package/schema/ua/bestiary/template.json +275 -0
- package/schema/ua/book/book.json +12 -0
- package/schema/ua/books.json +141 -0
- package/schema/ua/changelog.json +35 -0
- package/schema/ua/charcreationoptions.json +80 -0
- package/schema/ua/class/class.json +1782 -0
- package/schema/ua/class/foundry.json +397 -0
- package/schema/ua/class/index.json +11 -0
- package/schema/ua/conditionsdiseases.json +82 -0
- package/schema/ua/cultsboons.json +175 -0
- package/schema/ua/decks.json +504 -0
- package/schema/ua/deities.json +473 -0
- package/schema/ua/encounters.json +105 -0
- package/schema/ua/entry.json +3748 -0
- package/schema/ua/feats.json +117 -0
- package/schema/ua/fluff-backgrounds.json +15 -0
- package/schema/ua/fluff-charcreationoptions.json +43 -0
- package/schema/ua/fluff-conditionsdiseases.json +43 -0
- package/schema/ua/fluff-feats.json +15 -0
- package/schema/ua/fluff-items.json +15 -0
- package/schema/ua/fluff-languages.json +42 -0
- package/schema/ua/fluff-objects.json +15 -0
- package/schema/ua/fluff-races.json +214 -0
- package/schema/ua/fluff-recipes.json +42 -0
- package/schema/ua/fluff-vehicles.json +63 -0
- package/schema/ua/foundry-actions.json +15 -0
- package/schema/ua/foundry-backgrounds.json +53 -0
- package/schema/ua/foundry-feats.json +15 -0
- package/schema/ua/foundry-items.json +63 -0
- package/schema/ua/foundry-optionalfeatures.json +15 -0
- package/schema/ua/foundry-psionics.json +56 -0
- package/schema/ua/foundry-races.json +58 -0
- package/schema/ua/foundry-rewards.json +15 -0
- package/schema/ua/foundry-vehicles.json +15 -0
- package/schema/ua/generated/bookref-quick.json +72 -0
- package/schema/ua/generated/gendata-spell-source-lookup.json +230 -0
- package/schema/ua/homebrew.json +633 -0
- package/schema/ua/items-base.json +959 -0
- package/schema/ua/items-shared.json +267 -0
- package/schema/ua/items.json +1770 -0
- package/schema/ua/languages.json +123 -0
- package/schema/ua/life.json +17 -0
- package/schema/ua/loot.json +510 -0
- package/schema/ua/magicvariants.json +361 -0
- package/schema/ua/makebrew-creature.json +66 -0
- package/schema/ua/makecards.json +43 -0
- package/schema/ua/monsterfeatures.json +53 -0
- package/schema/ua/msbcr.json +60 -0
- package/schema/ua/names.json +94 -0
- package/schema/ua/objects.json +165 -0
- package/schema/ua/optionalfeatures.json +130 -0
- package/schema/ua/psionics.json +173 -0
- package/schema/ua/races.json +1650 -0
- package/schema/ua/recipes.json +185 -0
- package/schema/ua/renderdemo.json +16 -0
- package/schema/ua/rewards.json +93 -0
- package/schema/ua/senses.json +54 -0
- package/schema/ua/skills.json +54 -0
- package/schema/ua/spells/fluff-index.json +11 -0
- package/schema/ua/spells/fluff-spells.json +15 -0
- package/schema/ua/spells/foundry.json +15 -0
- package/schema/ua/spells/index.json +11 -0
- package/schema/ua/spells/roll20.json +112 -0
- package/schema/ua/spells/spells.json +1190 -0
- package/schema/ua/tables.json +220 -0
- package/schema/ua/trapshazards.json +236 -0
- package/schema/ua/util.json +4420 -0
- package/schema/ua/variantrules.json +74 -0
- package/schema/ua/vehicles.json +820 -0
- package/schema/ua-fast/actions.json +97 -0
- package/schema/ua-fast/adventure/adventure.json +12 -0
- package/schema/ua-fast/adventures.json +214 -0
- package/schema/ua-fast/backgrounds.json +314 -0
- package/schema/ua-fast/bestiary/bestiary.json +3735 -0
- package/schema/ua-fast/bestiary/fluff-bestiary.json +15 -0
- package/schema/ua-fast/bestiary/fluff-index.json +11 -0
- package/schema/ua-fast/bestiary/foundry.json +15 -0
- package/schema/ua-fast/bestiary/index.json +11 -0
- package/schema/ua-fast/bestiary/legendarygroups.json +202 -0
- package/schema/ua-fast/bestiary/template.json +275 -0
- package/schema/ua-fast/book/book.json +12 -0
- package/schema/ua-fast/books.json +141 -0
- package/schema/ua-fast/changelog.json +35 -0
- package/schema/ua-fast/charcreationoptions.json +80 -0
- package/schema/ua-fast/class/class.json +1782 -0
- package/schema/ua-fast/class/foundry.json +397 -0
- package/schema/ua-fast/class/index.json +11 -0
- package/schema/ua-fast/conditionsdiseases.json +82 -0
- package/schema/ua-fast/cultsboons.json +175 -0
- package/schema/ua-fast/decks.json +504 -0
- package/schema/ua-fast/deities.json +473 -0
- package/schema/ua-fast/encounters.json +105 -0
- package/schema/ua-fast/entry.json +3748 -0
- package/schema/ua-fast/feats.json +117 -0
- package/schema/ua-fast/fluff-backgrounds.json +15 -0
- package/schema/ua-fast/fluff-charcreationoptions.json +43 -0
- package/schema/ua-fast/fluff-conditionsdiseases.json +43 -0
- package/schema/ua-fast/fluff-feats.json +15 -0
- package/schema/ua-fast/fluff-items.json +15 -0
- package/schema/ua-fast/fluff-languages.json +42 -0
- package/schema/ua-fast/fluff-objects.json +15 -0
- package/schema/ua-fast/fluff-races.json +214 -0
- package/schema/ua-fast/fluff-recipes.json +42 -0
- package/schema/ua-fast/fluff-vehicles.json +63 -0
- package/schema/ua-fast/foundry-actions.json +15 -0
- package/schema/ua-fast/foundry-backgrounds.json +53 -0
- package/schema/ua-fast/foundry-feats.json +15 -0
- package/schema/ua-fast/foundry-items.json +63 -0
- package/schema/ua-fast/foundry-optionalfeatures.json +15 -0
- package/schema/ua-fast/foundry-psionics.json +56 -0
- package/schema/ua-fast/foundry-races.json +58 -0
- package/schema/ua-fast/foundry-rewards.json +15 -0
- package/schema/ua-fast/foundry-vehicles.json +15 -0
- package/schema/ua-fast/generated/bookref-quick.json +72 -0
- package/schema/ua-fast/generated/gendata-spell-source-lookup.json +230 -0
- package/schema/ua-fast/homebrew.json +631 -0
- package/schema/ua-fast/items-base.json +959 -0
- package/schema/ua-fast/items-shared.json +267 -0
- package/schema/ua-fast/items.json +1770 -0
- package/schema/ua-fast/languages.json +123 -0
- package/schema/ua-fast/life.json +17 -0
- package/schema/ua-fast/loot.json +510 -0
- package/schema/ua-fast/magicvariants.json +361 -0
- package/schema/ua-fast/makebrew-creature.json +66 -0
- package/schema/ua-fast/makecards.json +43 -0
- package/schema/ua-fast/monsterfeatures.json +53 -0
- package/schema/ua-fast/msbcr.json +60 -0
- package/schema/ua-fast/names.json +94 -0
- package/schema/ua-fast/objects.json +165 -0
- package/schema/ua-fast/optionalfeatures.json +130 -0
- package/schema/ua-fast/psionics.json +173 -0
- package/schema/ua-fast/races.json +1650 -0
- package/schema/ua-fast/recipes.json +185 -0
- package/schema/ua-fast/renderdemo.json +16 -0
- package/schema/ua-fast/rewards.json +93 -0
- package/schema/ua-fast/senses.json +54 -0
- package/schema/ua-fast/skills.json +54 -0
- package/schema/ua-fast/spells/fluff-index.json +11 -0
- package/schema/ua-fast/spells/fluff-spells.json +15 -0
- package/schema/ua-fast/spells/foundry.json +15 -0
- package/schema/ua-fast/spells/index.json +11 -0
- package/schema/ua-fast/spells/roll20.json +112 -0
- package/schema/ua-fast/spells/spells.json +1190 -0
- package/schema/ua-fast/tables.json +220 -0
- package/schema/ua-fast/trapshazards.json +236 -0
- package/schema/ua-fast/util.json +4420 -0
- package/schema/ua-fast/variantrules.json +74 -0
- package/schema/ua-fast/vehicles.json +820 -0
package/README.md
CHANGED
package/lib/BrewTester.js
CHANGED
|
@@ -10,7 +10,7 @@ class _BrewTesterJson {
|
|
|
10
10
|
static _LOG_TAG = "JSON";
|
|
11
11
|
static _IS_FAIL_SLOW = !!process.env.FAIL_SLOW;
|
|
12
12
|
|
|
13
|
-
static async pRun (args) {
|
|
13
|
+
static async pRun (args, {mode = "brew"} = {}) {
|
|
14
14
|
const program = new Command()
|
|
15
15
|
.argument("[file]", "File to test")
|
|
16
16
|
.option("--dir <dir>", "Directory to test")
|
|
@@ -19,7 +19,7 @@ class _BrewTesterJson {
|
|
|
19
19
|
program.parse(args);
|
|
20
20
|
const opts = program.opts();
|
|
21
21
|
|
|
22
|
-
const jsonTester = new JsonTester({
|
|
22
|
+
const jsonTester = new JsonTester({mode, tagLog: this._LOG_TAG, fnGetSchemaId: () => "homebrew.json"});
|
|
23
23
|
|
|
24
24
|
let results;
|
|
25
25
|
if (program.args[0]) {
|
package/lib/TestJson.js
CHANGED
|
@@ -18,6 +18,12 @@ const _IS_TRIM_RESULTS = !process.env.VET_TEST_JSON_RESULTS_UNTRIMMED;
|
|
|
18
18
|
|
|
19
19
|
const LOG_TAG = "JSON";
|
|
20
20
|
|
|
21
|
+
const MODES = {
|
|
22
|
+
SITE: "site",
|
|
23
|
+
BREW: "brew",
|
|
24
|
+
UA: "ua",
|
|
25
|
+
};
|
|
26
|
+
|
|
21
27
|
class JsonTester {
|
|
22
28
|
static _RE_DATE = /^\d\d\d\d-\d\d-\d\d$/;
|
|
23
29
|
|
|
@@ -25,18 +31,20 @@ class JsonTester {
|
|
|
25
31
|
{
|
|
26
32
|
fnGetSchemaId,
|
|
27
33
|
|
|
28
|
-
|
|
34
|
+
mode = null,
|
|
29
35
|
dirSchema = null,
|
|
30
36
|
tagLog = LOG_TAG,
|
|
31
37
|
},
|
|
32
38
|
) {
|
|
33
|
-
if (
|
|
39
|
+
if (mode && dirSchema) throw new Error(`"mode" and "dirSchema" are mutually exclusive!`);
|
|
40
|
+
if (mode != null && !Object.values(MODES).includes(mode)) throw new Error(`"mode" must be one of ${Object.values(MODES).join("/")}!`);
|
|
34
41
|
if (!fnGetSchemaId) throw new Error(`"fnGetSchemaId" is required!`);
|
|
35
42
|
|
|
36
43
|
this._dirSchemaSite = path.join(__dirname, "..", "schema", "site");
|
|
37
44
|
this._dirSchemaBrew = path.join(__dirname, "..", "schema", "brew");
|
|
45
|
+
this._dirSchemaUa = path.join(__dirname, "..", "schema", "ua");
|
|
38
46
|
|
|
39
|
-
this._dirSchema = dirSchema ?? (
|
|
47
|
+
this._dirSchema = dirSchema ?? (mode === "site" ? this._dirSchemaSite : mode === "brew" ? this._dirSchemaBrew : this._dirSchemaSite);
|
|
40
48
|
this._tagLog = tagLog;
|
|
41
49
|
this._fnGetSchemaId = fnGetSchemaId;
|
|
42
50
|
|
|
@@ -113,9 +121,14 @@ class JsonTester {
|
|
|
113
121
|
}
|
|
114
122
|
|
|
115
123
|
doLoadSchema (type, relativeFilePath) {
|
|
116
|
-
if (!
|
|
117
|
-
|
|
118
|
-
const dir =
|
|
124
|
+
if (!Object.values(MODES).includes(type)) throw new Error(`Unknown schema type "${type}"`);
|
|
125
|
+
|
|
126
|
+
const dir = {
|
|
127
|
+
[MODES.SITE]: this._dirSchemaSite,
|
|
128
|
+
[MODES.BREW]: this._dirSchemaBrew,
|
|
129
|
+
[MODES.UA]: this._dirSchemaUa,
|
|
130
|
+
}[type];
|
|
131
|
+
if (!dir) throw new Error(`Unhandled type "${type}"!`);
|
|
119
132
|
|
|
120
133
|
this._ajv.addSchema(
|
|
121
134
|
Uf.readJsonSync(path.join(dir, relativeFilePath)),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "5etools-utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Shared utilities for the 5etools ecosystem.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/Api.js",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"bin": {
|
|
15
15
|
"test-json-brew": "bin/test-json-brew.js",
|
|
16
|
+
"test-json-ua": "bin/test-json-ua.js",
|
|
16
17
|
"test-file-extensions": "bin/test-file-extensions.js",
|
|
17
18
|
"test-file-locations": "bin/test-file-locations.js"
|
|
18
19
|
},
|
package/schema/site/util.json
CHANGED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "actions.json",
|
|
4
|
+
"version": "1.2.0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"$defs": {
|
|
7
|
+
"action": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"name": {
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
"entries": {
|
|
14
|
+
"type": "array",
|
|
15
|
+
"items": {
|
|
16
|
+
"$ref": "entry.json"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"source": {
|
|
20
|
+
"$ref": "util.json#/$defs/source"
|
|
21
|
+
},
|
|
22
|
+
"page": {
|
|
23
|
+
"$ref": "util.json#/$defs/page"
|
|
24
|
+
},
|
|
25
|
+
"fromVariant": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "UID of a \"variantrule\" to be linked as a footnote in the action."
|
|
28
|
+
},
|
|
29
|
+
"time": {
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {
|
|
32
|
+
"oneOf": [
|
|
33
|
+
{
|
|
34
|
+
"type": "string"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"type": "object",
|
|
38
|
+
"properties": {
|
|
39
|
+
"unit": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"enum": [
|
|
42
|
+
"action",
|
|
43
|
+
"bonus",
|
|
44
|
+
"reaction"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"number": {
|
|
48
|
+
"type": "integer"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"required": [
|
|
52
|
+
"unit",
|
|
53
|
+
"number"
|
|
54
|
+
],
|
|
55
|
+
"additionalProperties": false
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"srd": {
|
|
61
|
+
"$ref": "util.json#/$defs/srd"
|
|
62
|
+
},
|
|
63
|
+
"basicRules": {
|
|
64
|
+
"$ref": "util.json#/$defs/basicRules"
|
|
65
|
+
},
|
|
66
|
+
"seeAlsoAction": {
|
|
67
|
+
"type": "array",
|
|
68
|
+
"items": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"description": "UIDs of \"action\"s to be linked in a \"See Also\" footnote.\nEx.: \"disarm|dmg\"."
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"required": [
|
|
75
|
+
"name",
|
|
76
|
+
"entries",
|
|
77
|
+
"source",
|
|
78
|
+
"page"
|
|
79
|
+
],
|
|
80
|
+
"additionalProperties": false
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"properties": {
|
|
84
|
+
"action": {
|
|
85
|
+
"type": "array",
|
|
86
|
+
"minItems": 1,
|
|
87
|
+
"uniqueItems": true,
|
|
88
|
+
"items": {
|
|
89
|
+
"$ref": "#/$defs/action"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"required": [
|
|
94
|
+
"action"
|
|
95
|
+
],
|
|
96
|
+
"additionalProperties": false
|
|
97
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "adventure.json",
|
|
4
|
+
"version": "1.2.0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"data": {
|
|
8
|
+
"$ref": "../util.json#/$defs/adventureBookData"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"additionalProperties": false
|
|
12
|
+
}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "adventures.json",
|
|
4
|
+
"version": "1.10.11",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"adventure": {
|
|
8
|
+
"type": "array",
|
|
9
|
+
"minItems": 1,
|
|
10
|
+
"uniqueItems": true,
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"properties": {
|
|
14
|
+
"name": {
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
"alias": {
|
|
18
|
+
"$ref": "util.json#/$defs/alias"
|
|
19
|
+
},
|
|
20
|
+
"id": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "An ID that will be used to refer to this adventure in tags."
|
|
23
|
+
},
|
|
24
|
+
"source": {
|
|
25
|
+
"$ref": "util.json#/$defs/source"
|
|
26
|
+
},
|
|
27
|
+
"parentSource": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "Used for books that contain multiple adventures, e.g. TftYP",
|
|
30
|
+
"$ref": "util.json#/$defs/source"
|
|
31
|
+
},
|
|
32
|
+
"group": {
|
|
33
|
+
"description": "The group under which this adventure should be listed in the navbar.",
|
|
34
|
+
"type": "string",
|
|
35
|
+
"enum": [
|
|
36
|
+
"supplement",
|
|
37
|
+
"supplement-alt",
|
|
38
|
+
"prerelease",
|
|
39
|
+
"homebrew",
|
|
40
|
+
"other"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"contents": {
|
|
44
|
+
"description": "The linked Table of Contents of the adventure.",
|
|
45
|
+
"type": "array",
|
|
46
|
+
"minItems": 1,
|
|
47
|
+
"items": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"name": {
|
|
51
|
+
"type": "string"
|
|
52
|
+
},
|
|
53
|
+
"headers": {
|
|
54
|
+
"type": "array",
|
|
55
|
+
"minItems": 1,
|
|
56
|
+
"items": {
|
|
57
|
+
"oneOf": [
|
|
58
|
+
{
|
|
59
|
+
"type": "string"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"type": "object",
|
|
63
|
+
"properties": {
|
|
64
|
+
"depth": {
|
|
65
|
+
"type": "integer"
|
|
66
|
+
},
|
|
67
|
+
"header": {
|
|
68
|
+
"type": "string"
|
|
69
|
+
},
|
|
70
|
+
"index": {
|
|
71
|
+
"description": "The relative index of this header in the current chapter, i.e. if \"Treasure\" appears twice and you wish the contents entry to link to the second instance, set the \"index\" to 1.",
|
|
72
|
+
"type": "integer"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"required": [
|
|
76
|
+
"header"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"ordinal": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"properties": {
|
|
85
|
+
"type": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"enum": [
|
|
88
|
+
"chapter",
|
|
89
|
+
"appendix",
|
|
90
|
+
"part",
|
|
91
|
+
"episode",
|
|
92
|
+
"level"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"identifier": {
|
|
96
|
+
"type": [
|
|
97
|
+
"integer",
|
|
98
|
+
"string"
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"additionalProperties": false,
|
|
103
|
+
"required": [
|
|
104
|
+
"type",
|
|
105
|
+
"identifier"
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"additionalProperties": false,
|
|
110
|
+
"required": [
|
|
111
|
+
"name"
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"level": {
|
|
116
|
+
"description": "The character levels that the adventure ranges across.",
|
|
117
|
+
"oneOf": [
|
|
118
|
+
{
|
|
119
|
+
"type": "object",
|
|
120
|
+
"properties": {
|
|
121
|
+
"start": {
|
|
122
|
+
"type": "integer"
|
|
123
|
+
},
|
|
124
|
+
"end": {
|
|
125
|
+
"type": "integer"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"additionalProperties": false,
|
|
129
|
+
"required": [
|
|
130
|
+
"start",
|
|
131
|
+
"end"
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"type": "object",
|
|
136
|
+
"properties": {
|
|
137
|
+
"custom": {
|
|
138
|
+
"type": "string"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"additionalProperties": false,
|
|
142
|
+
"required": [
|
|
143
|
+
"custom"
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
"published": {
|
|
149
|
+
"type": "string",
|
|
150
|
+
"format": "date",
|
|
151
|
+
"description": "The date of publication of the adventure, in the format YYYY-MM-DD (RFC3339)."
|
|
152
|
+
},
|
|
153
|
+
"publishedOrder": {
|
|
154
|
+
"description": "A sorting order for adventures within a single source.",
|
|
155
|
+
"type": "integer"
|
|
156
|
+
},
|
|
157
|
+
"coverUrl": {
|
|
158
|
+
"description": "A direct link to an image which should be 300 x 300px in size. Larger images will be centred and cropped.",
|
|
159
|
+
"type": "string"
|
|
160
|
+
},
|
|
161
|
+
"storyline": {
|
|
162
|
+
"type": "string",
|
|
163
|
+
"enum": [
|
|
164
|
+
"Starter Set",
|
|
165
|
+
"Tyranny of Dragons",
|
|
166
|
+
"Elemental Evil",
|
|
167
|
+
"Rage of Demons",
|
|
168
|
+
"Ravenloft",
|
|
169
|
+
"Storm King's Thunder",
|
|
170
|
+
"Tales from the Yawning Portal",
|
|
171
|
+
"Tomb of Annihilation",
|
|
172
|
+
"Waterdeep",
|
|
173
|
+
"Ravnica",
|
|
174
|
+
"Extra Life",
|
|
175
|
+
"Ghosts of Saltmarsh",
|
|
176
|
+
"Acquisitions Incorporated",
|
|
177
|
+
"Essentials Kit",
|
|
178
|
+
"Stranger Things",
|
|
179
|
+
"Baldur's Gate",
|
|
180
|
+
"Eberron",
|
|
181
|
+
"Rick and Morty",
|
|
182
|
+
"Wildemount",
|
|
183
|
+
"Icewind Dale",
|
|
184
|
+
"Mythic Odysseys of Theros",
|
|
185
|
+
"Candlekeep Mysteries",
|
|
186
|
+
"Adventures in the Forgotten Realms",
|
|
187
|
+
"The Wild Beyond the Witchlight",
|
|
188
|
+
"Ixalan",
|
|
189
|
+
"NERDS Restoring Harmony",
|
|
190
|
+
"Strixhaven",
|
|
191
|
+
"Critical Role",
|
|
192
|
+
"Journeys through the Radiant Citadel",
|
|
193
|
+
"Spelljammer",
|
|
194
|
+
"Dragonlance",
|
|
195
|
+
"Keys from the Golden Vault"
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"additionalProperties": false,
|
|
200
|
+
"required": [
|
|
201
|
+
"name",
|
|
202
|
+
"id",
|
|
203
|
+
"source",
|
|
204
|
+
"contents",
|
|
205
|
+
"level",
|
|
206
|
+
"published",
|
|
207
|
+
"storyline",
|
|
208
|
+
"group"
|
|
209
|
+
]
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"additionalProperties": false
|
|
214
|
+
}
|