optolith-database-schema 0.0.2 → 0.1.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.
Files changed (221) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/lib/types/Advantage.d.ts +48 -0
  3. package/lib/types/Advantage.js +4 -0
  4. package/lib/types/ArcaneBardTradition.d.ts +2 -2
  5. package/lib/types/ArcaneDancerTradition.d.ts +2 -2
  6. package/lib/types/Blessing.d.ts +124 -0
  7. package/lib/types/Blessing.js +4 -0
  8. package/lib/types/Cantrip.d.ts +220 -0
  9. package/lib/types/Cantrip.js +4 -0
  10. package/lib/types/Ceremony.d.ts +2 -8
  11. package/lib/types/Continent.d.ts +32 -0
  12. package/lib/types/Continent.js +4 -0
  13. package/lib/types/DerivedCharacteristic.d.ts +2 -2
  14. package/lib/types/Disadvantage.d.ts +46 -0
  15. package/lib/types/Disadvantage.js +4 -0
  16. package/lib/types/LiturgicalChant.d.ts +2 -8
  17. package/lib/types/PactCategory.d.ts +90 -0
  18. package/lib/types/PactCategory.js +4 -0
  19. package/lib/types/Patron.d.ts +197 -0
  20. package/lib/types/Patron.js +4 -0
  21. package/lib/types/PatronCategory.d.ts +44 -0
  22. package/lib/types/PatronCategory.js +4 -0
  23. package/lib/types/Ritual.d.ts +2 -2
  24. package/lib/types/Spell.d.ts +2 -2
  25. package/lib/types/_Activatable.d.ts +528 -0
  26. package/lib/types/_Activatable.js +5 -0
  27. package/lib/types/_ActivatableSkill.d.ts +44 -22
  28. package/lib/types/_Enhancements.d.ts +2 -2
  29. package/lib/types/_I18n.d.ts +38 -0
  30. package/lib/types/_I18n.js +1 -0
  31. package/lib/types/_Identifier.d.ts +81 -75
  32. package/lib/types/_Identifier.js +76 -1
  33. package/lib/types/_Influence.d.ts +52 -0
  34. package/lib/types/_Influence.js +4 -0
  35. package/lib/types/_Prerequisite.d.ts +343 -296
  36. package/lib/types/_Prerequisite.js +136 -183
  37. package/lib/types/magicalActions/GeodeRitual.d.ts +2 -2
  38. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +34 -0
  39. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +4 -0
  40. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +32 -0
  41. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +4 -0
  42. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +32 -0
  43. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +4 -0
  44. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +32 -0
  45. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +4 -0
  46. package/lib/types/specialAbility/AncestorGlyph.d.ts +30 -0
  47. package/lib/types/specialAbility/AncestorGlyph.js +4 -0
  48. package/lib/types/specialAbility/BlessedTradition.d.ts +170 -0
  49. package/lib/types/specialAbility/BlessedTradition.js +4 -0
  50. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +32 -0
  51. package/lib/types/specialAbility/BrawlingSpecialAbility.js +4 -0
  52. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +33 -0
  53. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +4 -0
  54. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +34 -0
  55. package/lib/types/specialAbility/CombatSpecialAbility.js +4 -0
  56. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +43 -0
  57. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +4 -0
  58. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +32 -0
  59. package/lib/types/specialAbility/CommandSpecialAbility.js +4 -0
  60. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +30 -0
  61. package/lib/types/specialAbility/FamiliarSpecialAbility.js +4 -0
  62. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +30 -0
  63. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +4 -0
  64. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +32 -0
  65. package/lib/types/specialAbility/FatePointSpecialAbility.js +4 -0
  66. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +32 -0
  67. package/lib/types/specialAbility/GeneralSpecialAbility.js +4 -0
  68. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +30 -0
  69. package/lib/types/specialAbility/KarmaSpecialAbility.js +4 -0
  70. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +33 -0
  71. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +4 -0
  72. package/lib/types/specialAbility/LycantropicGift.d.ts +30 -0
  73. package/lib/types/specialAbility/LycantropicGift.js +4 -0
  74. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +33 -0
  75. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +4 -0
  76. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +32 -0
  77. package/lib/types/specialAbility/MagicalSpecialAbility.js +4 -0
  78. package/lib/types/specialAbility/MagicalTradition.d.ts +130 -0
  79. package/lib/types/specialAbility/MagicalTradition.js +4 -0
  80. package/lib/types/specialAbility/PactGift.d.ts +86 -0
  81. package/lib/types/specialAbility/PactGift.js +4 -0
  82. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +41 -0
  83. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +4 -0
  84. package/lib/types/specialAbility/Sermon.d.ts +30 -0
  85. package/lib/types/specialAbility/Sermon.js +4 -0
  86. package/lib/types/specialAbility/SexSpecialAbility.d.ts +32 -0
  87. package/lib/types/specialAbility/SexSpecialAbility.js +4 -0
  88. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +30 -0
  89. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +4 -0
  90. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +31 -0
  91. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +4 -0
  92. package/lib/types/specialAbility/VampiricGift.d.ts +30 -0
  93. package/lib/types/specialAbility/VampiricGift.js +4 -0
  94. package/lib/types/specialAbility/Vision.d.ts +30 -0
  95. package/lib/types/specialAbility/Vision.js +4 -0
  96. package/lib/types/specialAbility/sub/Language.d.ts +141 -0
  97. package/lib/types/specialAbility/sub/Language.js +4 -0
  98. package/lib/types/specialAbility/sub/Script.d.ts +85 -0
  99. package/lib/types/specialAbility/sub/Script.js +4 -0
  100. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +31 -0
  101. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +4 -0
  102. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +31 -0
  103. package/lib/types/traditionArtifacts/AttireEnchantment.js +4 -0
  104. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +31 -0
  105. package/lib/types/traditionArtifacts/BowlEnchantment.js +4 -0
  106. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +44 -0
  107. package/lib/types/traditionArtifacts/CauldronEnchantment.js +4 -0
  108. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +31 -0
  109. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +4 -0
  110. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +31 -0
  111. package/lib/types/traditionArtifacts/DaggerRitual.js +4 -0
  112. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +31 -0
  113. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +4 -0
  114. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +31 -0
  115. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +4 -0
  116. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +31 -0
  117. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +4 -0
  118. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +31 -0
  119. package/lib/types/traditionArtifacts/OrbEnchantment.js +4 -0
  120. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +31 -0
  121. package/lib/types/traditionArtifacts/RingEnchantment.js +4 -0
  122. package/lib/types/traditionArtifacts/SickleRitual.d.ts +31 -0
  123. package/lib/types/traditionArtifacts/SickleRitual.js +4 -0
  124. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +31 -0
  125. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +4 -0
  126. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +31 -0
  127. package/lib/types/traditionArtifacts/StaffEnchantment.js +4 -0
  128. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +31 -0
  129. package/lib/types/traditionArtifacts/ToyEnchantment.js +4 -0
  130. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +31 -0
  131. package/lib/types/traditionArtifacts/Trinkhornzauber.js +4 -0
  132. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +31 -0
  133. package/lib/types/traditionArtifacts/WandEnchantment.js +4 -0
  134. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +31 -0
  135. package/lib/types/traditionArtifacts/WeaponEnchantment.js +4 -0
  136. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +42 -0
  137. package/lib/types/traditionArtifacts/sub/AnimalShape.js +4 -0
  138. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +30 -0
  139. package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +4 -0
  140. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +42 -0
  141. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +4 -0
  142. package/lib/types/traditionArtifacts/sub/Brew.d.ts +30 -0
  143. package/lib/types/traditionArtifacts/sub/Brew.js +4 -0
  144. package/package.json +2 -2
  145. package/schema/Advantage.schema.json +81 -0
  146. package/schema/ArcaneBardTradition.schema.json +1 -1
  147. package/schema/ArcaneDancerTradition.schema.json +1 -1
  148. package/schema/Blessing.schema.json +227 -0
  149. package/schema/Cantrip.schema.json +427 -0
  150. package/schema/Ceremony.schema.json +1 -7
  151. package/schema/Continent.schema.json +46 -0
  152. package/schema/DerivedCharacteristic.schema.json +1 -1
  153. package/schema/Disadvantage.schema.json +75 -0
  154. package/schema/LiturgicalChant.schema.json +1 -7
  155. package/schema/PactCategory.schema.json +138 -0
  156. package/schema/Patron.schema.json +407 -0
  157. package/schema/PatronCategory.schema.json +66 -0
  158. package/schema/Ritual.schema.json +1 -1
  159. package/schema/Spell.schema.json +1 -1
  160. package/schema/_Activatable.schema.json +1182 -0
  161. package/schema/_ActivatableSkill.schema.json +53 -22
  162. package/schema/_Enhancements.schema.json +1 -1
  163. package/schema/_I18n.schema.json +38 -0
  164. package/schema/_Identifier.schema.json +90 -113
  165. package/schema/_Influence.schema.json +77 -0
  166. package/schema/_Prerequisite.schema.json +703 -573
  167. package/schema/magicalActions/GeodeRitual.schema.json +1 -1
  168. package/schema/source/Publication.schema.json +1 -1
  169. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +76 -0
  170. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +68 -0
  171. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +68 -0
  172. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +68 -0
  173. package/schema/specialAbility/AncestorGlyph.schema.json +62 -0
  174. package/schema/specialAbility/BlessedTradition.schema.json +300 -0
  175. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +70 -0
  176. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +72 -0
  177. package/schema/specialAbility/CombatSpecialAbility.schema.json +76 -0
  178. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +110 -0
  179. package/schema/specialAbility/CommandSpecialAbility.schema.json +70 -0
  180. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +62 -0
  181. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +62 -0
  182. package/schema/specialAbility/FatePointSpecialAbility.schema.json +68 -0
  183. package/schema/specialAbility/GeneralSpecialAbility.schema.json +68 -0
  184. package/schema/specialAbility/KarmaSpecialAbility.schema.json +62 -0
  185. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +72 -0
  186. package/schema/specialAbility/LycantropicGift.schema.json +62 -0
  187. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +72 -0
  188. package/schema/specialAbility/MagicalSpecialAbility.schema.json +68 -0
  189. package/schema/specialAbility/MagicalTradition.schema.json +181 -0
  190. package/schema/specialAbility/PactGift.schema.json +215 -0
  191. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +70 -0
  192. package/schema/specialAbility/Sermon.schema.json +62 -0
  193. package/schema/specialAbility/SexSpecialAbility.schema.json +68 -0
  194. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +62 -0
  195. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +66 -0
  196. package/schema/specialAbility/VampiricGift.schema.json +62 -0
  197. package/schema/specialAbility/Vision.schema.json +62 -0
  198. package/schema/specialAbility/sub/Language.schema.json +215 -0
  199. package/schema/specialAbility/sub/Script.schema.json +127 -0
  200. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +66 -0
  201. package/schema/traditionArtifacts/AttireEnchantment.schema.json +66 -0
  202. package/schema/traditionArtifacts/BowlEnchantment.schema.json +66 -0
  203. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +83 -0
  204. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +66 -0
  205. package/schema/traditionArtifacts/DaggerRitual.schema.json +66 -0
  206. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +66 -0
  207. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +66 -0
  208. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +66 -0
  209. package/schema/traditionArtifacts/OrbEnchantment.schema.json +66 -0
  210. package/schema/traditionArtifacts/RingEnchantment.schema.json +66 -0
  211. package/schema/traditionArtifacts/SickleRitual.schema.json +66 -0
  212. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +66 -0
  213. package/schema/traditionArtifacts/StaffEnchantment.schema.json +66 -0
  214. package/schema/traditionArtifacts/ToyEnchantment.schema.json +66 -0
  215. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +66 -0
  216. package/schema/traditionArtifacts/WandEnchantment.schema.json +66 -0
  217. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +66 -0
  218. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +57 -0
  219. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +45 -0
  220. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +57 -0
  221. package/schema/traditionArtifacts/sub/Brew.schema.json +45 -0
@@ -716,17 +716,32 @@
716
716
  },
717
717
  "minItems": 2
718
718
  },
719
- "list_prepend": {
720
- "description": "Place a string between the `for` and the grouped map option labels.",
721
- "type": "string"
722
- },
723
- "list_append": {
724
- "description": "Place a string after the grouped map option labels.",
725
- "type": "string"
726
- },
727
- "replacement": {
728
- "description": "If the string from the book cannot be generated using the default\ngeneration technique, use this string. All options still need to be\ninserted propertly, since it may be used by in-game tools to provide a\nselection to players.",
729
- "type": "string"
719
+ "translations": {
720
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
721
+ "type": "object",
722
+ "patternProperties": {
723
+ "^[a-z]{2}-[A-Z]{2}$": {
724
+ "type": "object",
725
+ "properties": {
726
+ "list_prepend": {
727
+ "description": "Place a string between the `for` and the grouped map option labels.",
728
+ "type": "string"
729
+ },
730
+ "list_append": {
731
+ "description": "Place a string after the grouped map option labels.",
732
+ "type": "string"
733
+ },
734
+ "replacement": {
735
+ "description": "If the string from the book cannot be generated using the default\ngeneration technique, use this string. All options still need to be\ninserted propertly, since it may be used by in-game tools to provide a\nselection to players.",
736
+ "type": "string"
737
+ }
738
+ },
739
+ "required": [],
740
+ "additionalProperties": false
741
+ }
742
+ },
743
+ "minProperties": 1,
744
+ "additionalProperties": false
730
745
  }
731
746
  },
732
747
  "required": [
@@ -747,20 +762,36 @@
747
762
  "type": "integer",
748
763
  "minimum": 0
749
764
  },
750
- "label": {
751
- "description": "The description of the option for cost string generation.",
752
- "type": "string",
753
- "minLength": 1
754
- },
755
- "label_standalone": {
756
- "description": "The description of the option if used standalone. Only used if\ndifferent from `label`.",
757
- "type": "string",
758
- "minLength": 1
765
+ "translations": {
766
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
767
+ "type": "object",
768
+ "patternProperties": {
769
+ "^[a-z]{2}-[A-Z]{2}$": {
770
+ "type": "object",
771
+ "properties": {
772
+ "label": {
773
+ "description": "The description of the option for cost string generation.",
774
+ "type": "string",
775
+ "minLength": 1
776
+ },
777
+ "label_standalone": {
778
+ "description": "The description of the option if used standalone. Only used if\ndifferent from `label`.",
779
+ "type": "string",
780
+ "minLength": 1
781
+ }
782
+ },
783
+ "required": [
784
+ "label"
785
+ ],
786
+ "additionalProperties": false
787
+ }
788
+ },
789
+ "minProperties": 1,
790
+ "additionalProperties": false
759
791
  }
760
792
  },
761
793
  "required": [
762
- "value",
763
- "label"
794
+ "value"
764
795
  ],
765
796
  "additionalProperties": false
766
797
  }
@@ -32,7 +32,7 @@
32
32
  "minimum": 1
33
33
  },
34
34
  "prerequisites": {
35
- "$ref": "./_Prerequisite.schema.json#/definitions/GroupCollection/Enhancement"
35
+ "$ref": "./_Prerequisite.schema.json#/definitions/Prerequisite/GroupCollection/Enhancement"
36
36
  },
37
37
  "src": {
38
38
  "description": "Only defined if different than the associated skill.",
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "_I18n.schema.json",
4
+ "definitions": {
5
+ "PluralizationCategories": {
6
+ "description": "The item can be present in multiple pluralization categories; this object\nunifies handling of them. Not all of the options must be present, however,\nevery possible category for that language should be defined. This means, that\ndifferent languages may have a different amount of properties defined here.\nMore information on pluralization and the Intl.PluralRules API on\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules,\nhttps://unicode-org.github.io/cldr/ldml/tr35-numbers.html#Language_Plural_Rules and\nhttp://cldr.unicode.org/index/cldr-spec/plural-rules.\n\nFrom the third link:\n\n> The minimal pairs are those that are required for correct grammar. So\n> because 0 and 1 don't have to form a minimal pair (it is ok—even though\n> often not optimal—to say '0 people') , 0 doesn't establish a separate\n> category. However, implementations are encouraged to provide the ability to\n> have special plural messages for 0 in particular, so that more natural\n> language can be used:\n>\n> — None of your friends are online.\n>\n> rather than\n>\n> — You have 0 friends online.",
7
+ "type": "object",
8
+ "properties": {
9
+ "zero": {
10
+ "$ref": "#/definitions/NonEmptyString"
11
+ },
12
+ "one": {
13
+ "$ref": "#/definitions/NonEmptyString"
14
+ },
15
+ "two": {
16
+ "$ref": "#/definitions/NonEmptyString"
17
+ },
18
+ "few": {
19
+ "$ref": "#/definitions/NonEmptyString"
20
+ },
21
+ "many": {
22
+ "$ref": "#/definitions/NonEmptyString"
23
+ },
24
+ "other": {
25
+ "$ref": "#/definitions/NonEmptyString"
26
+ }
27
+ },
28
+ "required": [
29
+ "other"
30
+ ],
31
+ "additionalProperties": false
32
+ },
33
+ "NonEmptyString": {
34
+ "type": "string",
35
+ "minLength": 1
36
+ }
37
+ }
38
+ }
@@ -3,89 +3,93 @@
3
3
  "$id": "_Identifier.schema.json",
4
4
  "definitions": {
5
5
  "Identifier": {
6
- "Tagged": {
7
- "Attribute": {
8
- "type": "object",
9
- "properties": {
10
- "tag": {
11
- "const": "Attribute"
12
- },
13
- "value": {
14
- "description": "The attribute's numeric identifier.",
15
- "type": "integer",
16
- "maximum": 8,
17
- "minimum": 1
18
- }
19
- },
20
- "required": [
21
- "tag",
22
- "value"
23
- ],
24
- "additionalProperties": false
25
- },
26
- "Skill": {
27
- "type": "object",
28
- "properties": {
29
- "tag": {
30
- "const": "Skill"
31
- },
32
- "value": {
33
- "description": "The skill's numeric identifier.",
34
- "type": "integer",
35
- "minimum": 1
36
- }
37
- },
38
- "required": [
39
- "tag",
40
- "value"
41
- ],
42
- "additionalProperties": false
6
+ "Tag": {
7
+ "Activatable": {
8
+ "enum": [
9
+ "Advantage",
10
+ "Disadvantage",
11
+ "GeneralSpecialAbility",
12
+ "FatePointSpecialAbility",
13
+ "CombatSpecialAbility",
14
+ "MagicalSpecialAbility",
15
+ "StaffEnchantment",
16
+ "FamiliarSpecialAbility",
17
+ "KarmaSpecialAbility",
18
+ "ProtectiveWardingCircleSpecialAbility",
19
+ "CombatStyleSpecialAbility",
20
+ "AdvancedCombatSpecialAbility",
21
+ "CommandSpecialAbility",
22
+ "MagicStyleSpecialAbility",
23
+ "AdvancedMagicalSpecialAbility",
24
+ "SpellSwordEnchantment",
25
+ "DaggerRitual",
26
+ "InstrumentEnchantment",
27
+ "AttireEnchantment",
28
+ "OrbEnchantment",
29
+ "WandEnchantment",
30
+ "BrawlingSpecialAbility",
31
+ "AncestorGlyph",
32
+ "CeremonialItemSpecialAbility",
33
+ "Sermon",
34
+ "LiturgicalStyleSpecialAbility",
35
+ "AdvancedKarmaSpecialAbility",
36
+ "Vision",
37
+ "MagicalTradition",
38
+ "BlessedTradition",
39
+ "PactGift",
40
+ "SikaryanDrainSpecialAbility",
41
+ "LycantropicGift",
42
+ "SkillStyleSpecialAbility",
43
+ "AdvancedSkillSpecialAbility",
44
+ "ArcaneOrbEnchantment",
45
+ "CauldronEnchantment",
46
+ "FoolsHatEnchantment",
47
+ "ToyEnchantment",
48
+ "BowlEnchantment",
49
+ "FatePointSexSpecialAbility",
50
+ "SexSpecialAbility",
51
+ "WeaponEnchantment",
52
+ "SickleRitual",
53
+ "RingEnchantment",
54
+ "ChronicleEnchantment"
55
+ ]
43
56
  },
44
- "CloseCombatTechnique": {
45
- "type": "object",
46
- "properties": {
47
- "tag": {
48
- "const": "CloseCombatTechnique"
49
- },
50
- "value": {
51
- "description": "The close combat technique's numeric identifier.",
52
- "type": "integer",
53
- "minimum": 1
54
- }
55
- },
56
- "required": [
57
- "tag",
58
- "value"
59
- ],
60
- "additionalProperties": false
57
+ "Rated": {
58
+ "enum": [
59
+ "Attribute",
60
+ "Skill",
61
+ "CloseCombatTechnique",
62
+ "RangedCombatTechnique",
63
+ "Spell",
64
+ "Ritual",
65
+ "LiturgicalChant",
66
+ "Ceremony"
67
+ ]
61
68
  },
62
- "RangedCombatTechnique": {
63
- "type": "object",
64
- "properties": {
65
- "tag": {
66
- "const": "RangedCombatTechnique"
67
- },
68
- "value": {
69
- "description": "The ranged combat technique's numeric identifier.",
70
- "type": "integer",
71
- "minimum": 1
72
- }
73
- },
74
- "required": [
75
- "tag",
76
- "value"
77
- ],
78
- "additionalProperties": false
69
+ "AdvancedSpecialAbilityRestrictedOption": {
70
+ "enum": [
71
+ "General",
72
+ "Element"
73
+ ]
79
74
  },
80
- "Spell": {
75
+ "CombatTechnique": {
76
+ "enum": [
77
+ "CloseCombatTechnique",
78
+ "RangedCombatTechnique"
79
+ ]
80
+ }
81
+ },
82
+ "Group": {
83
+ "Activatable": {
81
84
  "type": "object",
82
85
  "properties": {
83
86
  "tag": {
84
- "const": "Spell"
87
+ "$ref": "#/definitions/Identifier/Tag/Activatable"
85
88
  },
86
89
  "value": {
87
- "description": "The spell's numeric identifier.",
90
+ "description": "The referenced entry's numeric identifier.",
88
91
  "type": "integer",
92
+ "maximum": 8,
89
93
  "minimum": 1
90
94
  }
91
95
  },
@@ -95,15 +99,16 @@
95
99
  ],
96
100
  "additionalProperties": false
97
101
  },
98
- "Ritual": {
102
+ "Rated": {
99
103
  "type": "object",
100
104
  "properties": {
101
105
  "tag": {
102
- "const": "Ritual"
106
+ "$ref": "#/definitions/Identifier/Tag/Rated"
103
107
  },
104
108
  "value": {
105
- "description": "The ritual's numeric identifier.",
109
+ "description": "The referenced entry's numeric identifier.",
106
110
  "type": "integer",
111
+ "maximum": 8,
107
112
  "minimum": 1
108
113
  }
109
114
  },
@@ -113,15 +118,16 @@
113
118
  ],
114
119
  "additionalProperties": false
115
120
  },
116
- "LiturgicalChant": {
121
+ "AdvancedSpecialAbilityRestrictedOption": {
117
122
  "type": "object",
118
123
  "properties": {
119
124
  "tag": {
120
- "const": "LiturgicalChant"
125
+ "$ref": "#/definitions/Identifier/Tag/AdvancedSpecialAbilityRestrictedOption"
121
126
  },
122
127
  "value": {
123
- "description": "The liturgical chant's numeric identifier.",
128
+ "description": "The referenced entry's numeric identifier.",
124
129
  "type": "integer",
130
+ "maximum": 8,
125
131
  "minimum": 1
126
132
  }
127
133
  },
@@ -131,15 +137,16 @@
131
137
  ],
132
138
  "additionalProperties": false
133
139
  },
134
- "Ceremony": {
140
+ "CombatTechnique": {
135
141
  "type": "object",
136
142
  "properties": {
137
143
  "tag": {
138
- "const": "Ceremony"
144
+ "$ref": "#/definitions/Identifier/Tag/CombatTechnique"
139
145
  },
140
146
  "value": {
141
- "description": "The ceremony's numeric identifier.",
147
+ "description": "The referenced entry's numeric identifier.",
142
148
  "type": "integer",
149
+ "maximum": 8,
143
150
  "minimum": 1
144
151
  }
145
152
  },
@@ -149,36 +156,6 @@
149
156
  ],
150
157
  "additionalProperties": false
151
158
  }
152
- },
153
- "Group": {
154
- "Rated": {
155
- "oneOf": [
156
- {
157
- "$ref": "#/definitions/Identifier/Tagged/Attribute"
158
- },
159
- {
160
- "$ref": "#/definitions/Identifier/Tagged/Skill"
161
- },
162
- {
163
- "$ref": "#/definitions/Identifier/Tagged/CloseCombatTechnique"
164
- },
165
- {
166
- "$ref": "#/definitions/Identifier/Tagged/RangedCombatTechnique"
167
- },
168
- {
169
- "$ref": "#/definitions/Identifier/Tagged/Spell"
170
- },
171
- {
172
- "$ref": "#/definitions/Identifier/Tagged/Ritual"
173
- },
174
- {
175
- "$ref": "#/definitions/Identifier/Tagged/LiturgicalChant"
176
- },
177
- {
178
- "$ref": "#/definitions/Identifier/Tagged/Ceremony"
179
- }
180
- ]
181
- }
182
159
  }
183
160
  }
184
161
  }
@@ -0,0 +1,77 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "_Influence.schema.json",
4
+ "$ref": "#/definitions/Influence",
5
+ "definitions": {
6
+ "Influence": {
7
+ "title": "Influence",
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "description": "The influence's identifier. An unique, increasing integer.",
12
+ "type": "integer",
13
+ "minimum": 1
14
+ },
15
+ "src": {
16
+ "$ref": "./source/_PublicationRef.schema.json#/definitions/PublicationRefs"
17
+ },
18
+ "translations": {
19
+ "description": "All translations for the entry, identified by IETF language tag (BCP47).",
20
+ "type": "object",
21
+ "patternProperties": {
22
+ "^[a-z]{2}-[A-Z]{2}$": {
23
+ "type": "object",
24
+ "properties": {
25
+ "name": {
26
+ "description": "The influence name.",
27
+ "type": "string",
28
+ "minLength": 1
29
+ },
30
+ "effects": {
31
+ "description": "The effects of the influence. They should be sorted like they are in\nthe book.",
32
+ "type": "array",
33
+ "items": {
34
+ "type": "object",
35
+ "properties": {
36
+ "label": {
37
+ "description": "An optional label that is displayed and placed before the actual\ntext.",
38
+ "type": "string",
39
+ "minLength": 1
40
+ },
41
+ "text": {
42
+ "description": "The effect text.",
43
+ "type": "string",
44
+ "minLength": 1
45
+ }
46
+ },
47
+ "required": [
48
+ "text"
49
+ ],
50
+ "additionalProperties": false
51
+ },
52
+ "minItems": 1
53
+ },
54
+ "errata": {
55
+ "$ref": "./source/_Erratum.schema.json#/definitions/Errata"
56
+ }
57
+ },
58
+ "required": [
59
+ "name",
60
+ "effects"
61
+ ],
62
+ "additionalProperties": false
63
+ }
64
+ },
65
+ "minProperties": 1,
66
+ "additionalProperties": false
67
+ }
68
+ },
69
+ "required": [
70
+ "id",
71
+ "src",
72
+ "translations"
73
+ ],
74
+ "additionalProperties": false
75
+ }
76
+ }
77
+ }