5etools-utils 0.10.0 → 0.10.2

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.10.0",
3
+ "version": "0.10.2",
4
4
  "description": "Shared utilities for the 5etools ecosystem.",
5
5
  "type": "module",
6
6
  "main": "lib/Api.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.21.24",
3
+ "version": "1.21.25",
4
4
  "title": "Bestiary Schema",
5
5
  "$id": "bestiary.json",
6
6
  "type": "object",
@@ -313,6 +313,9 @@
313
313
  "type": "string"
314
314
  }
315
315
  },
316
+ "required": [
317
+ "special"
318
+ ],
316
319
  "additionalProperties": false
317
320
  }
318
321
  ]
@@ -364,7 +367,8 @@
364
367
  "$ref": "../entry.json"
365
368
  }
366
369
  },
367
- "additionalProperties": false
370
+ "additionalProperties": false,
371
+ "minProperties": 1
368
372
  },
369
373
  "skill": {
370
374
  "type": "object",
@@ -495,7 +499,8 @@
495
499
  "$ref": "../entry.json"
496
500
  }
497
501
  },
498
- "additionalProperties": false
502
+ "additionalProperties": false,
503
+ "minProperties": 1
499
504
  },
500
505
  "senses": {
501
506
  "oneOf": [
@@ -503,7 +508,8 @@
503
508
  "type": "array",
504
509
  "items": {
505
510
  "type": "string"
506
- }
511
+ },
512
+ "minItems": 1
507
513
  },
508
514
  {
509
515
  "type": "null"
@@ -1249,7 +1255,8 @@
1249
1255
  }
1250
1256
  }
1251
1257
  },
1252
- "additionalProperties": false
1258
+ "additionalProperties": false,
1259
+ "minProperties": 1
1253
1260
  }
1254
1261
  ]
1255
1262
  },
@@ -1473,6 +1480,9 @@
1473
1480
  "type": "string"
1474
1481
  }
1475
1482
  },
1483
+ "required": [
1484
+ "special"
1485
+ ],
1476
1486
  "additionalProperties": false
1477
1487
  }
1478
1488
  ]
@@ -1524,7 +1534,8 @@
1524
1534
  "$ref": "../entry.json"
1525
1535
  }
1526
1536
  },
1527
- "additionalProperties": false
1537
+ "additionalProperties": false,
1538
+ "minProperties": 1
1528
1539
  },
1529
1540
  "skill": {
1530
1541
  "type": "object",
@@ -1655,7 +1666,8 @@
1655
1666
  "$ref": "../entry.json"
1656
1667
  }
1657
1668
  },
1658
- "additionalProperties": false
1669
+ "additionalProperties": false,
1670
+ "minProperties": 1
1659
1671
  },
1660
1672
  "senses": {
1661
1673
  "oneOf": [
@@ -1663,7 +1675,8 @@
1663
1675
  "type": "array",
1664
1676
  "items": {
1665
1677
  "type": "string"
1666
- }
1678
+ },
1679
+ "minItems": 1
1667
1680
  },
1668
1681
  {
1669
1682
  "type": "null"
@@ -2409,7 +2422,8 @@
2409
2422
  }
2410
2423
  }
2411
2424
  },
2412
- "additionalProperties": false
2425
+ "additionalProperties": false,
2426
+ "minProperties": 1
2413
2427
  }
2414
2428
  ]
2415
2429
  },
@@ -2638,6 +2652,9 @@
2638
2652
  "type": "string"
2639
2653
  }
2640
2654
  },
2655
+ "required": [
2656
+ "special"
2657
+ ],
2641
2658
  "additionalProperties": false
2642
2659
  }
2643
2660
  ]
@@ -2689,7 +2706,8 @@
2689
2706
  "$ref": "../entry.json"
2690
2707
  }
2691
2708
  },
2692
- "additionalProperties": false
2709
+ "additionalProperties": false,
2710
+ "minProperties": 1
2693
2711
  },
2694
2712
  "skill": {
2695
2713
  "type": "object",
@@ -2820,7 +2838,8 @@
2820
2838
  "$ref": "../entry.json"
2821
2839
  }
2822
2840
  },
2823
- "additionalProperties": false
2841
+ "additionalProperties": false,
2842
+ "minProperties": 1
2824
2843
  },
2825
2844
  "senses": {
2826
2845
  "oneOf": [
@@ -2828,7 +2847,8 @@
2828
2847
  "type": "array",
2829
2848
  "items": {
2830
2849
  "type": "string"
2831
- }
2850
+ },
2851
+ "minItems": 1
2832
2852
  },
2833
2853
  {
2834
2854
  "type": "null"
@@ -3574,7 +3594,8 @@
3574
3594
  }
3575
3595
  }
3576
3596
  },
3577
- "additionalProperties": false
3597
+ "additionalProperties": false,
3598
+ "minProperties": 1
3578
3599
  }
3579
3600
  ]
3580
3601
  },
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "fluff-optionalfeatures.json",
4
+ "version": "1.0.0",
5
+ "type": "object",
6
+ "properties": {
7
+ "_meta": {
8
+ "$ref": "util.json#/$defs/metaBlock"
9
+ },
10
+ "optionalfeatureFluff": {
11
+ "$ref": "util.json#/$defs/genericFluffArray"
12
+ }
13
+ },
14
+ "additionalProperties": false
15
+ }
@@ -614,6 +614,9 @@
614
614
  "optionalfeature": {
615
615
  "$ref": "optionalfeatures.json#/properties/optionalfeature"
616
616
  },
617
+ "optionalfeatureFluff": {
618
+ "$ref": "fluff-optionalfeatures.json#/properties/optionalfeatureFluff"
619
+ },
617
620
  "psionic": {
618
621
  "$ref": "psionics.json#/properties/psionic"
619
622
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "optionalfeatures.json",
4
- "version": "1.12.1",
4
+ "version": "1.12.2",
5
5
  "title": "Optional Features",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -106,6 +106,15 @@
106
106
  "conditionImmune": {
107
107
  "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
108
108
  },
109
+ "hasFluff": {
110
+ "const": true
111
+ },
112
+ "hasFluffImages": {
113
+ "const": true
114
+ },
115
+ "fluff": {
116
+ "$ref": "util.json#/$defs/fluffObject"
117
+ },
109
118
  "foundrySystem": {
110
119
  "$ref": "util-foundry.json#/$defs/foundrySystemObject"
111
120
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.21.24",
3
+ "version": "1.21.25",
4
4
  "title": "Bestiary Schema",
5
5
  "$id": "bestiary.json",
6
6
  "type": "object",
@@ -313,6 +313,9 @@
313
313
  "type": "string"
314
314
  }
315
315
  },
316
+ "required": [
317
+ "special"
318
+ ],
316
319
  "additionalProperties": false
317
320
  }
318
321
  ]
@@ -364,7 +367,8 @@
364
367
  "$ref": "../entry.json"
365
368
  }
366
369
  },
367
- "additionalProperties": false
370
+ "additionalProperties": false,
371
+ "minProperties": 1
368
372
  },
369
373
  "skill": {
370
374
  "type": "object",
@@ -495,7 +499,8 @@
495
499
  "$ref": "../entry.json"
496
500
  }
497
501
  },
498
- "additionalProperties": false
502
+ "additionalProperties": false,
503
+ "minProperties": 1
499
504
  },
500
505
  "senses": {
501
506
  "oneOf": [
@@ -503,7 +508,8 @@
503
508
  "type": "array",
504
509
  "items": {
505
510
  "type": "string"
506
- }
511
+ },
512
+ "minItems": 1
507
513
  },
508
514
  {
509
515
  "type": "null"
@@ -1249,7 +1255,8 @@
1249
1255
  }
1250
1256
  }
1251
1257
  },
1252
- "additionalProperties": false
1258
+ "additionalProperties": false,
1259
+ "minProperties": 1
1253
1260
  }
1254
1261
  ]
1255
1262
  },
@@ -1473,6 +1480,9 @@
1473
1480
  "type": "string"
1474
1481
  }
1475
1482
  },
1483
+ "required": [
1484
+ "special"
1485
+ ],
1476
1486
  "additionalProperties": false
1477
1487
  }
1478
1488
  ]
@@ -1524,7 +1534,8 @@
1524
1534
  "$ref": "../entry.json"
1525
1535
  }
1526
1536
  },
1527
- "additionalProperties": false
1537
+ "additionalProperties": false,
1538
+ "minProperties": 1
1528
1539
  },
1529
1540
  "skill": {
1530
1541
  "type": "object",
@@ -1655,7 +1666,8 @@
1655
1666
  "$ref": "../entry.json"
1656
1667
  }
1657
1668
  },
1658
- "additionalProperties": false
1669
+ "additionalProperties": false,
1670
+ "minProperties": 1
1659
1671
  },
1660
1672
  "senses": {
1661
1673
  "oneOf": [
@@ -1663,7 +1675,8 @@
1663
1675
  "type": "array",
1664
1676
  "items": {
1665
1677
  "type": "string"
1666
- }
1678
+ },
1679
+ "minItems": 1
1667
1680
  },
1668
1681
  {
1669
1682
  "type": "null"
@@ -2409,7 +2422,8 @@
2409
2422
  }
2410
2423
  }
2411
2424
  },
2412
- "additionalProperties": false
2425
+ "additionalProperties": false,
2426
+ "minProperties": 1
2413
2427
  }
2414
2428
  ]
2415
2429
  },
@@ -2638,6 +2652,9 @@
2638
2652
  "type": "string"
2639
2653
  }
2640
2654
  },
2655
+ "required": [
2656
+ "special"
2657
+ ],
2641
2658
  "additionalProperties": false
2642
2659
  }
2643
2660
  ]
@@ -2689,7 +2706,8 @@
2689
2706
  "$ref": "../entry.json"
2690
2707
  }
2691
2708
  },
2692
- "additionalProperties": false
2709
+ "additionalProperties": false,
2710
+ "minProperties": 1
2693
2711
  },
2694
2712
  "skill": {
2695
2713
  "type": "object",
@@ -2820,7 +2838,8 @@
2820
2838
  "$ref": "../entry.json"
2821
2839
  }
2822
2840
  },
2823
- "additionalProperties": false
2841
+ "additionalProperties": false,
2842
+ "minProperties": 1
2824
2843
  },
2825
2844
  "senses": {
2826
2845
  "oneOf": [
@@ -2828,7 +2847,8 @@
2828
2847
  "type": "array",
2829
2848
  "items": {
2830
2849
  "type": "string"
2831
- }
2850
+ },
2851
+ "minItems": 1
2832
2852
  },
2833
2853
  {
2834
2854
  "type": "null"
@@ -3574,7 +3594,8 @@
3574
3594
  }
3575
3595
  }
3576
3596
  },
3577
- "additionalProperties": false
3597
+ "additionalProperties": false,
3598
+ "minProperties": 1
3578
3599
  }
3579
3600
  ]
3580
3601
  },
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "fluff-optionalfeatures.json",
4
+ "version": "1.0.0",
5
+ "type": "object",
6
+ "properties": {
7
+ "_meta": {
8
+ "$ref": "util.json#/$defs/metaBlock"
9
+ },
10
+ "optionalfeatureFluff": {
11
+ "$ref": "util.json#/$defs/genericFluffArray"
12
+ }
13
+ },
14
+ "additionalProperties": false
15
+ }
@@ -612,6 +612,9 @@
612
612
  "optionalfeature": {
613
613
  "$ref": "optionalfeatures.json#/properties/optionalfeature"
614
614
  },
615
+ "optionalfeatureFluff": {
616
+ "$ref": "fluff-optionalfeatures.json#/properties/optionalfeatureFluff"
617
+ },
615
618
  "psionic": {
616
619
  "$ref": "psionics.json#/properties/psionic"
617
620
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "optionalfeatures.json",
4
- "version": "1.12.1",
4
+ "version": "1.12.2",
5
5
  "title": "Optional Features",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -106,6 +106,15 @@
106
106
  "conditionImmune": {
107
107
  "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
108
108
  },
109
+ "hasFluff": {
110
+ "const": true
111
+ },
112
+ "hasFluffImages": {
113
+ "const": true
114
+ },
115
+ "fluff": {
116
+ "$ref": "util.json#/$defs/fluffObject"
117
+ },
109
118
  "foundrySystem": {
110
119
  "$ref": "util-foundry.json#/$defs/foundrySystemObject"
111
120
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.21.24",
3
+ "version": "1.21.25",
4
4
  "title": "Bestiary Schema",
5
5
  "$id": "bestiary.json",
6
6
  "type": "object",
@@ -313,6 +313,9 @@
313
313
  "type": "string"
314
314
  }
315
315
  },
316
+ "required": [
317
+ "special"
318
+ ],
316
319
  "additionalProperties": false
317
320
  }
318
321
  ]
@@ -360,7 +363,8 @@
360
363
  "type": "string"
361
364
  }
362
365
  },
363
- "additionalProperties": false
366
+ "additionalProperties": false,
367
+ "minProperties": 1
364
368
  },
365
369
  "skill": {
366
370
  "type": "object",
@@ -487,7 +491,8 @@
487
491
  }
488
492
  }
489
493
  },
490
- "additionalProperties": false
494
+ "additionalProperties": false,
495
+ "minProperties": 1
491
496
  },
492
497
  "senses": {
493
498
  "oneOf": [
@@ -495,7 +500,8 @@
495
500
  "type": "array",
496
501
  "items": {
497
502
  "type": "string"
498
- }
503
+ },
504
+ "minItems": 1
499
505
  },
500
506
  {
501
507
  "type": "null"
@@ -1377,6 +1383,9 @@
1377
1383
  "type": "string"
1378
1384
  }
1379
1385
  },
1386
+ "required": [
1387
+ "special"
1388
+ ],
1380
1389
  "additionalProperties": false
1381
1390
  }
1382
1391
  ]
@@ -1424,7 +1433,8 @@
1424
1433
  "type": "string"
1425
1434
  }
1426
1435
  },
1427
- "additionalProperties": false
1436
+ "additionalProperties": false,
1437
+ "minProperties": 1
1428
1438
  },
1429
1439
  "skill": {
1430
1440
  "type": "object",
@@ -1551,7 +1561,8 @@
1551
1561
  }
1552
1562
  }
1553
1563
  },
1554
- "additionalProperties": false
1564
+ "additionalProperties": false,
1565
+ "minProperties": 1
1555
1566
  },
1556
1567
  "senses": {
1557
1568
  "oneOf": [
@@ -1559,7 +1570,8 @@
1559
1570
  "type": "array",
1560
1571
  "items": {
1561
1572
  "type": "string"
1562
- }
1573
+ },
1574
+ "minItems": 1
1563
1575
  },
1564
1576
  {
1565
1577
  "type": "null"
@@ -2446,6 +2458,9 @@
2446
2458
  "type": "string"
2447
2459
  }
2448
2460
  },
2461
+ "required": [
2462
+ "special"
2463
+ ],
2449
2464
  "additionalProperties": false
2450
2465
  }
2451
2466
  ]
@@ -2493,7 +2508,8 @@
2493
2508
  "type": "string"
2494
2509
  }
2495
2510
  },
2496
- "additionalProperties": false
2511
+ "additionalProperties": false,
2512
+ "minProperties": 1
2497
2513
  },
2498
2514
  "skill": {
2499
2515
  "type": "object",
@@ -2620,7 +2636,8 @@
2620
2636
  }
2621
2637
  }
2622
2638
  },
2623
- "additionalProperties": false
2639
+ "additionalProperties": false,
2640
+ "minProperties": 1
2624
2641
  },
2625
2642
  "senses": {
2626
2643
  "oneOf": [
@@ -2628,7 +2645,8 @@
2628
2645
  "type": "array",
2629
2646
  "items": {
2630
2647
  "type": "string"
2631
- }
2648
+ },
2649
+ "minItems": 1
2632
2650
  },
2633
2651
  {
2634
2652
  "type": "null"
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "fluff-optionalfeatures.json",
4
+ "version": "1.0.0",
5
+ "type": "object",
6
+ "properties": {
7
+ "_meta": {
8
+ "$ref": "util.json#/$defs/metaBlock"
9
+ },
10
+ "optionalfeatureFluff": {
11
+ "$ref": "util.json#/$defs/genericFluffArray"
12
+ }
13
+ },
14
+ "additionalProperties": false
15
+ }
@@ -614,6 +614,9 @@
614
614
  "optionalfeature": {
615
615
  "$ref": "optionalfeatures.json#/properties/optionalfeature"
616
616
  },
617
+ "optionalfeatureFluff": {
618
+ "$ref": "fluff-optionalfeatures.json#/properties/optionalfeatureFluff"
619
+ },
617
620
  "psionic": {
618
621
  "$ref": "psionics.json#/properties/psionic"
619
622
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "optionalfeatures.json",
4
- "version": "1.12.1",
4
+ "version": "1.12.2",
5
5
  "title": "Optional Features",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -105,6 +105,12 @@
105
105
  },
106
106
  "conditionImmune": {
107
107
  "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
108
+ },
109
+ "hasFluff": {
110
+ "const": true
111
+ },
112
+ "hasFluffImages": {
113
+ "const": true
108
114
  }
109
115
  },
110
116
  "required": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.21.24",
3
+ "version": "1.21.25",
4
4
  "title": "Bestiary Schema",
5
5
  "$id": "bestiary.json",
6
6
  "type": "object",
@@ -313,6 +313,9 @@
313
313
  "type": "string"
314
314
  }
315
315
  },
316
+ "required": [
317
+ "special"
318
+ ],
316
319
  "additionalProperties": false
317
320
  }
318
321
  ]
@@ -360,7 +363,8 @@
360
363
  "type": "string"
361
364
  }
362
365
  },
363
- "additionalProperties": false
366
+ "additionalProperties": false,
367
+ "minProperties": 1
364
368
  },
365
369
  "skill": {
366
370
  "type": "object",
@@ -487,7 +491,8 @@
487
491
  }
488
492
  }
489
493
  },
490
- "additionalProperties": false
494
+ "additionalProperties": false,
495
+ "minProperties": 1
491
496
  },
492
497
  "senses": {
493
498
  "oneOf": [
@@ -495,7 +500,8 @@
495
500
  "type": "array",
496
501
  "items": {
497
502
  "type": "string"
498
- }
503
+ },
504
+ "minItems": 1
499
505
  },
500
506
  {
501
507
  "type": "null"
@@ -1377,6 +1383,9 @@
1377
1383
  "type": "string"
1378
1384
  }
1379
1385
  },
1386
+ "required": [
1387
+ "special"
1388
+ ],
1380
1389
  "additionalProperties": false
1381
1390
  }
1382
1391
  ]
@@ -1424,7 +1433,8 @@
1424
1433
  "type": "string"
1425
1434
  }
1426
1435
  },
1427
- "additionalProperties": false
1436
+ "additionalProperties": false,
1437
+ "minProperties": 1
1428
1438
  },
1429
1439
  "skill": {
1430
1440
  "type": "object",
@@ -1551,7 +1561,8 @@
1551
1561
  }
1552
1562
  }
1553
1563
  },
1554
- "additionalProperties": false
1564
+ "additionalProperties": false,
1565
+ "minProperties": 1
1555
1566
  },
1556
1567
  "senses": {
1557
1568
  "oneOf": [
@@ -1559,7 +1570,8 @@
1559
1570
  "type": "array",
1560
1571
  "items": {
1561
1572
  "type": "string"
1562
- }
1573
+ },
1574
+ "minItems": 1
1563
1575
  },
1564
1576
  {
1565
1577
  "type": "null"
@@ -2446,6 +2458,9 @@
2446
2458
  "type": "string"
2447
2459
  }
2448
2460
  },
2461
+ "required": [
2462
+ "special"
2463
+ ],
2449
2464
  "additionalProperties": false
2450
2465
  }
2451
2466
  ]
@@ -2493,7 +2508,8 @@
2493
2508
  "type": "string"
2494
2509
  }
2495
2510
  },
2496
- "additionalProperties": false
2511
+ "additionalProperties": false,
2512
+ "minProperties": 1
2497
2513
  },
2498
2514
  "skill": {
2499
2515
  "type": "object",
@@ -2620,7 +2636,8 @@
2620
2636
  }
2621
2637
  }
2622
2638
  },
2623
- "additionalProperties": false
2639
+ "additionalProperties": false,
2640
+ "minProperties": 1
2624
2641
  },
2625
2642
  "senses": {
2626
2643
  "oneOf": [
@@ -2628,7 +2645,8 @@
2628
2645
  "type": "array",
2629
2646
  "items": {
2630
2647
  "type": "string"
2631
- }
2648
+ },
2649
+ "minItems": 1
2632
2650
  },
2633
2651
  {
2634
2652
  "type": "null"
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "fluff-optionalfeatures.json",
4
+ "version": "1.0.0",
5
+ "type": "object",
6
+ "properties": {
7
+ "_meta": {
8
+ "$ref": "util.json#/$defs/metaBlock"
9
+ },
10
+ "optionalfeatureFluff": {
11
+ "$ref": "util.json#/$defs/genericFluffArray"
12
+ }
13
+ },
14
+ "additionalProperties": false
15
+ }
@@ -612,6 +612,9 @@
612
612
  "optionalfeature": {
613
613
  "$ref": "optionalfeatures.json#/properties/optionalfeature"
614
614
  },
615
+ "optionalfeatureFluff": {
616
+ "$ref": "fluff-optionalfeatures.json#/properties/optionalfeatureFluff"
617
+ },
615
618
  "psionic": {
616
619
  "$ref": "psionics.json#/properties/psionic"
617
620
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "optionalfeatures.json",
4
- "version": "1.12.1",
4
+ "version": "1.12.2",
5
5
  "title": "Optional Features",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -105,6 +105,12 @@
105
105
  },
106
106
  "conditionImmune": {
107
107
  "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
108
+ },
109
+ "hasFluff": {
110
+ "const": true
111
+ },
112
+ "hasFluffImages": {
113
+ "const": true
108
114
  }
109
115
  },
110
116
  "required": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.21.24",
3
+ "version": "1.21.25",
4
4
  "title": "Bestiary Schema",
5
5
  "$id": "bestiary.json",
6
6
  "type": "object",
@@ -313,6 +313,9 @@
313
313
  "type": "string"
314
314
  }
315
315
  },
316
+ "required": [
317
+ "special"
318
+ ],
316
319
  "additionalProperties": false
317
320
  }
318
321
  ]
@@ -360,7 +363,8 @@
360
363
  "type": "string"
361
364
  }
362
365
  },
363
- "additionalProperties": false
366
+ "additionalProperties": false,
367
+ "minProperties": 1
364
368
  },
365
369
  "skill": {
366
370
  "type": "object",
@@ -487,7 +491,8 @@
487
491
  }
488
492
  }
489
493
  },
490
- "additionalProperties": false
494
+ "additionalProperties": false,
495
+ "minProperties": 1
491
496
  },
492
497
  "senses": {
493
498
  "oneOf": [
@@ -495,7 +500,8 @@
495
500
  "type": "array",
496
501
  "items": {
497
502
  "type": "string"
498
- }
503
+ },
504
+ "minItems": 1
499
505
  },
500
506
  {
501
507
  "type": "null"
@@ -1386,6 +1392,9 @@
1386
1392
  "type": "string"
1387
1393
  }
1388
1394
  },
1395
+ "required": [
1396
+ "special"
1397
+ ],
1389
1398
  "additionalProperties": false
1390
1399
  }
1391
1400
  ]
@@ -1433,7 +1442,8 @@
1433
1442
  "type": "string"
1434
1443
  }
1435
1444
  },
1436
- "additionalProperties": false
1445
+ "additionalProperties": false,
1446
+ "minProperties": 1
1437
1447
  },
1438
1448
  "skill": {
1439
1449
  "type": "object",
@@ -1560,7 +1570,8 @@
1560
1570
  }
1561
1571
  }
1562
1572
  },
1563
- "additionalProperties": false
1573
+ "additionalProperties": false,
1574
+ "minProperties": 1
1564
1575
  },
1565
1576
  "senses": {
1566
1577
  "oneOf": [
@@ -1568,7 +1579,8 @@
1568
1579
  "type": "array",
1569
1580
  "items": {
1570
1581
  "type": "string"
1571
- }
1582
+ },
1583
+ "minItems": 1
1572
1584
  },
1573
1585
  {
1574
1586
  "type": "null"
@@ -2464,6 +2476,9 @@
2464
2476
  "type": "string"
2465
2477
  }
2466
2478
  },
2479
+ "required": [
2480
+ "special"
2481
+ ],
2467
2482
  "additionalProperties": false
2468
2483
  }
2469
2484
  ]
@@ -2511,7 +2526,8 @@
2511
2526
  "type": "string"
2512
2527
  }
2513
2528
  },
2514
- "additionalProperties": false
2529
+ "additionalProperties": false,
2530
+ "minProperties": 1
2515
2531
  },
2516
2532
  "skill": {
2517
2533
  "type": "object",
@@ -2638,7 +2654,8 @@
2638
2654
  }
2639
2655
  }
2640
2656
  },
2641
- "additionalProperties": false
2657
+ "additionalProperties": false,
2658
+ "minProperties": 1
2642
2659
  },
2643
2660
  "senses": {
2644
2661
  "oneOf": [
@@ -2646,7 +2663,8 @@
2646
2663
  "type": "array",
2647
2664
  "items": {
2648
2665
  "type": "string"
2649
- }
2666
+ },
2667
+ "minItems": 1
2650
2668
  },
2651
2669
  {
2652
2670
  "type": "null"
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "fluff-optionalfeatures.json",
4
+ "version": "1.0.0",
5
+ "type": "object",
6
+ "properties": {
7
+ "_meta": {
8
+ "$ref": "util.json#/$defs/metaBlock"
9
+ },
10
+ "optionalfeatureFluff": {
11
+ "$ref": "util.json#/$defs/genericFluffArray"
12
+ }
13
+ },
14
+ "additionalProperties": false
15
+ }
@@ -614,6 +614,9 @@
614
614
  "optionalfeature": {
615
615
  "$ref": "optionalfeatures.json#/properties/optionalfeature"
616
616
  },
617
+ "optionalfeatureFluff": {
618
+ "$ref": "fluff-optionalfeatures.json#/properties/optionalfeatureFluff"
619
+ },
617
620
  "psionic": {
618
621
  "$ref": "psionics.json#/properties/psionic"
619
622
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "optionalfeatures.json",
4
- "version": "1.12.1",
4
+ "version": "1.12.2",
5
5
  "title": "Optional Features",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -105,6 +105,12 @@
105
105
  },
106
106
  "conditionImmune": {
107
107
  "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
108
+ },
109
+ "hasFluff": {
110
+ "const": true
111
+ },
112
+ "hasFluffImages": {
113
+ "const": true
108
114
  }
109
115
  },
110
116
  "required": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "1.21.24",
3
+ "version": "1.21.25",
4
4
  "title": "Bestiary Schema",
5
5
  "$id": "bestiary.json",
6
6
  "type": "object",
@@ -313,6 +313,9 @@
313
313
  "type": "string"
314
314
  }
315
315
  },
316
+ "required": [
317
+ "special"
318
+ ],
316
319
  "additionalProperties": false
317
320
  }
318
321
  ]
@@ -360,7 +363,8 @@
360
363
  "type": "string"
361
364
  }
362
365
  },
363
- "additionalProperties": false
366
+ "additionalProperties": false,
367
+ "minProperties": 1
364
368
  },
365
369
  "skill": {
366
370
  "type": "object",
@@ -487,7 +491,8 @@
487
491
  }
488
492
  }
489
493
  },
490
- "additionalProperties": false
494
+ "additionalProperties": false,
495
+ "minProperties": 1
491
496
  },
492
497
  "senses": {
493
498
  "oneOf": [
@@ -495,7 +500,8 @@
495
500
  "type": "array",
496
501
  "items": {
497
502
  "type": "string"
498
- }
503
+ },
504
+ "minItems": 1
499
505
  },
500
506
  {
501
507
  "type": "null"
@@ -1386,6 +1392,9 @@
1386
1392
  "type": "string"
1387
1393
  }
1388
1394
  },
1395
+ "required": [
1396
+ "special"
1397
+ ],
1389
1398
  "additionalProperties": false
1390
1399
  }
1391
1400
  ]
@@ -1433,7 +1442,8 @@
1433
1442
  "type": "string"
1434
1443
  }
1435
1444
  },
1436
- "additionalProperties": false
1445
+ "additionalProperties": false,
1446
+ "minProperties": 1
1437
1447
  },
1438
1448
  "skill": {
1439
1449
  "type": "object",
@@ -1560,7 +1570,8 @@
1560
1570
  }
1561
1571
  }
1562
1572
  },
1563
- "additionalProperties": false
1573
+ "additionalProperties": false,
1574
+ "minProperties": 1
1564
1575
  },
1565
1576
  "senses": {
1566
1577
  "oneOf": [
@@ -1568,7 +1579,8 @@
1568
1579
  "type": "array",
1569
1580
  "items": {
1570
1581
  "type": "string"
1571
- }
1582
+ },
1583
+ "minItems": 1
1572
1584
  },
1573
1585
  {
1574
1586
  "type": "null"
@@ -2464,6 +2476,9 @@
2464
2476
  "type": "string"
2465
2477
  }
2466
2478
  },
2479
+ "required": [
2480
+ "special"
2481
+ ],
2467
2482
  "additionalProperties": false
2468
2483
  }
2469
2484
  ]
@@ -2511,7 +2526,8 @@
2511
2526
  "type": "string"
2512
2527
  }
2513
2528
  },
2514
- "additionalProperties": false
2529
+ "additionalProperties": false,
2530
+ "minProperties": 1
2515
2531
  },
2516
2532
  "skill": {
2517
2533
  "type": "object",
@@ -2638,7 +2654,8 @@
2638
2654
  }
2639
2655
  }
2640
2656
  },
2641
- "additionalProperties": false
2657
+ "additionalProperties": false,
2658
+ "minProperties": 1
2642
2659
  },
2643
2660
  "senses": {
2644
2661
  "oneOf": [
@@ -2646,7 +2663,8 @@
2646
2663
  "type": "array",
2647
2664
  "items": {
2648
2665
  "type": "string"
2649
- }
2666
+ },
2667
+ "minItems": 1
2650
2668
  },
2651
2669
  {
2652
2670
  "type": "null"
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "fluff-optionalfeatures.json",
4
+ "version": "1.0.0",
5
+ "type": "object",
6
+ "properties": {
7
+ "_meta": {
8
+ "$ref": "util.json#/$defs/metaBlock"
9
+ },
10
+ "optionalfeatureFluff": {
11
+ "$ref": "util.json#/$defs/genericFluffArray"
12
+ }
13
+ },
14
+ "additionalProperties": false
15
+ }
@@ -612,6 +612,9 @@
612
612
  "optionalfeature": {
613
613
  "$ref": "optionalfeatures.json#/properties/optionalfeature"
614
614
  },
615
+ "optionalfeatureFluff": {
616
+ "$ref": "fluff-optionalfeatures.json#/properties/optionalfeatureFluff"
617
+ },
615
618
  "psionic": {
616
619
  "$ref": "psionics.json#/properties/psionic"
617
620
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "optionalfeatures.json",
4
- "version": "1.12.1",
4
+ "version": "1.12.2",
5
5
  "title": "Optional Features",
6
6
  "type": "object",
7
7
  "$defs": {
@@ -105,6 +105,12 @@
105
105
  },
106
106
  "conditionImmune": {
107
107
  "$ref": "util.json#/$defs/conditionImmunityArrayPlayer"
108
+ },
109
+ "hasFluff": {
110
+ "const": true
111
+ },
112
+ "hasFluffImages": {
113
+ "const": true
108
114
  }
109
115
  },
110
116
  "required": [