optolith-database-schema 0.1.0 → 0.1.1

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,14 @@
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.1.1](https://github.com/elyukai/optolith-database-schema/compare/v0.1.0...v0.1.1) (2022-03-09)
6
+
7
+
8
+ ### Features
9
+
10
+ * familiar's tricks ([f8f88c9](https://github.com/elyukai/optolith-database-schema/commit/f8f88c9ab3c3339c4e26830623052d09924c4102))
11
+ * trade secrets ([c834c31](https://github.com/elyukai/optolith-database-schema/commit/c834c31de87ce830d34c4cf9c0f60dcfb5a4d3ca))
12
+
5
13
  ## [0.1.0](https://github.com/elyukai/optolith-database-schema/compare/v0.0.4...v0.1.0) (2022-03-08)
6
14
 
7
15
 
@@ -0,0 +1,333 @@
1
+ /**
2
+ * @main FamiliarsTrick
3
+ */
4
+ import { Errata } from "./source/_Erratum";
5
+ import { PublicationRefs } from "./source/_PublicationRef";
6
+ import { Duration } from "./_ActivatableSkill";
7
+ /**
8
+ * @title Familiar's Trick
9
+ */
10
+ export declare type FamiliarsTrick = {
11
+ /**
12
+ * The familiar's trick's identifier. An unique, increasing integer.
13
+ * @integer
14
+ * @minimum 1
15
+ */
16
+ id: number;
17
+ /**
18
+ * The animal types this trick is available to. Either it is available to all
19
+ * or only a list of specific animal types.
20
+ */
21
+ animal_types: {
22
+ tag: "All";
23
+ } | {
24
+ tag: "Specific";
25
+ /**
26
+ * The list of specific animal types.
27
+ * @minItems 1
28
+ */
29
+ list: {
30
+ /**
31
+ * The animal type's identifier.
32
+ * @integer
33
+ * @minimum 1
34
+ */
35
+ id: number;
36
+ }[];
37
+ };
38
+ /**
39
+ * Measurable parameters of a familiar's trick.
40
+ */
41
+ parameters: PerformanceParameters;
42
+ /**
43
+ * The property of the trick.
44
+ */
45
+ property: {
46
+ tag: "Fixed";
47
+ /**
48
+ * The property's identifier.
49
+ * @integer
50
+ * @minimum 1
51
+ */
52
+ id: number;
53
+ } | {
54
+ tag: "Indefinite";
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
+ * A description of the property.
66
+ */
67
+ description: {
68
+ /**
69
+ * The full description of the property.
70
+ * @minLength 1
71
+ */
72
+ default: string;
73
+ /**
74
+ * A compressed description of the property for use in small areas
75
+ * (e.g. on character sheet).
76
+ * @minLength 1
77
+ */
78
+ compressed: string;
79
+ };
80
+ };
81
+ };
82
+ };
83
+ /**
84
+ * The AP value the familiar has to pay for. It may also be that a specific is
85
+ * known by all familiar by default.
86
+ */
87
+ ap_value: {
88
+ tag: "Fixed";
89
+ /**
90
+ * The adventure points value.
91
+ * @integer
92
+ * @minimum 1
93
+ */
94
+ value: number;
95
+ } | {
96
+ tag: "Default";
97
+ };
98
+ src: PublicationRefs;
99
+ /**
100
+ * All translations for the entry, identified by IETF language tag (BCP47).
101
+ * @minProperties 1
102
+ */
103
+ translations: {
104
+ /**
105
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
106
+ */
107
+ [localeId: string]: {
108
+ /**
109
+ * The name of the familiar's trick.
110
+ * @minLength 1
111
+ */
112
+ name: string;
113
+ /**
114
+ * The effect description.
115
+ * @markdown
116
+ * @minLength 1
117
+ */
118
+ effect: string;
119
+ /**
120
+ * @deprecated
121
+ */
122
+ cost: {
123
+ full: string;
124
+ abbr: string;
125
+ };
126
+ /**
127
+ * @deprecated
128
+ */
129
+ duration: {
130
+ full: string;
131
+ abbr: string;
132
+ };
133
+ errata?: Errata;
134
+ };
135
+ };
136
+ };
137
+ /**
138
+ * Measurable parameters of a familiar's trick.
139
+ */
140
+ declare type PerformanceParameters = {
141
+ tag: "OneTime";
142
+ cost: {
143
+ tag: "Fixed";
144
+ /**
145
+ * The AE cost value.
146
+ * @integer
147
+ * @minimum 1
148
+ */
149
+ value: number;
150
+ /**
151
+ * The interval in which you have to pay the AE cost again.
152
+ */
153
+ interval?: Duration.UnitValue;
154
+ /**
155
+ * All translations for the entry, identified by IETF language tag
156
+ * (BCP47).
157
+ * @minProperties 1
158
+ */
159
+ translations?: {
160
+ /**
161
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
162
+ * @minProperties 1
163
+ */
164
+ [localeId: string]: {
165
+ /**
166
+ *
167
+ */
168
+ per?: {
169
+ /**
170
+ * The full countable entity name.
171
+ * @minLength 1
172
+ */
173
+ default: string;
174
+ /**
175
+ * The compressed countable entity name.
176
+ * @minLength 1
177
+ */
178
+ compressed: string;
179
+ };
180
+ };
181
+ };
182
+ } | {
183
+ tag: "All";
184
+ /**
185
+ * The minimum AE the familiar has to have.
186
+ * @integer
187
+ * @minimum 1
188
+ */
189
+ minimum?: number;
190
+ } | {
191
+ tag: "Indefinite";
192
+ /**
193
+ * All translations for the entry, identified by IETF language tag
194
+ * (BCP47).
195
+ * @minProperties 1
196
+ */
197
+ translations: {
198
+ /**
199
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
200
+ */
201
+ [localeId: string]: {
202
+ /**
203
+ * A description of the AE cost.
204
+ */
205
+ description: {
206
+ /**
207
+ * The full description of the AE cost.
208
+ * @minLength 1
209
+ */
210
+ default: string;
211
+ /**
212
+ * A compressed description of the AE cost for use in small areas
213
+ * (e.g. on character sheet).
214
+ * @minLength 1
215
+ */
216
+ compressed: string;
217
+ };
218
+ };
219
+ };
220
+ };
221
+ duration: {
222
+ tag: "Immediate";
223
+ } | {
224
+ tag: "Fixed";
225
+ /**
226
+ * If the duration is the maximum duration, so it may end earlier.
227
+ */
228
+ is_maximum?: boolean;
229
+ /**
230
+ * The (unitless) duration.
231
+ * @integer
232
+ * @minimum 1
233
+ */
234
+ value: number;
235
+ /**
236
+ * The duration unit.
237
+ */
238
+ unit: Duration.Unit;
239
+ /**
240
+ * All translations for the entry, identified by IETF language tag (BCP47).
241
+ * @minProperties 1
242
+ */
243
+ translations?: {
244
+ /**
245
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
246
+ * @minProperties 1
247
+ */
248
+ [localeId: string]: {
249
+ /**
250
+ * A replacement string.
251
+ */
252
+ replacement?: {
253
+ /**
254
+ * The full replacement string. It can contain `$1`, which is
255
+ * going to be replaced with the generated duration string, so
256
+ * additional information can be provided without duplicating
257
+ * concrete numeric values.
258
+ * @minLength 1
259
+ */
260
+ default: string;
261
+ /**
262
+ * A compressed replacement string for use in small areas (e.g. on
263
+ * character sheet). It can contain `$1`, which is going to be
264
+ * replaced with the generated duration string, so additional
265
+ * information can be provided without duplicating concrete
266
+ * numeric values.
267
+ * @minLength 1
268
+ */
269
+ compressed: string;
270
+ };
271
+ };
272
+ };
273
+ } | {
274
+ tag: "Indefinite";
275
+ /**
276
+ * All translations for the entry, identified by IETF language tag
277
+ * (BCP47).
278
+ * @minProperties 1
279
+ */
280
+ translations: {
281
+ /**
282
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
283
+ */
284
+ [localeId: string]: {
285
+ /**
286
+ * A description of the duration.
287
+ */
288
+ description: {
289
+ /**
290
+ * The full description of the duration.
291
+ * @minLength 1
292
+ */
293
+ default: string;
294
+ /**
295
+ * A compressed description of the duration for use in small areas
296
+ * (e.g. on character sheet).
297
+ * @minLength 1
298
+ */
299
+ compressed: string;
300
+ };
301
+ };
302
+ };
303
+ };
304
+ } | {
305
+ tag: "OneTimeInterval";
306
+ cost: {
307
+ /**
308
+ * The AE cost value.
309
+ * @integer
310
+ * @minimum 1
311
+ */
312
+ value: number;
313
+ /**
314
+ * The duration granted/added by paying the given AE cost.
315
+ */
316
+ interval: Duration.UnitValue;
317
+ };
318
+ } | {
319
+ tag: "Sustained";
320
+ cost: {
321
+ /**
322
+ * The AE cost value.
323
+ * @integer
324
+ * @minimum 1
325
+ */
326
+ value: number;
327
+ /**
328
+ * The interval in which you have to pay the AE cost again.
329
+ */
330
+ interval: Duration.UnitValue;
331
+ };
332
+ };
333
+ export {};
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @main FamiliarsTrick
3
+ */
4
+ export {};
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @main AnimalType
3
+ */
4
+ /**
5
+ * @title Animal Type
6
+ */
7
+ export declare type AnimalType = {
8
+ /**
9
+ * The animal type's identifier. An unique, increasing integer.
10
+ * @integer
11
+ * @minimum 1
12
+ */
13
+ id: number;
14
+ /**
15
+ * All translations for the entry, identified by IETF language tag (BCP47).
16
+ * @minProperties 1
17
+ */
18
+ translations: {
19
+ /**
20
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
21
+ */
22
+ [localeId: string]: {
23
+ /**
24
+ * The animal type name.
25
+ * @minLength 1
26
+ */
27
+ name: string;
28
+ };
29
+ };
30
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @main AnimalType
3
+ */
4
+ export {};
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @main TradeSecret
3
+ */
4
+ import { Errata } from "../../source/_Erratum";
5
+ import { PublicationRefs } from "../../source/_PublicationRef";
6
+ /**
7
+ * @title Trade Secret
8
+ */
9
+ export declare type TradeSecret = {
10
+ /**
11
+ * The trade secret's identifier. An unique, increasing integer.
12
+ * @integer
13
+ * @minimum 1
14
+ */
15
+ id: number;
16
+ /**
17
+ * The adventure points value of the trade secret.
18
+ * @integer
19
+ * @minimum 1
20
+ */
21
+ ap_value: number;
22
+ /**
23
+ * Is this trade secret considered secret knowledge?
24
+ */
25
+ is_secret_knowledge: boolean;
26
+ src: PublicationRefs;
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 trade secret.
38
+ * @minLength 1
39
+ */
40
+ name: string;
41
+ /**
42
+ * The description of the trade secret.
43
+ * @markdown
44
+ * @minLength 1
45
+ */
46
+ description?: string;
47
+ errata?: Errata;
48
+ };
49
+ };
50
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @main TradeSecret
3
+ */
4
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
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,602 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "FamiliarsTrick.schema.json",
4
+ "$ref": "#/definitions/FamiliarsTrick",
5
+ "definitions": {
6
+ "FamiliarsTrick": {
7
+ "title": "Familiar's Trick",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The familiar's trick's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "animal_types": {
16
+ "description": "The animal types this trick is available to. Either it is available to all\nor only a list of specific animal types.",
17
+ "oneOf": [
18
+ {
19
+ "type": "object",
20
+ "properties": {
21
+ "tag": {
22
+ "const": "All"
23
+ }
24
+ },
25
+ "required": [
26
+ "tag"
27
+ ],
28
+ "additionalProperties": false
29
+ },
30
+ {
31
+ "type": "object",
32
+ "properties": {
33
+ "tag": {
34
+ "const": "Specific"
35
+ },
36
+ "list": {
37
+ "description": "The list of specific animal types.",
38
+ "type": "array",
39
+ "items": {
40
+ "type": "object",
41
+ "properties": {
42
+ "id": {
43
+ "description": "The animal type's identifier.",
44
+ "type": "integer",
45
+ "minimum": 1
46
+ }
47
+ },
48
+ "required": [
49
+ "id"
50
+ ],
51
+ "additionalProperties": false
52
+ },
53
+ "minItems": 1
54
+ }
55
+ },
56
+ "required": [
57
+ "tag",
58
+ "list"
59
+ ],
60
+ "additionalProperties": false
61
+ }
62
+ ]
63
+ },
64
+ "parameters": {
65
+ "description": "Measurable parameters of a familiar's trick.",
66
+ "$ref": "#/definitions/PerformanceParameters"
67
+ },
68
+ "property": {
69
+ "description": "The property of the trick.",
70
+ "oneOf": [
71
+ {
72
+ "type": "object",
73
+ "properties": {
74
+ "tag": {
75
+ "const": "Fixed"
76
+ },
77
+ "id": {
78
+ "description": "The property's identifier.",
79
+ "type": "integer",
80
+ "minimum": 1
81
+ }
82
+ },
83
+ "required": [
84
+ "tag",
85
+ "id"
86
+ ],
87
+ "additionalProperties": false
88
+ },
89
+ {
90
+ "type": "object",
91
+ "properties": {
92
+ "tag": {
93
+ "const": "Indefinite"
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
+ "description": {
103
+ "description": "A description of the property.",
104
+ "type": "object",
105
+ "properties": {
106
+ "default": {
107
+ "description": "The full description of the property.",
108
+ "type": "string",
109
+ "minLength": 1
110
+ },
111
+ "compressed": {
112
+ "description": "A compressed description of the property for use in small areas\n(e.g. on character sheet).",
113
+ "type": "string",
114
+ "minLength": 1
115
+ }
116
+ },
117
+ "required": [
118
+ "default",
119
+ "compressed"
120
+ ],
121
+ "additionalProperties": false
122
+ }
123
+ },
124
+ "required": [
125
+ "description"
126
+ ],
127
+ "additionalProperties": false
128
+ }
129
+ },
130
+ "minProperties": 1,
131
+ "additionalProperties": false
132
+ }
133
+ },
134
+ "required": [
135
+ "tag",
136
+ "translations"
137
+ ],
138
+ "additionalProperties": false
139
+ }
140
+ ]
141
+ },
142
+ "ap_value": {
143
+ "description": "The AP value the familiar has to pay for. It may also be that a specific is\nknown by all familiar by default.",
144
+ "oneOf": [
145
+ {
146
+ "type": "object",
147
+ "properties": {
148
+ "tag": {
149
+ "const": "Fixed"
150
+ },
151
+ "value": {
152
+ "description": "The adventure points value.",
153
+ "type": "integer",
154
+ "minimum": 1
155
+ }
156
+ },
157
+ "required": [
158
+ "tag",
159
+ "value"
160
+ ],
161
+ "additionalProperties": false
162
+ },
163
+ {
164
+ "type": "object",
165
+ "properties": {
166
+ "tag": {
167
+ "const": "Default"
168
+ }
169
+ },
170
+ "required": [
171
+ "tag"
172
+ ],
173
+ "additionalProperties": false
174
+ }
175
+ ]
176
+ },
177
+ "src": {
178
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
179
+ },
180
+ "translations": {
181
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
182
+ "type": "object",
183
+ "patternProperties": {
184
+ "^[a-z]{2}-[A-Z]{2}$": {
185
+ "type": "object",
186
+ "properties": {
187
+ "name": {
188
+ "description": "The name of the familiar's trick.",
189
+ "type": "string",
190
+ "minLength": 1
191
+ },
192
+ "effect": {
193
+ "description": "The effect description.",
194
+ "type": "string",
195
+ "minLength": 1
196
+ },
197
+ "cost": {
198
+ "type": "object",
199
+ "properties": {
200
+ "full": {
201
+ "type": "string"
202
+ },
203
+ "abbr": {
204
+ "type": "string"
205
+ }
206
+ },
207
+ "required": [
208
+ "full",
209
+ "abbr"
210
+ ],
211
+ "additionalProperties": false
212
+ },
213
+ "duration": {
214
+ "type": "object",
215
+ "properties": {
216
+ "full": {
217
+ "type": "string"
218
+ },
219
+ "abbr": {
220
+ "type": "string"
221
+ }
222
+ },
223
+ "required": [
224
+ "full",
225
+ "abbr"
226
+ ],
227
+ "additionalProperties": false
228
+ },
229
+ "errata": {
230
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
231
+ }
232
+ },
233
+ "required": [
234
+ "name",
235
+ "effect",
236
+ "cost",
237
+ "duration"
238
+ ],
239
+ "additionalProperties": false
240
+ }
241
+ },
242
+ "minProperties": 1,
243
+ "additionalProperties": false
244
+ }
245
+ },
246
+ "required": [
247
+ "id",
248
+ "animal_types",
249
+ "parameters",
250
+ "property",
251
+ "ap_value",
252
+ "src",
253
+ "translations"
254
+ ],
255
+ "additionalProperties": false
256
+ },
257
+ "PerformanceParameters": {
258
+ "description": "Measurable parameters of a familiar's trick.",
259
+ "oneOf": [
260
+ {
261
+ "type": "object",
262
+ "properties": {
263
+ "tag": {
264
+ "const": "OneTime"
265
+ },
266
+ "cost": {
267
+ "oneOf": [
268
+ {
269
+ "type": "object",
270
+ "properties": {
271
+ "tag": {
272
+ "const": "Fixed"
273
+ },
274
+ "value": {
275
+ "description": "The AE cost value.",
276
+ "type": "integer",
277
+ "minimum": 1
278
+ },
279
+ "interval": {
280
+ "description": "The interval in which you have to pay the AE cost again.",
281
+ "$ref": "./_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
282
+ },
283
+ "translations": {
284
+ "description": "All translations for the entry, identified by IETF language tag\n(BCP47).",
285
+ "type": "object",
286
+ "patternProperties": {
287
+ "^[a-z]{2}-[A-Z]{2}$": {
288
+ "type": "object",
289
+ "properties": {
290
+ "per": {
291
+ "type": "object",
292
+ "properties": {
293
+ "default": {
294
+ "description": "The full countable entity name.",
295
+ "type": "string",
296
+ "minLength": 1
297
+ },
298
+ "compressed": {
299
+ "description": "The compressed countable entity name.",
300
+ "type": "string",
301
+ "minLength": 1
302
+ }
303
+ },
304
+ "required": [
305
+ "default",
306
+ "compressed"
307
+ ],
308
+ "additionalProperties": false
309
+ }
310
+ },
311
+ "required": [],
312
+ "minProperties": 1,
313
+ "additionalProperties": false
314
+ }
315
+ },
316
+ "minProperties": 1,
317
+ "additionalProperties": false
318
+ }
319
+ },
320
+ "required": [
321
+ "tag",
322
+ "value"
323
+ ],
324
+ "additionalProperties": false
325
+ },
326
+ {
327
+ "type": "object",
328
+ "properties": {
329
+ "tag": {
330
+ "const": "All"
331
+ },
332
+ "minimum": {
333
+ "description": "The minimum AE the familiar has to have.",
334
+ "type": "integer",
335
+ "minimum": 1
336
+ }
337
+ },
338
+ "required": [
339
+ "tag"
340
+ ],
341
+ "additionalProperties": false
342
+ },
343
+ {
344
+ "type": "object",
345
+ "properties": {
346
+ "tag": {
347
+ "const": "Indefinite"
348
+ },
349
+ "translations": {
350
+ "description": "All translations for the entry, identified by IETF language tag\n(BCP47).",
351
+ "type": "object",
352
+ "patternProperties": {
353
+ "^[a-z]{2}-[A-Z]{2}$": {
354
+ "type": "object",
355
+ "properties": {
356
+ "description": {
357
+ "description": "A description of the AE cost.",
358
+ "type": "object",
359
+ "properties": {
360
+ "default": {
361
+ "description": "The full description of the AE cost.",
362
+ "type": "string",
363
+ "minLength": 1
364
+ },
365
+ "compressed": {
366
+ "description": "A compressed description of the AE cost for use in small areas\n(e.g. on character sheet).",
367
+ "type": "string",
368
+ "minLength": 1
369
+ }
370
+ },
371
+ "required": [
372
+ "default",
373
+ "compressed"
374
+ ],
375
+ "additionalProperties": false
376
+ }
377
+ },
378
+ "required": [
379
+ "description"
380
+ ],
381
+ "additionalProperties": false
382
+ }
383
+ },
384
+ "minProperties": 1,
385
+ "additionalProperties": false
386
+ }
387
+ },
388
+ "required": [
389
+ "tag",
390
+ "translations"
391
+ ],
392
+ "additionalProperties": false
393
+ }
394
+ ]
395
+ },
396
+ "duration": {
397
+ "oneOf": [
398
+ {
399
+ "type": "object",
400
+ "properties": {
401
+ "tag": {
402
+ "const": "Immediate"
403
+ }
404
+ },
405
+ "required": [
406
+ "tag"
407
+ ],
408
+ "additionalProperties": false
409
+ },
410
+ {
411
+ "type": "object",
412
+ "properties": {
413
+ "tag": {
414
+ "const": "Fixed"
415
+ },
416
+ "is_maximum": {
417
+ "description": "If the duration is the maximum duration, so it may end earlier.",
418
+ "type": "boolean"
419
+ },
420
+ "value": {
421
+ "description": "The (unitless) duration.",
422
+ "type": "integer",
423
+ "minimum": 1
424
+ },
425
+ "unit": {
426
+ "description": "The duration unit.",
427
+ "$ref": "./_ActivatableSkill.schema.json#/definitions/Duration/Unit"
428
+ },
429
+ "translations": {
430
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
431
+ "type": "object",
432
+ "patternProperties": {
433
+ "^[a-z]{2}-[A-Z]{2}$": {
434
+ "type": "object",
435
+ "properties": {
436
+ "replacement": {
437
+ "description": "A replacement string.",
438
+ "type": "object",
439
+ "properties": {
440
+ "default": {
441
+ "description": "The full replacement string. It can contain `$1`, which is\ngoing to be replaced with the generated duration string, so\nadditional information can be provided without duplicating\nconcrete numeric values.",
442
+ "type": "string",
443
+ "minLength": 1
444
+ },
445
+ "compressed": {
446
+ "description": "A compressed replacement string for use in small areas (e.g. on\ncharacter sheet). It can contain `$1`, which is going to be\nreplaced with the generated duration string, so additional\ninformation can be provided without duplicating concrete\nnumeric values.",
447
+ "type": "string",
448
+ "minLength": 1
449
+ }
450
+ },
451
+ "required": [
452
+ "default",
453
+ "compressed"
454
+ ],
455
+ "additionalProperties": false
456
+ }
457
+ },
458
+ "required": [],
459
+ "minProperties": 1,
460
+ "additionalProperties": false
461
+ }
462
+ },
463
+ "minProperties": 1,
464
+ "additionalProperties": false
465
+ }
466
+ },
467
+ "required": [
468
+ "tag",
469
+ "value",
470
+ "unit"
471
+ ],
472
+ "additionalProperties": false
473
+ },
474
+ {
475
+ "type": "object",
476
+ "properties": {
477
+ "tag": {
478
+ "const": "Indefinite"
479
+ },
480
+ "translations": {
481
+ "description": "All translations for the entry, identified by IETF language tag\n(BCP47).",
482
+ "type": "object",
483
+ "patternProperties": {
484
+ "^[a-z]{2}-[A-Z]{2}$": {
485
+ "type": "object",
486
+ "properties": {
487
+ "description": {
488
+ "description": "A description of the duration.",
489
+ "type": "object",
490
+ "properties": {
491
+ "default": {
492
+ "description": "The full description of the duration.",
493
+ "type": "string",
494
+ "minLength": 1
495
+ },
496
+ "compressed": {
497
+ "description": "A compressed description of the duration for use in small areas\n(e.g. on character sheet).",
498
+ "type": "string",
499
+ "minLength": 1
500
+ }
501
+ },
502
+ "required": [
503
+ "default",
504
+ "compressed"
505
+ ],
506
+ "additionalProperties": false
507
+ }
508
+ },
509
+ "required": [
510
+ "description"
511
+ ],
512
+ "additionalProperties": false
513
+ }
514
+ },
515
+ "minProperties": 1,
516
+ "additionalProperties": false
517
+ }
518
+ },
519
+ "required": [
520
+ "tag",
521
+ "translations"
522
+ ],
523
+ "additionalProperties": false
524
+ }
525
+ ]
526
+ }
527
+ },
528
+ "required": [
529
+ "tag",
530
+ "cost",
531
+ "duration"
532
+ ],
533
+ "additionalProperties": false
534
+ },
535
+ {
536
+ "type": "object",
537
+ "properties": {
538
+ "tag": {
539
+ "const": "OneTimeInterval"
540
+ },
541
+ "cost": {
542
+ "type": "object",
543
+ "properties": {
544
+ "value": {
545
+ "description": "The AE cost value.",
546
+ "type": "integer",
547
+ "minimum": 1
548
+ },
549
+ "interval": {
550
+ "description": "The duration granted/added by paying the given AE cost.",
551
+ "$ref": "./_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
552
+ }
553
+ },
554
+ "required": [
555
+ "value",
556
+ "interval"
557
+ ],
558
+ "additionalProperties": false
559
+ }
560
+ },
561
+ "required": [
562
+ "tag",
563
+ "cost"
564
+ ],
565
+ "additionalProperties": false
566
+ },
567
+ {
568
+ "type": "object",
569
+ "properties": {
570
+ "tag": {
571
+ "const": "Sustained"
572
+ },
573
+ "cost": {
574
+ "type": "object",
575
+ "properties": {
576
+ "value": {
577
+ "description": "The AE cost value.",
578
+ "type": "integer",
579
+ "minimum": 1
580
+ },
581
+ "interval": {
582
+ "description": "The interval in which you have to pay the AE cost again.",
583
+ "$ref": "./_ActivatableSkill.schema.json#/definitions/Duration/UnitValue"
584
+ }
585
+ },
586
+ "required": [
587
+ "value",
588
+ "interval"
589
+ ],
590
+ "additionalProperties": false
591
+ }
592
+ },
593
+ "required": [
594
+ "tag",
595
+ "cost"
596
+ ],
597
+ "additionalProperties": false
598
+ }
599
+ ]
600
+ }
601
+ }
602
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "FamiliarsTrick_AnimalType.schema.json",
4
+ "$ref": "#/definitions/AnimalType",
5
+ "definitions": {
6
+ "AnimalType": {
7
+ "title": "Animal Type",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The animal type's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "translations": {
16
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
17
+ "type": "object",
18
+ "patternProperties": {
19
+ "^[a-z]{2}-[A-Z]{2}$": {
20
+ "type": "object",
21
+ "properties": {
22
+ "name": {
23
+ "description": "The animal type name.",
24
+ "type": "string",
25
+ "minLength": 1
26
+ }
27
+ },
28
+ "required": [
29
+ "name"
30
+ ],
31
+ "additionalProperties": false
32
+ }
33
+ },
34
+ "minProperties": 1,
35
+ "additionalProperties": false
36
+ }
37
+ },
38
+ "required": [
39
+ "id",
40
+ "translations"
41
+ ],
42
+ "additionalProperties": false
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "specialAbility/sub/TradeSecret.schema.json",
4
+ "$ref": "#/definitions/TradeSecret",
5
+ "definitions": {
6
+ "TradeSecret": {
7
+ "title": "Trade Secret",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The trade secret's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "ap_value": {
16
+ "description": "The adventure points value of the trade secret.",
17
+ "type": "integer",
18
+ "minimum": 1
19
+ },
20
+ "is_secret_knowledge": {
21
+ "description": "Is this trade secret considered secret knowledge?",
22
+ "type": "boolean"
23
+ },
24
+ "src": {
25
+ "$ref": "../../source/_PublicationRef.schema.json#/definitions/PublicationRefs"
26
+ },
27
+ "translations": {
28
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
29
+ "type": "object",
30
+ "patternProperties": {
31
+ "^[a-z]{2}-[A-Z]{2}$": {
32
+ "type": "object",
33
+ "properties": {
34
+ "name": {
35
+ "description": "The name of the trade secret.",
36
+ "type": "string",
37
+ "minLength": 1
38
+ },
39
+ "description": {
40
+ "description": "The description of the trade secret.",
41
+ "type": "string",
42
+ "minLength": 1
43
+ },
44
+ "errata": {
45
+ "$ref": "../../source/_Erratum.schema.json#/definitions/Errata"
46
+ }
47
+ },
48
+ "required": [
49
+ "name"
50
+ ],
51
+ "additionalProperties": false
52
+ }
53
+ },
54
+ "minProperties": 1,
55
+ "additionalProperties": false
56
+ }
57
+ },
58
+ "required": [
59
+ "id",
60
+ "ap_value",
61
+ "is_secret_knowledge",
62
+ "src",
63
+ "translations"
64
+ ],
65
+ "additionalProperties": false
66
+ }
67
+ }
68
+ }