optolith-database-schema 0.0.2 → 0.0.3

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/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.0.3](https://github.com/elyukai/optolith-database-schema/compare/v0.0.2...v0.0.3) (2022-03-05)
6
+
7
+
8
+ ### Features
9
+
10
+ * blessings ([8586a40](https://github.com/elyukai/optolith-database-schema/commit/8586a4026615ff6ebdc6cfb1e988d71828e5cd23))
11
+ * cantrips ([50397e8](https://github.com/elyukai/optolith-database-schema/commit/50397e83c9322dd36ef0cd28d2924128a6133a27))
12
+ * pact categories ([7b9cbc6](https://github.com/elyukai/optolith-database-schema/commit/7b9cbc66a5f13b40536d03a90f726fd9aff8c15a))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * liturgies do not have properties ([9b2c41d](https://github.com/elyukai/optolith-database-schema/commit/9b2c41dd9996abeac627b652cdb6ce0226760f2a))
18
+
5
19
  ### [0.0.2](https://github.com/elyukai/optolith-database-schema/compare/v0.0.1...v0.0.2) (2022-03-05)
6
20
 
7
21
 
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @main Blessing
3
+ */
4
+ import { Errata } from "./source/_Erratum";
5
+ import { PublicationRefs } from "./source/_PublicationRef";
6
+ import { Duration, TargetCategory } from "./_ActivatableSkill";
7
+ /**
8
+ * @title Blessing
9
+ */
10
+ export declare type Blessing = {
11
+ /**
12
+ * The blessing's identifier. An unique, increasing integer.
13
+ * @integer
14
+ * @minimum 1
15
+ */
16
+ id: number;
17
+ /**
18
+ * Measurable parameters of a blessing.
19
+ */
20
+ parameters: PerformanceParameters;
21
+ /**
22
+ * The target category – the kind of creature or object – the skill affects.
23
+ */
24
+ target: TargetCategory.T;
25
+ src: PublicationRefs;
26
+ /**
27
+ * All translations for the entry, identified by IETF language tag (BCP47).
28
+ * @minProperties 1
29
+ */
30
+ translations: {
31
+ /**
32
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
33
+ */
34
+ [localeId: string]: {
35
+ /**
36
+ * The name of the blessing.
37
+ * @minLength 1
38
+ */
39
+ name: string;
40
+ /**
41
+ * The effect description.
42
+ * @markdown
43
+ * @minLength 1
44
+ */
45
+ effect: string;
46
+ /**
47
+ * @deprecated
48
+ */
49
+ range: string;
50
+ /**
51
+ * @deprecated
52
+ */
53
+ duration: string;
54
+ /**
55
+ * @deprecated
56
+ */
57
+ target: string;
58
+ errata?: Errata;
59
+ };
60
+ };
61
+ };
62
+ /**
63
+ * Measurable parameters of a blessing.
64
+ */
65
+ declare type PerformanceParameters = {
66
+ range: {
67
+ tag: "Self";
68
+ } | {
69
+ tag: "Touch";
70
+ } | {
71
+ tag: "Fixed";
72
+ /**
73
+ * The range in steps/m.
74
+ * @integer
75
+ * @minimum 1
76
+ */
77
+ value: number;
78
+ };
79
+ duration: {
80
+ tag: "Immediate";
81
+ } | {
82
+ tag: "Fixed";
83
+ /**
84
+ * The (unitless) duration.
85
+ * @integer
86
+ * @minimum 1
87
+ */
88
+ value: number;
89
+ /**
90
+ * The duration unit.
91
+ */
92
+ unit: Duration.Unit;
93
+ } | {
94
+ tag: "Indefinite";
95
+ /**
96
+ * All translations for the entry, identified by IETF language tag (BCP47).
97
+ * @minProperties 1
98
+ */
99
+ translations: {
100
+ /**
101
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
102
+ */
103
+ [localeId: string]: {
104
+ /**
105
+ * A description of the duration.
106
+ */
107
+ description: {
108
+ /**
109
+ * The full description of the duration.
110
+ * @minLength 1
111
+ */
112
+ default: string;
113
+ /**
114
+ * A compressed description of the duration for use in small areas
115
+ * (e.g. on character sheet).
116
+ * @minLength 1
117
+ */
118
+ compressed: string;
119
+ };
120
+ };
121
+ };
122
+ };
123
+ };
124
+ export {};
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @main Blessing
3
+ */
4
+ export {};
@@ -0,0 +1,220 @@
1
+ /**
2
+ * @main Spell
3
+ */
4
+ import { Errata } from "./source/_Erratum";
5
+ import { PublicationRefs } from "./source/_PublicationRef";
6
+ import { Duration, Effect, TargetCategory } from "./_ActivatableSkill";
7
+ import { Enhancements } from "./_Enhancements";
8
+ import { ImprovementCost } from "./_ImprovementCost";
9
+ /**
10
+ * @title Spell
11
+ */
12
+ export declare type Spell = {
13
+ /**
14
+ * The spell's identifier. An unique, increasing integer.
15
+ * @integer
16
+ * @minimum 1
17
+ */
18
+ id: number;
19
+ /**
20
+ * Measurable parameters of a spell.
21
+ */
22
+ parameters: PerformanceParameters;
23
+ /**
24
+ * The target category – the kind of creature or object – the skill affects.
25
+ */
26
+ target: TargetCategory.T;
27
+ /**
28
+ * The property's identifier.
29
+ * @integer
30
+ * @minimum 1
31
+ */
32
+ property_id: number;
33
+ /**
34
+ * States which column is used to improve the skill.
35
+ */
36
+ improvement_cost: ImprovementCost;
37
+ /**
38
+ * A note specifying the dissemination of the cantrip in different traditions.
39
+ * Sometimes a cantrip is exclusively available to one or more specific
40
+ * traditions, but usually one the academies and traditions are listed the
41
+ * cantrip is most commonly teached in.
42
+ */
43
+ note: {
44
+ tag: "Exclusive";
45
+ /**
46
+ * The traditions the cantrip is exclusively available to.
47
+ * @minItems 1
48
+ * @uniqueItems
49
+ */
50
+ traditions: {
51
+ /**
52
+ * The magical tradition's identifier.
53
+ * @integer
54
+ * @minimum 2
55
+ */
56
+ id: number;
57
+ }[];
58
+ } | {
59
+ tag: "Common";
60
+ /**
61
+ * The academies and traditions the cantrip is commonly teached in.
62
+ * @minItems 1
63
+ * @uniqueItems
64
+ */
65
+ list: CommonNote[];
66
+ };
67
+ src: PublicationRefs;
68
+ /**
69
+ * All translations for the entry, identified by IETF language tag (BCP47).
70
+ * @minProperties 1
71
+ */
72
+ translations: {
73
+ /**
74
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
75
+ */
76
+ [localeId: string]: {
77
+ /**
78
+ * The name of the spell.
79
+ * @minLength 1
80
+ */
81
+ name: string;
82
+ /**
83
+ * The effect description may be either a plain text or a text that is
84
+ * divided by a list of effects for each quality level. It may also be a
85
+ * list for each two quality levels.
86
+ */
87
+ effect: Effect.T;
88
+ /**
89
+ * @deprecated
90
+ */
91
+ casting_time: {
92
+ full: string;
93
+ abbr: string;
94
+ };
95
+ /**
96
+ * @deprecated
97
+ */
98
+ cost: {
99
+ full: string;
100
+ abbr: string;
101
+ };
102
+ /**
103
+ * @deprecated
104
+ */
105
+ range: {
106
+ full: string;
107
+ abbr: string;
108
+ };
109
+ /**
110
+ * @deprecated
111
+ */
112
+ duration: {
113
+ full: string;
114
+ abbr: string;
115
+ };
116
+ /**
117
+ * @deprecated
118
+ */
119
+ target: string;
120
+ errata?: Errata;
121
+ };
122
+ };
123
+ enhancements?: Enhancements;
124
+ };
125
+ /**
126
+ * Measurable parameters of a blessing.
127
+ */
128
+ declare type PerformanceParameters = {
129
+ range: {
130
+ tag: "Self";
131
+ } | {
132
+ tag: "Touch";
133
+ } | {
134
+ tag: "Fixed";
135
+ /**
136
+ * The range in steps/m.
137
+ * @integer
138
+ * @minimum 1
139
+ */
140
+ value: number;
141
+ /**
142
+ * If `true`, the range is a radius.
143
+ */
144
+ is_radius?: true;
145
+ };
146
+ duration: {
147
+ tag: "Immediate";
148
+ } | {
149
+ tag: "Fixed";
150
+ /**
151
+ * If `true`, the duration is a maximum duration.
152
+ */
153
+ is_maximum?: true;
154
+ /**
155
+ * The (unitless) duration.
156
+ * @integer
157
+ * @minimum 1
158
+ */
159
+ value: number;
160
+ /**
161
+ * The duration unit.
162
+ */
163
+ unit: Duration.Unit;
164
+ } | {
165
+ tag: "DuringLovemaking";
166
+ /**
167
+ * The duration in rounds.
168
+ * @integer
169
+ * @minimum 1
170
+ */
171
+ value: number;
172
+ } | {
173
+ tag: "Indefinite";
174
+ /**
175
+ * All translations for the entry, identified by IETF language tag (BCP47).
176
+ * @minProperties 1
177
+ */
178
+ translations: {
179
+ /**
180
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
181
+ */
182
+ [localeId: string]: {
183
+ /**
184
+ * A description of the duration.
185
+ */
186
+ description: {
187
+ /**
188
+ * The full description of the duration.
189
+ * @minLength 1
190
+ */
191
+ default: string;
192
+ /**
193
+ * A compressed description of the duration for use in small areas
194
+ * (e.g. on character sheet).
195
+ * @minLength 1
196
+ */
197
+ compressed: string;
198
+ };
199
+ };
200
+ };
201
+ };
202
+ };
203
+ export declare type CommonNote = {
204
+ tag: "Academy";
205
+ /**
206
+ * The academy's curriculum identifier.
207
+ * @integer
208
+ * @minimum 1
209
+ */
210
+ id: number;
211
+ } | {
212
+ tag: "Tradition";
213
+ /**
214
+ * The magical tradition's identifier.
215
+ * @integer
216
+ * @minimum 2
217
+ */
218
+ id: number;
219
+ };
220
+ export {};
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @main Spell
3
+ */
4
+ export {};
@@ -34,12 +34,6 @@ export declare type Ceremony = {
34
34
  * The target category – the kind of creature or object – the skill affects.
35
35
  */
36
36
  target: TargetCategory.T;
37
- /**
38
- * The property's identifier.
39
- * @integer
40
- * @minimum 1
41
- */
42
- property_id: number;
43
37
  /**
44
38
  * The tradition(s) the ceremony is available for. Note that general aspects
45
39
  * do not have an associated tradition and thus need to be defined in a
@@ -34,12 +34,6 @@ export declare type LiturgicalChant = {
34
34
  * The target category – the kind of creature or object – the skill affects.
35
35
  */
36
36
  target: TargetCategory.T;
37
- /**
38
- * The property's identifier.
39
- * @integer
40
- * @minimum 1
41
- */
42
- property_id: number;
43
37
  /**
44
38
  * The tradition(s) the liturgical chant is available for. Note that general
45
39
  * aspects do not have an associated tradition and thus need to be defined in
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @main PactCategory
3
+ */
4
+ import { Errata } from "./source/_Erratum";
5
+ import { PublicationRefs } from "./source/_PublicationRef";
6
+ /**
7
+ * @title Pact Category
8
+ */
9
+ export declare type PactCategory = {
10
+ /**
11
+ * The pact category's identifier. An unique, increasing integer.
12
+ * @integer
13
+ * @minimum 1
14
+ */
15
+ id: number;
16
+ /**
17
+ * Types of creatures in this category.
18
+ * @minItems 1
19
+ */
20
+ types: {
21
+ /**
22
+ * The type's identifier. An unique, increasing integer.
23
+ * @integer
24
+ * @minimum 1
25
+ */
26
+ id: number;
27
+ /**
28
+ * All translations for the entry, identified by IETF language tag (BCP47).
29
+ * @minProperties 1
30
+ */
31
+ translations: {
32
+ /**
33
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
34
+ */
35
+ [localeId: string]: {
36
+ /**
37
+ * The name of the type.
38
+ * @minLength 1
39
+ */
40
+ name: string;
41
+ };
42
+ };
43
+ }[];
44
+ /**
45
+ * Domains in this category.
46
+ * @minItems 1
47
+ */
48
+ domains: {
49
+ /**
50
+ * The domain's identifier. An unique, increasing integer.
51
+ * @integer
52
+ * @minimum 1
53
+ */
54
+ id: number;
55
+ /**
56
+ * All translations for the entry, identified by IETF language tag (BCP47).
57
+ * @minProperties 1
58
+ */
59
+ translations: {
60
+ /**
61
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
62
+ */
63
+ [localeId: string]: {
64
+ /**
65
+ * The name of the domain.
66
+ * @minLength 1
67
+ */
68
+ name: string;
69
+ };
70
+ };
71
+ }[];
72
+ src: PublicationRefs;
73
+ /**
74
+ * All translations for the entry, identified by IETF language tag (BCP47).
75
+ * @minProperties 1
76
+ */
77
+ translations: {
78
+ /**
79
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
80
+ */
81
+ [localeId: string]: {
82
+ /**
83
+ * The name of the pact category.
84
+ * @minLength 1
85
+ */
86
+ name: string;
87
+ errata?: Errata;
88
+ };
89
+ };
90
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @main PactCategory
3
+ */
4
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
5
5
  "keywords": [
6
6
  "tde",
@@ -0,0 +1,227 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "Blessing.schema.json",
4
+ "$ref": "#/definitions/Blessing",
5
+ "definitions": {
6
+ "Blessing": {
7
+ "title": "Blessing",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The blessing's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "parameters": {
16
+ "description": "Measurable parameters of a blessing.",
17
+ "$ref": "#/definitions/PerformanceParameters"
18
+ },
19
+ "target": {
20
+ "description": "The target category – the kind of creature or object – the skill affects.",
21
+ "$ref": "./_ActivatableSkill.schema.json#/definitions/TargetCategory/T"
22
+ },
23
+ "src": {
24
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
25
+ },
26
+ "translations": {
27
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
28
+ "type": "object",
29
+ "patternProperties": {
30
+ "^[a-z]{2}-[A-Z]{2}$": {
31
+ "type": "object",
32
+ "properties": {
33
+ "name": {
34
+ "description": "The name of the blessing.",
35
+ "type": "string",
36
+ "minLength": 1
37
+ },
38
+ "effect": {
39
+ "description": "The effect description.",
40
+ "type": "string",
41
+ "minLength": 1
42
+ },
43
+ "range": {
44
+ "type": "string"
45
+ },
46
+ "duration": {
47
+ "type": "string"
48
+ },
49
+ "target": {
50
+ "type": "string"
51
+ },
52
+ "errata": {
53
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
54
+ }
55
+ },
56
+ "required": [
57
+ "name",
58
+ "effect",
59
+ "range",
60
+ "duration",
61
+ "target"
62
+ ],
63
+ "additionalProperties": false
64
+ }
65
+ },
66
+ "minProperties": 1,
67
+ "additionalProperties": false
68
+ }
69
+ },
70
+ "required": [
71
+ "id",
72
+ "parameters",
73
+ "target",
74
+ "src",
75
+ "translations"
76
+ ],
77
+ "additionalProperties": false
78
+ },
79
+ "PerformanceParameters": {
80
+ "description": "Measurable parameters of a blessing.",
81
+ "type": "object",
82
+ "properties": {
83
+ "range": {
84
+ "oneOf": [
85
+ {
86
+ "type": "object",
87
+ "properties": {
88
+ "tag": {
89
+ "const": "Self"
90
+ }
91
+ },
92
+ "required": [
93
+ "tag"
94
+ ],
95
+ "additionalProperties": false
96
+ },
97
+ {
98
+ "type": "object",
99
+ "properties": {
100
+ "tag": {
101
+ "const": "Touch"
102
+ }
103
+ },
104
+ "required": [
105
+ "tag"
106
+ ],
107
+ "additionalProperties": false
108
+ },
109
+ {
110
+ "type": "object",
111
+ "properties": {
112
+ "tag": {
113
+ "const": "Fixed"
114
+ },
115
+ "value": {
116
+ "description": "The range in steps/m.",
117
+ "type": "integer",
118
+ "minimum": 1
119
+ }
120
+ },
121
+ "required": [
122
+ "tag",
123
+ "value"
124
+ ],
125
+ "additionalProperties": false
126
+ }
127
+ ]
128
+ },
129
+ "duration": {
130
+ "oneOf": [
131
+ {
132
+ "type": "object",
133
+ "properties": {
134
+ "tag": {
135
+ "const": "Immediate"
136
+ }
137
+ },
138
+ "required": [
139
+ "tag"
140
+ ],
141
+ "additionalProperties": false
142
+ },
143
+ {
144
+ "type": "object",
145
+ "properties": {
146
+ "tag": {
147
+ "const": "Fixed"
148
+ },
149
+ "value": {
150
+ "description": "The (unitless) duration.",
151
+ "type": "integer",
152
+ "minimum": 1
153
+ },
154
+ "unit": {
155
+ "description": "The duration unit.",
156
+ "$ref": "./_ActivatableSkill.schema.json#/definitions/Duration/Unit"
157
+ }
158
+ },
159
+ "required": [
160
+ "tag",
161
+ "value",
162
+ "unit"
163
+ ],
164
+ "additionalProperties": false
165
+ },
166
+ {
167
+ "type": "object",
168
+ "properties": {
169
+ "tag": {
170
+ "const": "Indefinite"
171
+ },
172
+ "translations": {
173
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
174
+ "type": "object",
175
+ "patternProperties": {
176
+ "^[a-z]{2}-[A-Z]{2}$": {
177
+ "type": "object",
178
+ "properties": {
179
+ "description": {
180
+ "description": "A description of the duration.",
181
+ "type": "object",
182
+ "properties": {
183
+ "default": {
184
+ "description": "The full description of the duration.",
185
+ "type": "string",
186
+ "minLength": 1
187
+ },
188
+ "compressed": {
189
+ "description": "A compressed description of the duration for use in small areas\n(e.g. on character sheet).",
190
+ "type": "string",
191
+ "minLength": 1
192
+ }
193
+ },
194
+ "required": [
195
+ "default",
196
+ "compressed"
197
+ ],
198
+ "additionalProperties": false
199
+ }
200
+ },
201
+ "required": [
202
+ "description"
203
+ ],
204
+ "additionalProperties": false
205
+ }
206
+ },
207
+ "minProperties": 1,
208
+ "additionalProperties": false
209
+ }
210
+ },
211
+ "required": [
212
+ "tag",
213
+ "translations"
214
+ ],
215
+ "additionalProperties": false
216
+ }
217
+ ]
218
+ }
219
+ },
220
+ "required": [
221
+ "range",
222
+ "duration"
223
+ ],
224
+ "additionalProperties": false
225
+ }
226
+ }
227
+ }
@@ -0,0 +1,427 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "Cantrip.schema.json",
4
+ "$ref": "#/definitions/Spell",
5
+ "definitions": {
6
+ "Spell": {
7
+ "title": "Spell",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The spell's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "parameters": {
16
+ "description": "Measurable parameters of a spell.",
17
+ "$ref": "#/definitions/PerformanceParameters"
18
+ },
19
+ "target": {
20
+ "description": "The target category – the kind of creature or object – the skill affects.",
21
+ "$ref": "./_ActivatableSkill.schema.json#/definitions/TargetCategory/T"
22
+ },
23
+ "property_id": {
24
+ "description": "The property's identifier.",
25
+ "type": "integer",
26
+ "minimum": 1
27
+ },
28
+ "improvement_cost": {
29
+ "description": "States which column is used to improve the skill.",
30
+ "$ref": "./_ImprovementCost.schema.json#/definitions/ImprovementCost"
31
+ },
32
+ "note": {
33
+ "description": "A note specifying the dissemination of the cantrip in different traditions.\nSometimes a cantrip is exclusively available to one or more specific\ntraditions, but usually one the academies and traditions are listed the\ncantrip is most commonly teached in.",
34
+ "oneOf": [
35
+ {
36
+ "type": "object",
37
+ "properties": {
38
+ "tag": {
39
+ "const": "Exclusive"
40
+ },
41
+ "traditions": {
42
+ "description": "The traditions the cantrip is exclusively available to.",
43
+ "type": "array",
44
+ "items": {
45
+ "type": "object",
46
+ "properties": {
47
+ "id": {
48
+ "description": "The magical tradition's identifier.",
49
+ "type": "integer",
50
+ "minimum": 2
51
+ }
52
+ },
53
+ "required": [
54
+ "id"
55
+ ],
56
+ "additionalProperties": false
57
+ },
58
+ "minItems": 1,
59
+ "uniqueItems": true
60
+ }
61
+ },
62
+ "required": [
63
+ "tag",
64
+ "traditions"
65
+ ],
66
+ "additionalProperties": false
67
+ },
68
+ {
69
+ "type": "object",
70
+ "properties": {
71
+ "tag": {
72
+ "const": "Common"
73
+ },
74
+ "list": {
75
+ "description": "The academies and traditions the cantrip is commonly teached in.",
76
+ "type": "array",
77
+ "items": {
78
+ "$ref": "#/definitions/CommonNote"
79
+ },
80
+ "minItems": 1,
81
+ "uniqueItems": true
82
+ }
83
+ },
84
+ "required": [
85
+ "tag",
86
+ "list"
87
+ ],
88
+ "additionalProperties": false
89
+ }
90
+ ]
91
+ },
92
+ "src": {
93
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
94
+ },
95
+ "translations": {
96
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
97
+ "type": "object",
98
+ "patternProperties": {
99
+ "^[a-z]{2}-[A-Z]{2}$": {
100
+ "type": "object",
101
+ "properties": {
102
+ "name": {
103
+ "description": "The name of the spell.",
104
+ "type": "string",
105
+ "minLength": 1
106
+ },
107
+ "effect": {
108
+ "description": "The effect description may be either a plain text or a text that is\ndivided by a list of effects for each quality level. It may also be a\nlist for each two quality levels.",
109
+ "$ref": "./_ActivatableSkill.schema.json#/definitions/Effect/T"
110
+ },
111
+ "casting_time": {
112
+ "type": "object",
113
+ "properties": {
114
+ "full": {
115
+ "type": "string"
116
+ },
117
+ "abbr": {
118
+ "type": "string"
119
+ }
120
+ },
121
+ "required": [
122
+ "full",
123
+ "abbr"
124
+ ],
125
+ "additionalProperties": false
126
+ },
127
+ "cost": {
128
+ "type": "object",
129
+ "properties": {
130
+ "full": {
131
+ "type": "string"
132
+ },
133
+ "abbr": {
134
+ "type": "string"
135
+ }
136
+ },
137
+ "required": [
138
+ "full",
139
+ "abbr"
140
+ ],
141
+ "additionalProperties": false
142
+ },
143
+ "range": {
144
+ "type": "object",
145
+ "properties": {
146
+ "full": {
147
+ "type": "string"
148
+ },
149
+ "abbr": {
150
+ "type": "string"
151
+ }
152
+ },
153
+ "required": [
154
+ "full",
155
+ "abbr"
156
+ ],
157
+ "additionalProperties": false
158
+ },
159
+ "duration": {
160
+ "type": "object",
161
+ "properties": {
162
+ "full": {
163
+ "type": "string"
164
+ },
165
+ "abbr": {
166
+ "type": "string"
167
+ }
168
+ },
169
+ "required": [
170
+ "full",
171
+ "abbr"
172
+ ],
173
+ "additionalProperties": false
174
+ },
175
+ "target": {
176
+ "type": "string"
177
+ },
178
+ "errata": {
179
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
180
+ }
181
+ },
182
+ "required": [
183
+ "name",
184
+ "effect",
185
+ "casting_time",
186
+ "cost",
187
+ "range",
188
+ "duration",
189
+ "target"
190
+ ],
191
+ "additionalProperties": false
192
+ }
193
+ },
194
+ "minProperties": 1,
195
+ "additionalProperties": false
196
+ },
197
+ "enhancements": {
198
+ "$ref": "./_Enhancements.schema.json#/definitions/Enhancements"
199
+ }
200
+ },
201
+ "required": [
202
+ "id",
203
+ "parameters",
204
+ "target",
205
+ "property_id",
206
+ "improvement_cost",
207
+ "note",
208
+ "src",
209
+ "translations"
210
+ ],
211
+ "additionalProperties": false
212
+ },
213
+ "PerformanceParameters": {
214
+ "description": "Measurable parameters of a blessing.",
215
+ "type": "object",
216
+ "properties": {
217
+ "range": {
218
+ "oneOf": [
219
+ {
220
+ "type": "object",
221
+ "properties": {
222
+ "tag": {
223
+ "const": "Self"
224
+ }
225
+ },
226
+ "required": [
227
+ "tag"
228
+ ],
229
+ "additionalProperties": false
230
+ },
231
+ {
232
+ "type": "object",
233
+ "properties": {
234
+ "tag": {
235
+ "const": "Touch"
236
+ }
237
+ },
238
+ "required": [
239
+ "tag"
240
+ ],
241
+ "additionalProperties": false
242
+ },
243
+ {
244
+ "type": "object",
245
+ "properties": {
246
+ "tag": {
247
+ "const": "Fixed"
248
+ },
249
+ "value": {
250
+ "description": "The range in steps/m.",
251
+ "type": "integer",
252
+ "minimum": 1
253
+ },
254
+ "is_radius": {
255
+ "description": "If `true`, the range is a radius.",
256
+ "const": true
257
+ }
258
+ },
259
+ "required": [
260
+ "tag",
261
+ "value"
262
+ ],
263
+ "additionalProperties": false
264
+ }
265
+ ]
266
+ },
267
+ "duration": {
268
+ "oneOf": [
269
+ {
270
+ "type": "object",
271
+ "properties": {
272
+ "tag": {
273
+ "const": "Immediate"
274
+ }
275
+ },
276
+ "required": [
277
+ "tag"
278
+ ],
279
+ "additionalProperties": false
280
+ },
281
+ {
282
+ "type": "object",
283
+ "properties": {
284
+ "tag": {
285
+ "const": "Fixed"
286
+ },
287
+ "is_maximum": {
288
+ "description": "If `true`, the duration is a maximum duration.",
289
+ "const": true
290
+ },
291
+ "value": {
292
+ "description": "The (unitless) duration.",
293
+ "type": "integer",
294
+ "minimum": 1
295
+ },
296
+ "unit": {
297
+ "description": "The duration unit.",
298
+ "$ref": "./_ActivatableSkill.schema.json#/definitions/Duration/Unit"
299
+ }
300
+ },
301
+ "required": [
302
+ "tag",
303
+ "value",
304
+ "unit"
305
+ ],
306
+ "additionalProperties": false
307
+ },
308
+ {
309
+ "type": "object",
310
+ "properties": {
311
+ "tag": {
312
+ "const": "DuringLovemaking"
313
+ },
314
+ "value": {
315
+ "description": "The duration in rounds.",
316
+ "type": "integer",
317
+ "minimum": 1
318
+ }
319
+ },
320
+ "required": [
321
+ "tag",
322
+ "value"
323
+ ],
324
+ "additionalProperties": false
325
+ },
326
+ {
327
+ "type": "object",
328
+ "properties": {
329
+ "tag": {
330
+ "const": "Indefinite"
331
+ },
332
+ "translations": {
333
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
334
+ "type": "object",
335
+ "patternProperties": {
336
+ "^[a-z]{2}-[A-Z]{2}$": {
337
+ "type": "object",
338
+ "properties": {
339
+ "description": {
340
+ "description": "A description of the duration.",
341
+ "type": "object",
342
+ "properties": {
343
+ "default": {
344
+ "description": "The full description of the duration.",
345
+ "type": "string",
346
+ "minLength": 1
347
+ },
348
+ "compressed": {
349
+ "description": "A compressed description of the duration for use in small areas\n(e.g. on character sheet).",
350
+ "type": "string",
351
+ "minLength": 1
352
+ }
353
+ },
354
+ "required": [
355
+ "default",
356
+ "compressed"
357
+ ],
358
+ "additionalProperties": false
359
+ }
360
+ },
361
+ "required": [
362
+ "description"
363
+ ],
364
+ "additionalProperties": false
365
+ }
366
+ },
367
+ "minProperties": 1,
368
+ "additionalProperties": false
369
+ }
370
+ },
371
+ "required": [
372
+ "tag",
373
+ "translations"
374
+ ],
375
+ "additionalProperties": false
376
+ }
377
+ ]
378
+ }
379
+ },
380
+ "required": [
381
+ "range",
382
+ "duration"
383
+ ],
384
+ "additionalProperties": false
385
+ },
386
+ "CommonNote": {
387
+ "oneOf": [
388
+ {
389
+ "type": "object",
390
+ "properties": {
391
+ "tag": {
392
+ "const": "Academy"
393
+ },
394
+ "id": {
395
+ "description": "The academy's curriculum identifier.",
396
+ "type": "integer",
397
+ "minimum": 1
398
+ }
399
+ },
400
+ "required": [
401
+ "tag",
402
+ "id"
403
+ ],
404
+ "additionalProperties": false
405
+ },
406
+ {
407
+ "type": "object",
408
+ "properties": {
409
+ "tag": {
410
+ "const": "Tradition"
411
+ },
412
+ "id": {
413
+ "description": "The magical tradition's identifier.",
414
+ "type": "integer",
415
+ "minimum": 2
416
+ }
417
+ },
418
+ "required": [
419
+ "tag",
420
+ "id"
421
+ ],
422
+ "additionalProperties": false
423
+ }
424
+ ]
425
+ }
426
+ }
427
+ }
@@ -28,11 +28,6 @@
28
28
  "description": "The target category – the kind of creature or object – the skill affects.",
29
29
  "$ref": "./_ActivatableSkill.schema.json#/definitions/TargetCategory/T"
30
30
  },
31
- "property_id": {
32
- "description": "The property's identifier.",
33
- "type": "integer",
34
- "minimum": 1
35
- },
36
31
  "traditions": {
37
32
  "description": "The tradition(s) the ceremony is available for. Note that general aspects\ndo not have an associated tradition and thus need to be defined in a\nspecial way.",
38
33
  "type": "array",
@@ -167,7 +162,6 @@
167
162
  "check",
168
163
  "parameters",
169
164
  "target",
170
- "property_id",
171
165
  "traditions",
172
166
  "improvement_cost",
173
167
  "src",
@@ -28,11 +28,6 @@
28
28
  "description": "The target category – the kind of creature or object – the skill affects.",
29
29
  "$ref": "./_ActivatableSkill.schema.json#/definitions/TargetCategory/T"
30
30
  },
31
- "property_id": {
32
- "description": "The property's identifier.",
33
- "type": "integer",
34
- "minimum": 1
35
- },
36
31
  "traditions": {
37
32
  "description": "The tradition(s) the liturgical chant is available for. Note that general\naspects do not have an associated tradition and thus need to be defined in\na special way.",
38
33
  "type": "array",
@@ -167,7 +162,6 @@
167
162
  "check",
168
163
  "parameters",
169
164
  "target",
170
- "property_id",
171
165
  "traditions",
172
166
  "improvement_cost",
173
167
  "src",
@@ -0,0 +1,138 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "PactCategory.schema.json",
4
+ "$ref": "#/definitions/PactCategory",
5
+ "definitions": {
6
+ "PactCategory": {
7
+ "title": "Pact Category",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The pact category's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "types": {
16
+ "description": "Types of creatures in this category.",
17
+ "type": "array",
18
+ "items": {
19
+ "type": "object",
20
+ "properties": {
21
+ "id": {
22
+ "description": "The type's identifier. An unique, increasing integer.",
23
+ "type": "integer",
24
+ "minimum": 1
25
+ },
26
+ "translations": {
27
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
28
+ "type": "object",
29
+ "patternProperties": {
30
+ "^[a-z]{2}-[A-Z]{2}$": {
31
+ "type": "object",
32
+ "properties": {
33
+ "name": {
34
+ "description": "The name of the type.",
35
+ "type": "string",
36
+ "minLength": 1
37
+ }
38
+ },
39
+ "required": [
40
+ "name"
41
+ ],
42
+ "additionalProperties": false
43
+ }
44
+ },
45
+ "minProperties": 1,
46
+ "additionalProperties": false
47
+ }
48
+ },
49
+ "required": [
50
+ "id",
51
+ "translations"
52
+ ],
53
+ "additionalProperties": false
54
+ },
55
+ "minItems": 1
56
+ },
57
+ "domains": {
58
+ "description": "Domains in this category.",
59
+ "type": "array",
60
+ "items": {
61
+ "type": "object",
62
+ "properties": {
63
+ "id": {
64
+ "description": "The domain's identifier. An unique, increasing integer.",
65
+ "type": "integer",
66
+ "minimum": 1
67
+ },
68
+ "translations": {
69
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
70
+ "type": "object",
71
+ "patternProperties": {
72
+ "^[a-z]{2}-[A-Z]{2}$": {
73
+ "type": "object",
74
+ "properties": {
75
+ "name": {
76
+ "description": "The name of the domain.",
77
+ "type": "string",
78
+ "minLength": 1
79
+ }
80
+ },
81
+ "required": [
82
+ "name"
83
+ ],
84
+ "additionalProperties": false
85
+ }
86
+ },
87
+ "minProperties": 1,
88
+ "additionalProperties": false
89
+ }
90
+ },
91
+ "required": [
92
+ "id",
93
+ "translations"
94
+ ],
95
+ "additionalProperties": false
96
+ },
97
+ "minItems": 1
98
+ },
99
+ "src": {
100
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
101
+ },
102
+ "translations": {
103
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
104
+ "type": "object",
105
+ "patternProperties": {
106
+ "^[a-z]{2}-[A-Z]{2}$": {
107
+ "type": "object",
108
+ "properties": {
109
+ "name": {
110
+ "description": "The name of the pact category.",
111
+ "type": "string",
112
+ "minLength": 1
113
+ },
114
+ "errata": {
115
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
116
+ }
117
+ },
118
+ "required": [
119
+ "name"
120
+ ],
121
+ "additionalProperties": false
122
+ }
123
+ },
124
+ "minProperties": 1,
125
+ "additionalProperties": false
126
+ }
127
+ },
128
+ "required": [
129
+ "id",
130
+ "types",
131
+ "domains",
132
+ "src",
133
+ "translations"
134
+ ],
135
+ "additionalProperties": false
136
+ }
137
+ }
138
+ }