optolith-database-schema 0.40.0 → 0.42.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 (288) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +1 -1
  3. package/gen/types.d.ts +1705 -1582
  4. package/lib/types/Ceremony.d.ts +3 -0
  5. package/lib/types/DerivedCharacteristic.d.ts +23 -14
  6. package/lib/types/DerivedCharacteristic.js +58 -21
  7. package/lib/types/Disease.d.ts +2 -0
  8. package/lib/types/Disease.js +8 -0
  9. package/lib/types/FamiliarsTrick.d.ts +1 -0
  10. package/lib/types/FamiliarsTrick.js +8 -2
  11. package/lib/types/LiturgicalChant.d.ts +3 -0
  12. package/lib/types/Locale.d.ts +10 -6
  13. package/lib/types/Locale.js +10 -6
  14. package/lib/types/Profession.d.ts +31 -14
  15. package/lib/types/Profession.js +12 -2
  16. package/lib/types/Race.d.ts +28 -19
  17. package/lib/types/Race.js +36 -22
  18. package/lib/types/Ritual.d.ts +3 -0
  19. package/lib/types/Spell.d.ts +3 -0
  20. package/lib/types/Talisman.d.ts +32 -6
  21. package/lib/types/Talisman.js +51 -11
  22. package/lib/types/_ActivatableSkill.d.ts +8 -0
  23. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +2 -0
  24. package/lib/types/_ActivatableSkillCheckResultBased.js +1 -0
  25. package/lib/types/_ActivatableSkillDuration.d.ts +2 -0
  26. package/lib/types/_ActivatableSkillRange.d.ts +1 -0
  27. package/lib/types/_Identifier.d.ts +1 -0
  28. package/lib/types/_Identifier.js +2 -0
  29. package/lib/types/_IdentifierGroup.d.ts +58 -0
  30. package/lib/types/_IdentifierGroup.js +15 -1
  31. package/lib/types/equipment/item/BandageOrRemedy.d.ts +5 -2
  32. package/lib/types/equipment/item/CeremonialItem.d.ts +6 -3
  33. package/lib/types/equipment/item/CeremonialItem.js +1 -1
  34. package/lib/types/equipment/item/Clothes.d.ts +5 -2
  35. package/lib/types/equipment/item/Container.d.ts +5 -2
  36. package/lib/types/equipment/item/Elixir.d.ts +16 -1
  37. package/lib/types/equipment/item/Elixir.js +35 -5
  38. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +5 -2
  39. package/lib/types/equipment/item/IlluminationLightSource.d.ts +5 -2
  40. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +5 -2
  41. package/lib/types/equipment/item/Liebesspielzeug.d.ts +5 -2
  42. package/lib/types/equipment/item/LuxuryGood.d.ts +5 -2
  43. package/lib/types/equipment/item/MagicalArtifact.d.ts +5 -2
  44. package/lib/types/equipment/item/MusicalInstrument.d.ts +5 -2
  45. package/lib/types/equipment/item/OrienteeringAid.d.ts +5 -2
  46. package/lib/types/equipment/item/Poison.d.ts +64 -91
  47. package/lib/types/equipment/item/Poison.js +5 -34
  48. package/lib/types/equipment/item/RopeOrChain.d.ts +5 -2
  49. package/lib/types/equipment/item/Stationery.d.ts +5 -2
  50. package/lib/types/equipment/item/ThievesTool.d.ts +5 -2
  51. package/lib/types/equipment/item/TravelGearOrTool.d.ts +5 -2
  52. package/lib/types/equipment/item/Weapon.d.ts +10 -4
  53. package/lib/types/equipment/item/WeaponAccessory.d.ts +5 -2
  54. package/lib/types/equipment/item/_Herbary.d.ts +31 -0
  55. package/lib/types/equipment/item/_Herbary.js +9 -0
  56. package/lib/types/equipment/item/_Item.d.ts +10 -4
  57. package/lib/types/equipment/item/_MeleeWeapon.d.ts +2 -2
  58. package/lib/types/equipment/item/_MeleeWeapon.js +1 -1
  59. package/lib/types/equipment/item/_RangedWeapon.d.ts +8 -2
  60. package/lib/types/equipment/item/_RangedWeapon.js +2 -2
  61. package/lib/types/equipment/item/sub/Reach.d.ts +1 -0
  62. package/lib/types/equipment/item/sub/Reach.js +7 -0
  63. package/lib/types/magicalActions/AnimistPower.d.ts +1 -0
  64. package/lib/types/magicalActions/Curse.d.ts +2 -0
  65. package/lib/types/magicalActions/DominationRitual.d.ts +2 -0
  66. package/lib/types/magicalActions/GeodeRitual.d.ts +1 -0
  67. package/lib/types/magicalActions/JesterTrick.d.ts +3 -0
  68. package/lib/types/magicalActions/MagicalMelody.d.ts +15 -0
  69. package/lib/types/magicalActions/MagicalMelody.js +5 -0
  70. package/lib/types/magicalActions/MagicalRune.d.ts +2 -0
  71. package/lib/types/magicalActions/ZibiljaRitual.d.ts +2 -0
  72. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +132 -0
  73. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  74. package/package.json +7 -7
  75. package/schema/Advantage.schema.json +0 -108
  76. package/schema/AnimalDisease.schema.json +0 -74
  77. package/schema/AnimalType.schema.json +0 -47
  78. package/schema/ArcaneBardTradition.schema.json +0 -11
  79. package/schema/ArcaneDancerTradition.schema.json +0 -11
  80. package/schema/Aspect.schema.json +0 -51
  81. package/schema/Attribute.schema.json +0 -57
  82. package/schema/Blessing.schema.json +0 -265
  83. package/schema/Cantrip.schema.json +0 -443
  84. package/schema/Ceremony.schema.json +0 -122
  85. package/schema/CombatTechnique_Close.schema.json +0 -116
  86. package/schema/CombatTechnique_Ranged.schema.json +0 -99
  87. package/schema/Condition.schema.json +0 -68
  88. package/schema/Continent.schema.json +0 -49
  89. package/schema/Culture.schema.json +0 -781
  90. package/schema/DerivedCharacteristic.schema.json +0 -90
  91. package/schema/Disadvantage.schema.json +0 -97
  92. package/schema/Disease.schema.json +0 -58
  93. package/schema/Element.schema.json +0 -48
  94. package/schema/ExperienceLevel.schema.json +0 -84
  95. package/schema/EyeColor.schema.json +0 -47
  96. package/schema/FamiliarsTrick.schema.json +0 -576
  97. package/schema/HairColor.schema.json +0 -47
  98. package/schema/Kirchenpraegung.schema.json +0 -11
  99. package/schema/Lessons_Curriculum.schema.json +0 -499
  100. package/schema/Lessons_Guideline.schema.json +0 -53
  101. package/schema/LiturgicalChant.schema.json +0 -122
  102. package/schema/Locale.schema.json +0 -38
  103. package/schema/MetaCondition.schema.json +0 -69
  104. package/schema/PactCategory.schema.json +0 -150
  105. package/schema/Patron.schema.json +0 -352
  106. package/schema/PatronCategory.schema.json +0 -57
  107. package/schema/PersonalityTrait.schema.json +0 -100
  108. package/schema/Profession.schema.json +0 -1424
  109. package/schema/Property.schema.json +0 -51
  110. package/schema/Race.schema.json +0 -534
  111. package/schema/Region.schema.json +0 -47
  112. package/schema/Ritual.schema.json +0 -120
  113. package/schema/Service.schema.json +0 -79
  114. package/schema/SexPractice.schema.json +0 -70
  115. package/schema/Skill.schema.json +0 -223
  116. package/schema/SkillGroup.schema.json +0 -57
  117. package/schema/SkillModificationLevel.schema.json +0 -153
  118. package/schema/SocialStatus.schema.json +0 -47
  119. package/schema/Spell.schema.json +0 -119
  120. package/schema/State.schema.json +0 -59
  121. package/schema/Talisman.schema.json +0 -120
  122. package/schema/TargetCategory.schema.json +0 -65
  123. package/schema/UI.schema.json +0 -4441
  124. package/schema/_Activatable.schema.json +0 -2755
  125. package/schema/_ActivatableSelectOptionCategory.schema.json +0 -1313
  126. package/schema/_ActivatableSkill.schema.json +0 -188
  127. package/schema/_ActivatableSkillCastingTime.schema.json +0 -181
  128. package/schema/_ActivatableSkillCheckResultBased.schema.json +0 -65
  129. package/schema/_ActivatableSkillCost.schema.json +0 -513
  130. package/schema/_ActivatableSkillDuration.schema.json +0 -353
  131. package/schema/_ActivatableSkillEffect.schema.json +0 -122
  132. package/schema/_ActivatableSkillRange.schema.json +0 -264
  133. package/schema/_ActivatableSkillTargetCategory.schema.json +0 -145
  134. package/schema/_AlternativeNames.schema.json +0 -23
  135. package/schema/_ArcaneTradition.schema.json +0 -51
  136. package/schema/_Blessed.schema.json +0 -64
  137. package/schema/_Dice.schema.json +0 -40
  138. package/schema/_DiseasePoison.schema.json +0 -152
  139. package/schema/_Enhancements.schema.json +0 -85
  140. package/schema/_I18n.schema.json +0 -55
  141. package/schema/_Identifier.schema.json +0 -2577
  142. package/schema/_IdentifierGroup.schema.json +0 -753
  143. package/schema/_ImprovementCost.schema.json +0 -23
  144. package/schema/_Influence.schema.json +0 -84
  145. package/schema/_NonEmptyString.schema.json +0 -14
  146. package/schema/_Prerequisite.schema.json +0 -1518
  147. package/schema/_ResponsiveText.schema.json +0 -66
  148. package/schema/_Sex.schema.json +0 -18
  149. package/schema/_SimpleReferences.schema.json +0 -522
  150. package/schema/_SkillCheck.schema.json +0 -38
  151. package/schema/_Spellwork.schema.json +0 -54
  152. package/schema/equipment/EquipmentPackage.schema.json +0 -79
  153. package/schema/equipment/item/Ammunition.schema.json +0 -56
  154. package/schema/equipment/item/Animal.schema.json +0 -36
  155. package/schema/equipment/item/AnimalCare.schema.json +0 -124
  156. package/schema/equipment/item/Armor.schema.json +0 -309
  157. package/schema/equipment/item/BandageOrRemedy.schema.json +0 -53
  158. package/schema/equipment/item/Book.schema.json +0 -89
  159. package/schema/equipment/item/CeremonialItem.schema.json +0 -59
  160. package/schema/equipment/item/Clothes.schema.json +0 -10
  161. package/schema/equipment/item/Container.schema.json +0 -10
  162. package/schema/equipment/item/Elixir.schema.json +0 -103
  163. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +0 -49
  164. package/schema/equipment/item/GemOrPreciousStone.schema.json +0 -69
  165. package/schema/equipment/item/IlluminationLightSource.schema.json +0 -120
  166. package/schema/equipment/item/IlluminationRefillsOrSupplies.schema.json +0 -10
  167. package/schema/equipment/item/Jewelry.schema.json +0 -113
  168. package/schema/equipment/item/Liebesspielzeug.schema.json +0 -10
  169. package/schema/equipment/item/LuxuryGood.schema.json +0 -53
  170. package/schema/equipment/item/MagicalArtifact.schema.json +0 -64
  171. package/schema/equipment/item/MusicalInstrument.schema.json +0 -49
  172. package/schema/equipment/item/OrienteeringAid.schema.json +0 -10
  173. package/schema/equipment/item/Poison.schema.json +0 -835
  174. package/schema/equipment/item/RopeOrChain.schema.json +0 -10
  175. package/schema/equipment/item/Stationary.schema.json +0 -10
  176. package/schema/equipment/item/ThievesTool.schema.json +0 -10
  177. package/schema/equipment/item/ToolOfTheTrade.schema.json +0 -93
  178. package/schema/equipment/item/TravelGearOrTool.schema.json +0 -10
  179. package/schema/equipment/item/Vehicle.schema.json +0 -36
  180. package/schema/equipment/item/Weapon.schema.json +0 -285
  181. package/schema/equipment/item/WeaponAccessory.schema.json +0 -10
  182. package/schema/equipment/item/_Herbary.schema.json +0 -62
  183. package/schema/equipment/item/_Item.schema.json +0 -384
  184. package/schema/equipment/item/_MeleeWeapon.schema.json +0 -164
  185. package/schema/equipment/item/_RangedWeapon.schema.json +0 -185
  186. package/schema/equipment/item/_Weapon.schema.json +0 -99
  187. package/schema/equipment/item/sub/ArmorType.schema.json +0 -52
  188. package/schema/equipment/item/sub/Reach.schema.json +0 -47
  189. package/schema/magicalActions/AnimistPower.schema.json +0 -488
  190. package/schema/magicalActions/AnimistPower_Tribe.schema.json +0 -47
  191. package/schema/magicalActions/Curse.schema.json +0 -332
  192. package/schema/magicalActions/DominationRitual.schema.json +0 -275
  193. package/schema/magicalActions/ElvenMagicalSong.schema.json +0 -196
  194. package/schema/magicalActions/GeodeRitual.schema.json +0 -327
  195. package/schema/magicalActions/JesterTrick.schema.json +0 -311
  196. package/schema/magicalActions/MagicalDance.schema.json +0 -198
  197. package/schema/magicalActions/MagicalMelody.schema.json +0 -193
  198. package/schema/magicalActions/MagicalRune.schema.json +0 -578
  199. package/schema/magicalActions/ZibiljaRitual.schema.json +0 -165
  200. package/schema/magicalActions/_MusicTradition.schema.json +0 -82
  201. package/schema/magicalActions/_SkillReference.schema.json +0 -20
  202. package/schema/prerequisites/ConditionalPrerequisites.schema.json +0 -15
  203. package/schema/prerequisites/DisplayOption.schema.json +0 -70
  204. package/schema/prerequisites/PrerequisiteGroups.schema.json +0 -1029
  205. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +0 -45
  206. package/schema/prerequisites/single/AncestorBloodPrerequisite.schema.json +0 -14
  207. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +0 -36
  208. package/schema/prerequisites/single/CulturePrerequisite.schema.json +0 -24
  209. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +0 -61
  210. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +0 -28
  211. package/schema/prerequisites/single/PactPrerequisite.schema.json +0 -36
  212. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +0 -39
  213. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +0 -22
  214. package/schema/prerequisites/single/RacePrerequisite.schema.json +0 -28
  215. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +0 -172
  216. package/schema/prerequisites/single/RatedPrerequisite.schema.json +0 -29
  217. package/schema/prerequisites/single/RatedSumPrerequisite.schema.json +0 -33
  218. package/schema/prerequisites/single/RulePrerequisite.schema.json +0 -22
  219. package/schema/prerequisites/single/SexPrerequisite.schema.json +0 -23
  220. package/schema/prerequisites/single/SexualCharacteristicPrerequisite.schema.json +0 -30
  221. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +0 -24
  222. package/schema/prerequisites/single/StatePrerequisite.schema.json +0 -23
  223. package/schema/prerequisites/single/TextPrerequisite.schema.json +0 -64
  224. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +0 -58
  225. package/schema/rule/CoreRule.schema.json +0 -1403
  226. package/schema/rule/FocusRule.schema.json +0 -76
  227. package/schema/rule/FocusRule_Subject.schema.json +0 -48
  228. package/schema/rule/OptionalRule.schema.json +0 -64
  229. package/schema/source/Publication.schema.json +0 -103
  230. package/schema/source/_Erratum.schema.json +0 -36
  231. package/schema/source/_PublicationRef.schema.json +0 -285
  232. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +0 -102
  233. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +0 -80
  234. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +0 -80
  235. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +0 -80
  236. package/schema/specialAbility/AncestorGlyph.schema.json +0 -80
  237. package/schema/specialAbility/BlessedTradition.schema.json +0 -354
  238. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +0 -82
  239. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +0 -87
  240. package/schema/specialAbility/CombatSpecialAbility.schema.json +0 -98
  241. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +0 -273
  242. package/schema/specialAbility/CommandSpecialAbility.schema.json +0 -82
  243. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +0 -74
  244. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +0 -74
  245. package/schema/specialAbility/FatePointSpecialAbility.schema.json +0 -84
  246. package/schema/specialAbility/GeneralSpecialAbility.schema.json +0 -88
  247. package/schema/specialAbility/KarmaSpecialAbility.schema.json +0 -78
  248. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +0 -260
  249. package/schema/specialAbility/LycantropicGift.schema.json +0 -74
  250. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +0 -260
  251. package/schema/specialAbility/MagicalSign.schema.json +0 -72
  252. package/schema/specialAbility/MagicalSpecialAbility.schema.json +0 -88
  253. package/schema/specialAbility/MagicalTradition.schema.json +0 -163
  254. package/schema/specialAbility/PactGift.schema.json +0 -254
  255. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +0 -86
  256. package/schema/specialAbility/Sermon.schema.json +0 -74
  257. package/schema/specialAbility/SexSpecialAbility.schema.json +0 -80
  258. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +0 -78
  259. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +0 -254
  260. package/schema/specialAbility/VampiricGift.schema.json +0 -78
  261. package/schema/specialAbility/Vision.schema.json +0 -74
  262. package/schema/specialAbility/_Tradition.schema.json +0 -23
  263. package/schema/specialAbility/sub/Language.schema.json +0 -222
  264. package/schema/specialAbility/sub/Script.schema.json +0 -90
  265. package/schema/specialAbility/sub/TradeSecret.schema.json +0 -72
  266. package/schema/specialAbility/sub/_LanguageScript.schema.json +0 -24
  267. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +0 -95
  268. package/schema/traditionArtifacts/AttireEnchantment.schema.json +0 -95
  269. package/schema/traditionArtifacts/BowlEnchantment.schema.json +0 -95
  270. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +0 -115
  271. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +0 -95
  272. package/schema/traditionArtifacts/DaggerRitual.schema.json +0 -176
  273. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +0 -95
  274. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +0 -95
  275. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +0 -95
  276. package/schema/traditionArtifacts/OrbEnchantment.schema.json +0 -95
  277. package/schema/traditionArtifacts/RingEnchantment.schema.json +0 -95
  278. package/schema/traditionArtifacts/SickleRitual.schema.json +0 -95
  279. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +0 -99
  280. package/schema/traditionArtifacts/StaffEnchantment.schema.json +0 -103
  281. package/schema/traditionArtifacts/ToyEnchantment.schema.json +0 -95
  282. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +0 -95
  283. package/schema/traditionArtifacts/WandEnchantment.schema.json +0 -87
  284. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +0 -95
  285. package/schema/traditionArtifacts/sub/AnimalShape.schema.json +0 -85
  286. package/schema/traditionArtifacts/sub/AnimalShapePath.schema.json +0 -47
  287. package/schema/traditionArtifacts/sub/AnimalShapeSize.schema.json +0 -59
  288. package/schema/traditionArtifacts/sub/Brew.schema.json +0 -47
@@ -1,1424 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2019-09/schema",
3
- "$id": "/Profession.schema.json",
4
- "$ref": "#/$defs/Profession",
5
- "$defs": {
6
- "Profession": {
7
- "title": "Profession",
8
- "type": "object",
9
- "properties": {
10
- "id": {
11
- "description": "The profession's identifier. An unique, increasing integer.",
12
- "type": "integer",
13
- "minimum": 1
14
- },
15
- "group": {
16
- "description": "The profession group.",
17
- "$ref": "#/$defs/ProfessionGroup"
18
- },
19
- "versions": {
20
- "description": "A list of professions representing the same profession but with (slightly) different stats. For example, there may be a profession in a regional sourcebook or in the core rules and a profession in an extension rulebook like Magic of Aventuria, where the profession is basically called the same and almost has the same values, but the version from Magic of Aventuria features a spell style special ability that does not exist in the core rules or regional sourcebook.\n\nThe profession representation may feature different values for different explicitly mentioned experience levels. In most cases, there is only one stats package, which targets the experience level *Experienced*.",
21
- "type": "array",
22
- "items": {
23
- "$ref": "#/$defs/ProfessionVersion"
24
- },
25
- "minItems": 1
26
- }
27
- },
28
- "required": [
29
- "id",
30
- "group",
31
- "versions"
32
- ],
33
- "additionalProperties": false
34
- },
35
- "ProfessionGroup": {
36
- "oneOf": [
37
- {
38
- "type": "object",
39
- "properties": {
40
- "tag": {
41
- "const": "Mundane"
42
- },
43
- "mundane": {
44
- "$ref": "#/$defs/MundaneProfessionGroup"
45
- }
46
- },
47
- "required": [
48
- "tag",
49
- "mundane"
50
- ],
51
- "additionalProperties": false
52
- },
53
- {
54
- "type": "object",
55
- "properties": {
56
- "tag": {
57
- "const": "Magical"
58
- },
59
- "magical": {
60
- "$ref": "#/$defs/MagicalProfessionGroup"
61
- }
62
- },
63
- "required": [
64
- "tag",
65
- "magical"
66
- ],
67
- "additionalProperties": false
68
- },
69
- {
70
- "type": "object",
71
- "properties": {
72
- "tag": {
73
- "const": "Blessed"
74
- },
75
- "blessed": {
76
- "type": "object",
77
- "properties": {},
78
- "required": [],
79
- "additionalProperties": false
80
- }
81
- },
82
- "required": [
83
- "tag",
84
- "blessed"
85
- ],
86
- "additionalProperties": false
87
- }
88
- ]
89
- },
90
- "MundaneProfessionGroup": {
91
- "oneOf": [
92
- {
93
- "const": "Profane"
94
- },
95
- {
96
- "const": "Fighter"
97
- },
98
- {
99
- "const": "Religious"
100
- }
101
- ]
102
- },
103
- "MagicalProfessionGroup": {
104
- "type": "object",
105
- "properties": {
106
- "curriculum": {
107
- "description": "The curriculum/academy associated with this magical profession, if any.",
108
- "$ref": "./_SimpleReferences.schema.json#/$defs/CurriculumReference"
109
- }
110
- },
111
- "required": [],
112
- "additionalProperties": false
113
- },
114
- "ProfessionVersion": {
115
- "oneOf": [
116
- {
117
- "type": "object",
118
- "properties": {
119
- "tag": {
120
- "const": "Experienced"
121
- },
122
- "experienced": {
123
- "$ref": "#/$defs/ExperiencedProfessionPackage"
124
- }
125
- },
126
- "required": [
127
- "tag",
128
- "experienced"
129
- ],
130
- "additionalProperties": false
131
- },
132
- {
133
- "type": "object",
134
- "properties": {
135
- "tag": {
136
- "const": "ByExperienceLevel"
137
- },
138
- "by_experience_level": {
139
- "$ref": "#/$defs/ProfessionPackagesForDifferentExperienceLevels"
140
- }
141
- },
142
- "required": [
143
- "tag",
144
- "by_experience_level"
145
- ],
146
- "additionalProperties": false
147
- }
148
- ]
149
- },
150
- "ExperiencedProfessionPackage": {
151
- "type": "object",
152
- "properties": {
153
- "id": {
154
- "description": "The profession representation variant's identifier. An unique, increasing integer.",
155
- "type": "integer",
156
- "minimum": 1
157
- },
158
- "package": {
159
- "$ref": "#/$defs/ProfessionPackage"
160
- },
161
- "src": {
162
- "$ref": "./source/_PublicationRef.schema.json#/$defs/PublicationRefs"
163
- },
164
- "translations": {
165
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
166
- "type": "object",
167
- "patternProperties": {
168
- "^[a-z]{2}-[A-Z]{2}$": {
169
- "$ref": "#/$defs/ProfessionTranslation"
170
- }
171
- },
172
- "minProperties": 1,
173
- "additionalProperties": false
174
- }
175
- },
176
- "required": [
177
- "id",
178
- "package",
179
- "src",
180
- "translations"
181
- ],
182
- "additionalProperties": false
183
- },
184
- "ProfessionPackagesForDifferentExperienceLevels": {
185
- "type": "object",
186
- "properties": {
187
- "id": {
188
- "description": "The profession representation variant's identifier. An unique, increasing integer.",
189
- "type": "integer",
190
- "minimum": 1
191
- },
192
- "packages_map": {
193
- "type": "array",
194
- "items": {
195
- "$ref": "#/$defs/ExperienceLevelDynamicProfessionPackage"
196
- }
197
- },
198
- "src": {
199
- "$ref": "./source/_PublicationRef.schema.json#/$defs/PublicationRefs"
200
- },
201
- "translations": {
202
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
203
- "type": "object",
204
- "patternProperties": {
205
- "^[a-z]{2}-[A-Z]{2}$": {
206
- "$ref": "#/$defs/ProfessionTranslation"
207
- }
208
- },
209
- "minProperties": 1,
210
- "additionalProperties": false
211
- }
212
- },
213
- "required": [
214
- "id",
215
- "packages_map",
216
- "src",
217
- "translations"
218
- ],
219
- "additionalProperties": false
220
- },
221
- "ExperienceLevelDynamicProfessionPackage": {
222
- "type": "object",
223
- "properties": {
224
- "experience_level_id": {
225
- "description": "The experience level this profession targets. The experience level must be unique for this representation.",
226
- "type": "integer",
227
- "default": 3,
228
- "maximum": 7,
229
- "minimum": 1
230
- },
231
- "package": {
232
- "$ref": "#/$defs/ProfessionPackage"
233
- }
234
- },
235
- "required": [
236
- "experience_level_id",
237
- "package"
238
- ],
239
- "additionalProperties": false
240
- },
241
- "ProfessionPackage": {
242
- "title": "Profession Representation Variant",
243
- "type": "object",
244
- "properties": {
245
- "ap_value": {
246
- "description": "What does the professional package cost in adventure points?",
247
- "type": "integer",
248
- "minimum": 0
249
- },
250
- "prerequisites": {
251
- "description": "Which prerequisites must be met to buy the stat block? For example, a character might need the advantage Spellcaster or Blessed. Note: the AP cost for a profession package does not include these prerequisites.",
252
- "$ref": "./_Prerequisite.schema.json#/$defs/ProfessionPrerequisites"
253
- },
254
- "options": {
255
- "description": "In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package.",
256
- "$ref": "#/$defs/ProfessionPackageOptions"
257
- },
258
- "special_abilities": {
259
- "description": "Any special abilities the profession receives from the package.",
260
- "type": "array",
261
- "items": {
262
- "$ref": "#/$defs/ProfessionSpecialAbility"
263
- }
264
- },
265
- "combat_techniques": {
266
- "description": "Provides ratings for the combat techniques that the hero receives from the package.",
267
- "type": "array",
268
- "items": {
269
- "$ref": "#/$defs/CombatTechniqueRating"
270
- }
271
- },
272
- "skills": {
273
- "description": "The skill ratings the package grants to the hero.",
274
- "type": "array",
275
- "items": {
276
- "$ref": "#/$defs/SkillRating"
277
- }
278
- },
279
- "spells": {
280
- "description": "The skill ratings a magical profession receives for spells; these spells are considered activated. Spells from an unfamiliar Tradition, if any, are identified as such.",
281
- "type": "array",
282
- "items": {
283
- "$ref": "#/$defs/SpellRating"
284
- }
285
- },
286
- "liturgical_chants": {
287
- "description": "Clerical professions receive these liturgical chants at the listed skill ratings. These liturgical chants are considered activated.",
288
- "type": "array",
289
- "items": {
290
- "$ref": "#/$defs/LiturgicalChantRating"
291
- }
292
- },
293
- "suggested_advantages": {
294
- "description": "Typical advantages for the profession.",
295
- "type": "array",
296
- "items": {
297
- "title": "Commonness-rated Advantage/Disadvantage",
298
- "description": "Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.",
299
- "type": "object",
300
- "properties": {
301
- "id": {
302
- "$ref": "./_Identifier.schema.json#/$defs/AdvantageIdentifier"
303
- }
304
- },
305
- "required": [
306
- "id"
307
- ],
308
- "additionalProperties": false
309
- },
310
- "minItems": 1
311
- },
312
- "suggested_disadvantages": {
313
- "description": "Typical disadvantages for the profession.",
314
- "type": "array",
315
- "items": {
316
- "title": "Commonness-rated Advantage/Disadvantage",
317
- "description": "Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.",
318
- "type": "object",
319
- "properties": {
320
- "id": {
321
- "$ref": "./_Identifier.schema.json#/$defs/DisadvantageIdentifier"
322
- }
323
- },
324
- "required": [
325
- "id"
326
- ],
327
- "additionalProperties": false
328
- },
329
- "minItems": 1
330
- },
331
- "unsuitable_advantages": {
332
- "description": "These advantages do not fit well with this profession; to be checked with the GM before taking any of them.",
333
- "type": "array",
334
- "items": {
335
- "title": "Commonness-rated Advantage/Disadvantage",
336
- "description": "Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.",
337
- "type": "object",
338
- "properties": {
339
- "id": {
340
- "$ref": "./_Identifier.schema.json#/$defs/AdvantageIdentifier"
341
- }
342
- },
343
- "required": [
344
- "id"
345
- ],
346
- "additionalProperties": false
347
- },
348
- "minItems": 1
349
- },
350
- "unsuitable_disadvantages": {
351
- "description": "These disadvantages do not fit well with this profession; to be checked with the GM before taking any of them.",
352
- "type": "array",
353
- "items": {
354
- "title": "Commonness-rated Advantage/Disadvantage",
355
- "description": "Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.",
356
- "type": "object",
357
- "properties": {
358
- "id": {
359
- "$ref": "./_Identifier.schema.json#/$defs/DisadvantageIdentifier"
360
- }
361
- },
362
- "required": [
363
- "id"
364
- ],
365
- "additionalProperties": false
366
- },
367
- "minItems": 1
368
- },
369
- "variants": {
370
- "description": "Provides examples of variants for the profession, which may include changes to AP values and additional or modified skill ratings, special abilities, or combat techniques, as compared to the basic profession. Usually picking a variant is optional, but there are some rare exceptions where picking a variant is required.",
371
- "$ref": "#/$defs/ProfessionVariants"
372
- }
373
- },
374
- "required": [
375
- "ap_value"
376
- ],
377
- "additionalProperties": false
378
- },
379
- "ProfessionTranslation": {
380
- "type": "object",
381
- "properties": {
382
- "name": {
383
- "description": "Name of the basic profession.",
384
- "$ref": "#/$defs/ProfessionName"
385
- },
386
- "specification": {
387
- "description": "A name addition of the profession. This will contain texts like name of the academy or the witch circle. It is enclosed in parenthesis, but the database entry must not contain parenthesis.",
388
- "$ref": "#/$defs/ProfessionName"
389
- },
390
- "suggested_advantages": {
391
- "description": "Typical advantages for the profession.",
392
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
393
- },
394
- "suggested_disadvantages": {
395
- "description": "Typical disadvantages for the profession.",
396
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
397
- },
398
- "unsuitable_advantages": {
399
- "description": "These advantages do not fit well with this profession; to be checked with the GM before taking any of them.",
400
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
401
- },
402
- "unsuitable_disadvantages": {
403
- "description": "These disadvantages do not fit well with this profession; to be checked with the GM before taking any of them.",
404
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
405
- },
406
- "errata": {
407
- "$ref": "./source/_Erratum.schema.json#/$defs/Errata"
408
- }
409
- },
410
- "required": [
411
- "name"
412
- ],
413
- "additionalProperties": false
414
- },
415
- "ProfessionVariants": {
416
- "description": "Provides examples of variants for the profession, which may include changes to AP values and additional or modified skill ratings, special abilities, or combat techniques, as compared to the basic profession. Usually picking a variant is optional, but there are some rare exceptions where picking a variant is required.",
417
- "type": "object",
418
- "properties": {
419
- "is_selection_required": {
420
- "description": "If the selection of a profession variant is required.",
421
- "type": "boolean"
422
- },
423
- "list": {
424
- "description": "The list of profession variants.",
425
- "type": "array",
426
- "items": {
427
- "$ref": "#/$defs/ProfessionVariant"
428
- },
429
- "minItems": 1
430
- }
431
- },
432
- "required": [
433
- "is_selection_required",
434
- "list"
435
- ],
436
- "additionalProperties": false
437
- },
438
- "ProfessionVariant": {
439
- "title": "Profession Variant",
440
- "type": "object",
441
- "properties": {
442
- "id": {
443
- "description": "The profession variant's identifier. An unique, increasing integer.",
444
- "type": "integer",
445
- "minimum": 1
446
- },
447
- "ap_value": {
448
- "description": "The AP value you have to pay for the package variant.",
449
- "type": "integer"
450
- },
451
- "prerequisites": {
452
- "description": "Which prerequisites must be met to buy the stat block? For example, a character might need the advantage Spellcaster or Blessed. Note: the AP cost for a profession package does not include these prerequisites.",
453
- "$ref": "./_Prerequisite.schema.json#/$defs/ProfessionPrerequisites"
454
- },
455
- "options": {
456
- "$ref": "#/$defs/ProfessionVariantPackageOptions"
457
- },
458
- "special_abilities": {
459
- "description": "Any special abilities the profession receives from the package variant.",
460
- "type": "array",
461
- "items": {
462
- "$ref": "#/$defs/VariantSpecialAbility"
463
- }
464
- },
465
- "combat_techniques": {
466
- "description": "Provides ratings for the combat techniques that the hero receives from the package variant.",
467
- "type": "array",
468
- "items": {
469
- "$ref": "#/$defs/CombatTechniqueRating"
470
- }
471
- },
472
- "skills": {
473
- "description": "The skill ratings the package variant grants to the hero.",
474
- "type": "array",
475
- "items": {
476
- "$ref": "#/$defs/SkillRating"
477
- }
478
- },
479
- "spells": {
480
- "description": "The skill ratings a magical profession variant receives for spells; these spells are considered activated. Spells from an unfamiliar Tradition, if any, are identified as such.",
481
- "type": "array",
482
- "items": {
483
- "$ref": "#/$defs/SpellRating"
484
- }
485
- },
486
- "liturgical_chants": {
487
- "description": "Clerical professions receive these liturgical chants at the listed skill ratings. These liturgical chants are considered activated.",
488
- "type": "array",
489
- "items": {
490
- "$ref": "#/$defs/LiturgicalChantRating"
491
- }
492
- },
493
- "translations": {
494
- "description": "All translations for the entry, identified by IETF language tag (BCP47).",
495
- "type": "object",
496
- "patternProperties": {
497
- "^[a-z]{2}-[A-Z]{2}$": {
498
- "$ref": "#/$defs/ProfessionVariantTranslation"
499
- }
500
- },
501
- "minProperties": 1,
502
- "additionalProperties": false
503
- }
504
- },
505
- "required": [
506
- "id",
507
- "ap_value",
508
- "translations"
509
- ],
510
- "additionalProperties": false
511
- },
512
- "ProfessionVariantTranslation": {
513
- "type": "object",
514
- "properties": {
515
- "name": {
516
- "description": "Name of the profession variant.",
517
- "$ref": "#/$defs/ProfessionName"
518
- },
519
- "full_text": {
520
- "description": "A text that replaces the generated text for the profession variant.",
521
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
522
- },
523
- "concluding_text": {
524
- "description": "A text that is appended to the generated text for the profession variant.\n\nHas no effect when `full_text` is set.",
525
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
526
- }
527
- },
528
- "required": [
529
- "name"
530
- ],
531
- "additionalProperties": false
532
- },
533
- "ProfessionSpecialAbility": {
534
- "oneOf": [
535
- {
536
- "type": "object",
537
- "properties": {
538
- "tag": {
539
- "const": "Fixed"
540
- },
541
- "fixed": {
542
- "$ref": "#/$defs/FixedSpecialAbility"
543
- }
544
- },
545
- "required": [
546
- "tag",
547
- "fixed"
548
- ],
549
- "additionalProperties": false
550
- },
551
- {
552
- "type": "object",
553
- "properties": {
554
- "tag": {
555
- "const": "Selection"
556
- },
557
- "selection": {
558
- "$ref": "#/$defs/SpecialAbilitySelection"
559
- }
560
- },
561
- "required": [
562
- "tag",
563
- "selection"
564
- ],
565
- "additionalProperties": false
566
- }
567
- ]
568
- },
569
- "FixedSpecialAbility": {
570
- "$ref": "#/$defs/SpecialAbilityDefinition"
571
- },
572
- "SpecialAbilitySelection": {
573
- "type": "object",
574
- "properties": {
575
- "options": {
576
- "type": "array",
577
- "items": {
578
- "$ref": "#/$defs/SpecialAbilityDefinition"
579
- },
580
- "minItems": 2
581
- }
582
- },
583
- "required": [
584
- "options"
585
- ],
586
- "additionalProperties": false
587
- },
588
- "SpecialAbilityDefinition": {
589
- "type": "object",
590
- "properties": {
591
- "id": {
592
- "description": "The identifier of the combat technique to provide the rating for.",
593
- "$ref": "./_IdentifierGroup.schema.json#/$defs/SpecialAbilityIdentifier"
594
- },
595
- "level": {
596
- "description": "The level of the received special ability.",
597
- "type": "integer",
598
- "minimum": 1
599
- },
600
- "options": {
601
- "description": "Received select options. Order is important. Typically, you only need the first array index, though.",
602
- "type": "array",
603
- "items": {
604
- "$ref": "./_IdentifierGroup.schema.json#/$defs/RequirableSelectOptionIdentifier"
605
- },
606
- "minItems": 1
607
- }
608
- },
609
- "required": [
610
- "id"
611
- ],
612
- "additionalProperties": false
613
- },
614
- "VariantSpecialAbility": {
615
- "oneOf": [
616
- {
617
- "type": "object",
618
- "properties": {
619
- "tag": {
620
- "const": "Fixed"
621
- },
622
- "fixed": {
623
- "$ref": "#/$defs/FixedVariantSpecialAbility"
624
- }
625
- },
626
- "required": [
627
- "tag",
628
- "fixed"
629
- ],
630
- "additionalProperties": false
631
- },
632
- {
633
- "type": "object",
634
- "properties": {
635
- "tag": {
636
- "const": "Selection"
637
- },
638
- "selection": {
639
- "$ref": "#/$defs/VariantSpecialAbilitySelection"
640
- }
641
- },
642
- "required": [
643
- "tag",
644
- "selection"
645
- ],
646
- "additionalProperties": false
647
- }
648
- ]
649
- },
650
- "FixedVariantSpecialAbility": {
651
- "type": "object",
652
- "properties": {
653
- "id": {
654
- "description": "The identifier of the combat technique to provide the rating for.",
655
- "$ref": "./_IdentifierGroup.schema.json#/$defs/SpecialAbilityIdentifier"
656
- },
657
- "active": {
658
- "description": "if set to `false`, if the selection is granted by the basic package, it is removed.",
659
- "const": false
660
- },
661
- "level": {
662
- "description": "The level of the received special ability.",
663
- "type": "integer",
664
- "minimum": 1
665
- },
666
- "options": {
667
- "description": "Received select options. Order is important. Typically, you only need the first array index, though.",
668
- "type": "array",
669
- "items": {
670
- "$ref": "./_IdentifierGroup.schema.json#/$defs/RequirableSelectOptionIdentifier"
671
- },
672
- "minItems": 1
673
- }
674
- },
675
- "required": [
676
- "id"
677
- ],
678
- "additionalProperties": false
679
- },
680
- "VariantSpecialAbilitySelection": {
681
- "type": "object",
682
- "properties": {
683
- "active": {
684
- "description": "if set to `false`, if the selection is granted by the basic package, it is removed.",
685
- "const": false
686
- },
687
- "options": {
688
- "type": "array",
689
- "items": {
690
- "$ref": "#/$defs/SpecialAbilityDefinition"
691
- },
692
- "minItems": 2
693
- }
694
- },
695
- "required": [
696
- "options"
697
- ],
698
- "additionalProperties": false
699
- },
700
- "CombatTechniqueRating": {
701
- "type": "object",
702
- "properties": {
703
- "id": {
704
- "description": "The identifier of the combat technique to provide the rating for.",
705
- "$ref": "./_IdentifierGroup.schema.json#/$defs/CombatTechniqueIdentifier"
706
- },
707
- "rating": {
708
- "description": "The rating bonus provided for the combat technique. If used in a profession variant, it can also be used to lower the bonus of the base profession.\n\n**Note:** This is a rating *bonus*, so it will be *added* to the default\nvalue of 6.",
709
- "type": "integer",
710
- "maximum": 6,
711
- "minimum": -6
712
- }
713
- },
714
- "required": [
715
- "id",
716
- "rating"
717
- ],
718
- "additionalProperties": false
719
- },
720
- "SkillRating": {
721
- "type": "object",
722
- "properties": {
723
- "id": {
724
- "description": "The identifier of the skill to provide the rating for.",
725
- "$ref": "./_Identifier.schema.json#/$defs/SkillIdentifier"
726
- },
727
- "rating": {
728
- "description": "The rating bonus provided for the skill. If used in a profession variant, it can also be used to lower the bonus of the base profession",
729
- "type": "integer",
730
- "maximum": 8,
731
- "minimum": -8
732
- }
733
- },
734
- "required": [
735
- "id",
736
- "rating"
737
- ],
738
- "additionalProperties": false
739
- },
740
- "SpellRating": {
741
- "type": "object",
742
- "properties": {
743
- "id": {
744
- "description": "The identifier(s) of the spell(s) to choose from to provide the rating for. If multiple spells are provided, they must all have the same improvement cost.",
745
- "type": "array",
746
- "items": {
747
- "$ref": "#/$defs/ProfessionSpellIdentifier"
748
- },
749
- "minItems": 1
750
- },
751
- "rating": {
752
- "description": "The rating bonus provided for the (selected) spell. If used in a profession variant, it can also be used to lower the bonus of the base profession.",
753
- "type": "integer",
754
- "maximum": 10,
755
- "minimum": -10
756
- }
757
- },
758
- "required": [
759
- "id",
760
- "rating"
761
- ],
762
- "additionalProperties": false
763
- },
764
- "ProfessionSpellIdentifier": {
765
- "oneOf": [
766
- {
767
- "type": "object",
768
- "properties": {
769
- "tag": {
770
- "const": "Spellwork"
771
- },
772
- "spellwork": {
773
- "$ref": "#/$defs/ProfessionSpellworkIdentifier"
774
- }
775
- },
776
- "required": [
777
- "tag",
778
- "spellwork"
779
- ],
780
- "additionalProperties": false
781
- },
782
- {
783
- "type": "object",
784
- "properties": {
785
- "tag": {
786
- "const": "MagicalAction"
787
- },
788
- "magical_action": {
789
- "$ref": "#/$defs/ProfessionMagicalActionIdentifier"
790
- }
791
- },
792
- "required": [
793
- "tag",
794
- "magical_action"
795
- ],
796
- "additionalProperties": false
797
- }
798
- ]
799
- },
800
- "ProfessionSpellworkIdentifier": {
801
- "type": "object",
802
- "properties": {
803
- "id": {
804
- "description": "The identifier of the spell to provide the rating for.",
805
- "$ref": "./_IdentifierGroup.schema.json#/$defs/SpellworkIdentifier"
806
- },
807
- "tradition": {
808
- "description": "If the spell is not part of the magical tradition required by the package, this references the magical tradition it is part of. It can also be used to define the target magical tradition of a spell if multiple magical traditions are required and the spell is available to multiple of them.",
809
- "$ref": "./_SimpleReferences.schema.json#/$defs/MagicalTraditionReference"
810
- }
811
- },
812
- "required": [
813
- "id"
814
- ],
815
- "additionalProperties": false
816
- },
817
- "ProfessionMagicalActionIdentifier": {
818
- "type": "object",
819
- "properties": {
820
- "id": {
821
- "description": "The identifier of the magical action to provide the rating for.",
822
- "$ref": "./_IdentifierGroup.schema.json#/$defs/MagicalActionIdentifier"
823
- }
824
- },
825
- "required": [
826
- "id"
827
- ],
828
- "additionalProperties": false
829
- },
830
- "LiturgicalChantRating": {
831
- "type": "object",
832
- "properties": {
833
- "id": {
834
- "description": "The identifier(s) of the liturgical chant(s) to choose from to provide the rating for. If multiple liturgical chants are provided, they must all have the same improvement cost.",
835
- "type": "array",
836
- "items": {
837
- "$ref": "./_IdentifierGroup.schema.json#/$defs/LiturgyIdentifier"
838
- },
839
- "minItems": 1
840
- },
841
- "rating": {
842
- "description": "The rating bonus provided for the selected liturgical chant. If used in a profession variant, it can also be used to lower the bonus of the base profession.",
843
- "type": "integer",
844
- "maximum": 10,
845
- "minimum": -10
846
- }
847
- },
848
- "required": [
849
- "id",
850
- "rating"
851
- ],
852
- "additionalProperties": false
853
- },
854
- "ProfessionPackageOptions": {
855
- "description": "In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package.",
856
- "type": "object",
857
- "properties": {
858
- "skill_specialization": {
859
- "$ref": "#/$defs/SkillSpecializationOptions"
860
- },
861
- "languages_scripts": {
862
- "$ref": "#/$defs/LanguagesScriptsOptions"
863
- },
864
- "combat_techniques": {
865
- "$ref": "#/$defs/CombatTechniquesOptions"
866
- },
867
- "cantrips": {
868
- "$ref": "#/$defs/CantripsOptions"
869
- },
870
- "curses": {
871
- "$ref": "#/$defs/CursesOptions"
872
- },
873
- "terrain_knowledge": {
874
- "$ref": "#/$defs/TerrainKnowledgeOptions"
875
- },
876
- "skills": {
877
- "$ref": "#/$defs/SkillsOptions"
878
- }
879
- },
880
- "required": [],
881
- "minProperties": 1,
882
- "additionalProperties": false
883
- },
884
- "ProfessionVariantPackageOptions": {
885
- "description": "In some areas, the profession package grants a loose set of stats where the player must choose between different options for the profession package. The variant may override or remove those options.",
886
- "type": "object",
887
- "properties": {
888
- "skill_specialization": {
889
- "oneOf": [
890
- {
891
- "type": "object",
892
- "properties": {
893
- "tag": {
894
- "const": "Remove"
895
- },
896
- "remove": {
897
- "type": "object",
898
- "properties": {},
899
- "required": [],
900
- "additionalProperties": false
901
- }
902
- },
903
- "required": [
904
- "tag",
905
- "remove"
906
- ],
907
- "additionalProperties": false
908
- },
909
- {
910
- "type": "object",
911
- "properties": {
912
- "tag": {
913
- "const": "Override"
914
- },
915
- "override": {
916
- "$ref": "#/$defs/SkillSpecializationOptions"
917
- }
918
- },
919
- "required": [
920
- "tag",
921
- "override"
922
- ],
923
- "additionalProperties": false
924
- }
925
- ]
926
- },
927
- "languages_scripts": {
928
- "oneOf": [
929
- {
930
- "type": "object",
931
- "properties": {
932
- "tag": {
933
- "const": "Remove"
934
- },
935
- "remove": {
936
- "type": "object",
937
- "properties": {},
938
- "required": [],
939
- "additionalProperties": false
940
- }
941
- },
942
- "required": [
943
- "tag",
944
- "remove"
945
- ],
946
- "additionalProperties": false
947
- },
948
- {
949
- "type": "object",
950
- "properties": {
951
- "tag": {
952
- "const": "Override"
953
- },
954
- "override": {
955
- "$ref": "#/$defs/LanguagesScriptsOptions"
956
- }
957
- },
958
- "required": [
959
- "tag",
960
- "override"
961
- ],
962
- "additionalProperties": false
963
- }
964
- ]
965
- },
966
- "combat_techniques": {
967
- "oneOf": [
968
- {
969
- "type": "object",
970
- "properties": {
971
- "tag": {
972
- "const": "Remove"
973
- },
974
- "remove": {
975
- "type": "object",
976
- "properties": {},
977
- "required": [],
978
- "additionalProperties": false
979
- }
980
- },
981
- "required": [
982
- "tag",
983
- "remove"
984
- ],
985
- "additionalProperties": false
986
- },
987
- {
988
- "type": "object",
989
- "properties": {
990
- "tag": {
991
- "const": "Override"
992
- },
993
- "override": {
994
- "$ref": "#/$defs/CombatTechniquesOptions"
995
- }
996
- },
997
- "required": [
998
- "tag",
999
- "override"
1000
- ],
1001
- "additionalProperties": false
1002
- }
1003
- ]
1004
- },
1005
- "cantrips": {
1006
- "oneOf": [
1007
- {
1008
- "type": "object",
1009
- "properties": {
1010
- "tag": {
1011
- "const": "Remove"
1012
- },
1013
- "remove": {
1014
- "type": "object",
1015
- "properties": {},
1016
- "required": [],
1017
- "additionalProperties": false
1018
- }
1019
- },
1020
- "required": [
1021
- "tag",
1022
- "remove"
1023
- ],
1024
- "additionalProperties": false
1025
- },
1026
- {
1027
- "type": "object",
1028
- "properties": {
1029
- "tag": {
1030
- "const": "Override"
1031
- },
1032
- "override": {
1033
- "$ref": "#/$defs/CantripsOptions"
1034
- }
1035
- },
1036
- "required": [
1037
- "tag",
1038
- "override"
1039
- ],
1040
- "additionalProperties": false
1041
- }
1042
- ]
1043
- },
1044
- "curses": {
1045
- "oneOf": [
1046
- {
1047
- "type": "object",
1048
- "properties": {
1049
- "tag": {
1050
- "const": "Remove"
1051
- },
1052
- "remove": {
1053
- "type": "object",
1054
- "properties": {},
1055
- "required": [],
1056
- "additionalProperties": false
1057
- }
1058
- },
1059
- "required": [
1060
- "tag",
1061
- "remove"
1062
- ],
1063
- "additionalProperties": false
1064
- },
1065
- {
1066
- "type": "object",
1067
- "properties": {
1068
- "tag": {
1069
- "const": "Override"
1070
- },
1071
- "override": {
1072
- "$ref": "#/$defs/CursesOptions"
1073
- }
1074
- },
1075
- "required": [
1076
- "tag",
1077
- "override"
1078
- ],
1079
- "additionalProperties": false
1080
- }
1081
- ]
1082
- },
1083
- "terrain_knowledge": {
1084
- "oneOf": [
1085
- {
1086
- "type": "object",
1087
- "properties": {
1088
- "tag": {
1089
- "const": "Remove"
1090
- },
1091
- "remove": {
1092
- "type": "object",
1093
- "properties": {},
1094
- "required": [],
1095
- "additionalProperties": false
1096
- }
1097
- },
1098
- "required": [
1099
- "tag",
1100
- "remove"
1101
- ],
1102
- "additionalProperties": false
1103
- },
1104
- {
1105
- "type": "object",
1106
- "properties": {
1107
- "tag": {
1108
- "const": "Override"
1109
- },
1110
- "override": {
1111
- "$ref": "#/$defs/TerrainKnowledgeOptions"
1112
- }
1113
- },
1114
- "required": [
1115
- "tag",
1116
- "override"
1117
- ],
1118
- "additionalProperties": false
1119
- }
1120
- ]
1121
- },
1122
- "skills": {
1123
- "oneOf": [
1124
- {
1125
- "type": "object",
1126
- "properties": {
1127
- "tag": {
1128
- "const": "Remove"
1129
- },
1130
- "remove": {
1131
- "type": "object",
1132
- "properties": {},
1133
- "required": [],
1134
- "additionalProperties": false
1135
- }
1136
- },
1137
- "required": [
1138
- "tag",
1139
- "remove"
1140
- ],
1141
- "additionalProperties": false
1142
- },
1143
- {
1144
- "type": "object",
1145
- "properties": {
1146
- "tag": {
1147
- "const": "Override"
1148
- },
1149
- "override": {
1150
- "$ref": "#/$defs/SkillsOptions"
1151
- }
1152
- },
1153
- "required": [
1154
- "tag",
1155
- "override"
1156
- ],
1157
- "additionalProperties": false
1158
- }
1159
- ]
1160
- }
1161
- },
1162
- "required": [],
1163
- "minProperties": 1,
1164
- "additionalProperties": false
1165
- },
1166
- "SkillSpecializationOptions": {
1167
- "description": "Select an application from a skill or from one of a list of skills where you get a skill specialization for. You can also specify a skill groups from which you can choose a skill.",
1168
- "oneOf": [
1169
- {
1170
- "type": "object",
1171
- "properties": {
1172
- "tag": {
1173
- "const": "Single"
1174
- },
1175
- "single": {
1176
- "$ref": "#/$defs/SingleSkillSpecializationOption"
1177
- }
1178
- },
1179
- "required": [
1180
- "tag",
1181
- "single"
1182
- ],
1183
- "additionalProperties": false
1184
- },
1185
- {
1186
- "type": "object",
1187
- "properties": {
1188
- "tag": {
1189
- "const": "Group"
1190
- },
1191
- "group": {
1192
- "$ref": "#/$defs/SkillGroupSkillSpecializationOption"
1193
- }
1194
- },
1195
- "required": [
1196
- "tag",
1197
- "group"
1198
- ],
1199
- "additionalProperties": false
1200
- }
1201
- ]
1202
- },
1203
- "SingleSkillSpecializationOption": {
1204
- "type": "object",
1205
- "properties": {
1206
- "options": {
1207
- "description": "Possible skills to get a skill specialization for.",
1208
- "type": "array",
1209
- "items": {
1210
- "$ref": "./_SimpleReferences.schema.json#/$defs/SkillReference"
1211
- },
1212
- "minItems": 1,
1213
- "uniqueItems": true
1214
- }
1215
- },
1216
- "required": [
1217
- "options"
1218
- ],
1219
- "additionalProperties": false
1220
- },
1221
- "SkillGroupSkillSpecializationOption": {
1222
- "$ref": "./_SimpleReferences.schema.json#/$defs/SkillGroupReference"
1223
- },
1224
- "LanguagesScriptsOptions": {
1225
- "description": "Buy languages and scripts for a specific amount of AP.",
1226
- "type": "object",
1227
- "properties": {
1228
- "ap_value": {
1229
- "description": "The AP value you can buy languages and scripts for.",
1230
- "type": "integer",
1231
- "minimum": 2,
1232
- "multipleOf": 2
1233
- }
1234
- },
1235
- "required": [
1236
- "ap_value"
1237
- ],
1238
- "additionalProperties": false
1239
- },
1240
- "CombatTechniquesOptions": {
1241
- "description": "Select one or more combat techniques you get a CtR bonus for.",
1242
- "type": "object",
1243
- "properties": {
1244
- "fixed": {
1245
- "description": "Specify the number of combat techniques that can be selected so that they get increased to a specific CtR. There can be multiple selections with different CtRs.",
1246
- "type": "array",
1247
- "items": {
1248
- "$ref": "#/$defs/RatingForCombatTechniquesNumber"
1249
- },
1250
- "minItems": 1
1251
- },
1252
- "rest_rating": {
1253
- "description": "Define if after the fixed selections the remaining unselected combat techniques will receive a certain rating bonus as well.",
1254
- "type": "integer",
1255
- "maximum": 6,
1256
- "minimum": 1
1257
- },
1258
- "options": {
1259
- "description": "The list of combat techniques to choose from.",
1260
- "type": "array",
1261
- "items": {
1262
- "$ref": "./_SimpleReferences.schema.json#/$defs/CombatTechniqueReference"
1263
- },
1264
- "minItems": 2
1265
- }
1266
- },
1267
- "required": [
1268
- "fixed",
1269
- "options"
1270
- ],
1271
- "additionalProperties": false
1272
- },
1273
- "RatingForCombatTechniquesNumber": {
1274
- "type": "object",
1275
- "properties": {
1276
- "number": {
1277
- "description": "The number of selectable combat techniques.",
1278
- "type": "integer",
1279
- "minimum": 1
1280
- },
1281
- "rating": {
1282
- "description": "The rating bonus provided for the selected combat technique(s).\n\n**Note:** This is a rating *bonus*, so it will be *added* to the default\nvalue of 6.",
1283
- "type": "integer",
1284
- "maximum": 6,
1285
- "minimum": 1
1286
- }
1287
- },
1288
- "required": [
1289
- "number",
1290
- "rating"
1291
- ],
1292
- "additionalProperties": false
1293
- },
1294
- "CantripsOptions": {
1295
- "description": "Select one or more cantrips you receive.",
1296
- "type": "object",
1297
- "properties": {
1298
- "number": {
1299
- "description": "The number of selectable cantrips.",
1300
- "type": "integer",
1301
- "minimum": 1
1302
- },
1303
- "options": {
1304
- "description": "The list of cantrips to choose from.",
1305
- "type": "array",
1306
- "items": {
1307
- "$ref": "./_SimpleReferences.schema.json#/$defs/CantripReference"
1308
- },
1309
- "minItems": 2
1310
- }
1311
- },
1312
- "required": [
1313
- "number",
1314
- "options"
1315
- ],
1316
- "additionalProperties": false
1317
- },
1318
- "CursesOptions": {
1319
- "description": "Buy curses for a specific amount of AP.",
1320
- "type": "object",
1321
- "properties": {
1322
- "ap_value": {
1323
- "description": "The AP value you can buy curses for.",
1324
- "type": "integer",
1325
- "minimum": 2,
1326
- "multipleOf": 2
1327
- }
1328
- },
1329
- "required": [
1330
- "ap_value"
1331
- ],
1332
- "additionalProperties": false
1333
- },
1334
- "TerrainKnowledgeOptions": {
1335
- "description": "Select one of a list of possible terrain knowledges",
1336
- "type": "object",
1337
- "properties": {
1338
- "options": {
1339
- "description": "The list of possible terrain knowledges.",
1340
- "type": "array",
1341
- "items": {
1342
- "$ref": "#/$defs/TerrainKnowledgeOptionReference"
1343
- },
1344
- "minItems": 2
1345
- }
1346
- },
1347
- "required": [
1348
- "options"
1349
- ],
1350
- "additionalProperties": false
1351
- },
1352
- "TerrainKnowledgeOptionReference": {
1353
- "type": "object",
1354
- "properties": {
1355
- "id": {
1356
- "description": "The terrain knowledge option's identifier.",
1357
- "type": "integer",
1358
- "maximum": 10,
1359
- "minimum": 1
1360
- }
1361
- },
1362
- "required": [
1363
- "id"
1364
- ],
1365
- "additionalProperties": false
1366
- },
1367
- "SkillsOptions": {
1368
- "description": "Buy skills for a specific amount of AP.",
1369
- "type": "object",
1370
- "properties": {
1371
- "group": {
1372
- "description": "If specified, you may only choose from skills of the specified group.",
1373
- "$ref": "./_SimpleReferences.schema.json#/$defs/SkillGroupReference"
1374
- },
1375
- "ap_value": {
1376
- "description": "The AP value you can buy skills for.",
1377
- "type": "integer",
1378
- "minimum": 1
1379
- }
1380
- },
1381
- "required": [
1382
- "ap_value"
1383
- ],
1384
- "additionalProperties": false
1385
- },
1386
- "ProfessionName": {
1387
- "description": "The name of the profession that may have sex-specific names.",
1388
- "oneOf": [
1389
- {
1390
- "$ref": "#/$defs/SimpleProfessionName"
1391
- },
1392
- {
1393
- "$ref": "#/$defs/ProfessionNameBySex"
1394
- }
1395
- ]
1396
- },
1397
- "SimpleProfessionName": {
1398
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1399
- },
1400
- "ProfessionNameBySex": {
1401
- "type": "object",
1402
- "properties": {
1403
- "default": {
1404
- "description": "The name from the source publication.",
1405
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1406
- },
1407
- "male": {
1408
- "description": "The male name.",
1409
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1410
- },
1411
- "female": {
1412
- "description": "The female name.",
1413
- "$ref": "./_NonEmptyString.schema.json#/$defs/NonEmptyString"
1414
- }
1415
- },
1416
- "required": [
1417
- "default",
1418
- "male",
1419
- "female"
1420
- ],
1421
- "additionalProperties": false
1422
- }
1423
- }
1424
- }