optolith-database-schema 0.1.4 → 0.1.5

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 (196) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/lib/types/Advantage.d.ts +3 -0
  3. package/lib/types/ArcaneBardTradition.d.ts +2 -2
  4. package/lib/types/ArcaneDancerTradition.d.ts +2 -2
  5. package/lib/types/Ceremony.d.ts +2 -2
  6. package/lib/types/DerivedCharacteristic.d.ts +2 -2
  7. package/lib/types/Disadvantage.d.ts +3 -0
  8. package/lib/types/LiturgicalChant.d.ts +2 -2
  9. package/lib/types/Ritual.d.ts +2 -2
  10. package/lib/types/Spell.d.ts +2 -2
  11. package/lib/types/_Activatable.d.ts +689 -14
  12. package/lib/types/_Activatable.js +44 -0
  13. package/lib/types/_Enhancements.d.ts +2 -2
  14. package/lib/types/_Identifier.d.ts +127 -96
  15. package/lib/types/_Identifier.js +110 -88
  16. package/lib/types/_Influence.d.ts +2 -0
  17. package/lib/types/_Prerequisite.d.ts +93 -397
  18. package/lib/types/_Prerequisite.js +1 -136
  19. package/lib/types/magicalActions/AnimistPower.d.ts +5 -0
  20. package/lib/types/magicalActions/GeodeRitual.d.ts +2 -2
  21. package/lib/types/prerequisites/ConditionalPrerequisites.d.ts +10 -0
  22. package/lib/types/prerequisites/ConditionalPrerequisites.js +1 -0
  23. package/lib/types/prerequisites/DisplayOption.d.ts +19 -0
  24. package/lib/types/prerequisites/DisplayOption.js +1 -0
  25. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +32 -0
  26. package/lib/types/prerequisites/PrerequisiteGroups.js +1 -0
  27. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +95 -0
  28. package/lib/types/prerequisites/single/ActivatablePrerequisite.js +1 -0
  29. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +28 -0
  30. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.js +1 -0
  31. package/lib/types/prerequisites/single/CommonSuggestedByRCPPrerequisite.d.ts +3 -0
  32. package/lib/types/prerequisites/single/CommonSuggestedByRCPPrerequisite.js +1 -0
  33. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +11 -0
  34. package/lib/types/prerequisites/single/CulturePrerequisite.js +1 -0
  35. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +36 -0
  36. package/lib/types/prerequisites/single/EnhancementPrerequisite.js +1 -0
  37. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +18 -0
  38. package/lib/types/prerequisites/single/InfluencePrerequisite.js +1 -0
  39. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +32 -0
  40. package/lib/types/prerequisites/single/PactPrerequisite.js +1 -0
  41. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +22 -0
  42. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +1 -0
  43. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +13 -0
  44. package/lib/types/prerequisites/single/PublicationPrerequisite.js +1 -0
  45. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +14 -0
  46. package/lib/types/prerequisites/single/RacePrerequisite.js +1 -0
  47. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +99 -0
  48. package/lib/types/prerequisites/single/RatedPrerequisite.js +1 -0
  49. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +10 -0
  50. package/lib/types/prerequisites/single/RulePrerequisite.js +1 -0
  51. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +11 -0
  52. package/lib/types/prerequisites/single/SexPrerequisite.js +1 -0
  53. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +16 -0
  54. package/lib/types/prerequisites/single/SocialStatusPrerequisite.js +1 -0
  55. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +11 -0
  56. package/lib/types/prerequisites/single/StatePrerequisite.js +1 -0
  57. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +31 -0
  58. package/lib/types/prerequisites/single/TextPrerequisite.js +1 -0
  59. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +33 -0
  60. package/lib/types/prerequisites/single/TraditionPrerequisite.js +1 -0
  61. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +7 -0
  62. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +3 -0
  63. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +3 -0
  64. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +3 -0
  65. package/lib/types/specialAbility/AncestorGlyph.d.ts +3 -0
  66. package/lib/types/specialAbility/BlessedTradition.d.ts +5 -2
  67. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +3 -0
  68. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +3 -0
  69. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +7 -0
  70. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +3 -0
  71. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +3 -0
  72. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +3 -0
  73. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +3 -0
  74. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +3 -0
  75. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +3 -0
  76. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +3 -0
  77. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +3 -0
  78. package/lib/types/specialAbility/LycantropicGift.d.ts +3 -0
  79. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +3 -0
  80. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +3 -0
  81. package/lib/types/specialAbility/MagicalTradition.d.ts +3 -0
  82. package/lib/types/specialAbility/PactGift.d.ts +5 -2
  83. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +3 -0
  84. package/lib/types/specialAbility/Sermon.d.ts +3 -0
  85. package/lib/types/specialAbility/SexSpecialAbility.d.ts +3 -0
  86. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +3 -0
  87. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +3 -0
  88. package/lib/types/specialAbility/VampiricGift.d.ts +3 -0
  89. package/lib/types/specialAbility/Vision.d.ts +3 -0
  90. package/lib/types/specialAbility/sub/Language.d.ts +2 -2
  91. package/lib/types/specialAbility/sub/TradeSecret.d.ts +2 -0
  92. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +15 -0
  93. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +15 -0
  94. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +15 -0
  95. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +15 -0
  96. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +15 -0
  97. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +15 -0
  98. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +15 -0
  99. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +15 -0
  100. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +15 -0
  101. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +15 -0
  102. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +15 -0
  103. package/lib/types/traditionArtifacts/SickleRitual.d.ts +15 -0
  104. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +15 -0
  105. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +15 -0
  106. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +15 -0
  107. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +15 -0
  108. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +15 -0
  109. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +15 -0
  110. package/package.json +2 -2
  111. package/schema/Advantage.schema.json +6 -0
  112. package/schema/ArcaneBardTradition.schema.json +1 -1
  113. package/schema/ArcaneDancerTradition.schema.json +1 -1
  114. package/schema/Ceremony.schema.json +1 -1
  115. package/schema/DerivedCharacteristic.schema.json +1 -1
  116. package/schema/Disadvantage.schema.json +6 -0
  117. package/schema/LiturgicalChant.schema.json +1 -1
  118. package/schema/Ritual.schema.json +1 -1
  119. package/schema/Spell.schema.json +1 -1
  120. package/schema/_Activatable.schema.json +1196 -43
  121. package/schema/_Enhancements.schema.json +1 -1
  122. package/schema/_Identifier.schema.json +325 -188
  123. package/schema/_Influence.schema.json +4 -0
  124. package/schema/_Prerequisite.schema.json +887 -675
  125. package/schema/magicalActions/AnimistPower.schema.json +4 -0
  126. package/schema/magicalActions/GeodeRitual.schema.json +1 -1
  127. package/schema/prerequisites/ConditionalPrerequisites.schema.json +15 -0
  128. package/schema/prerequisites/DisplayOption.schema.json +48 -0
  129. package/schema/prerequisites/PrerequisiteGroups.schema.json +246 -0
  130. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +142 -0
  131. package/schema/prerequisites/single/AnimistPowerPrerequisite.schema.json +40 -0
  132. package/schema/prerequisites/single/CommonSuggestedByRCPPrerequisite.schema.json +18 -0
  133. package/schema/prerequisites/single/CulturePrerequisite.schema.json +27 -0
  134. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +54 -0
  135. package/schema/prerequisites/single/InfluencePrerequisite.schema.json +33 -0
  136. package/schema/prerequisites/single/PactPrerequisite.schema.json +46 -0
  137. package/schema/prerequisites/single/PrimaryAttributePrerequisite.schema.json +58 -0
  138. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +27 -0
  139. package/schema/prerequisites/single/RacePrerequisite.schema.json +31 -0
  140. package/schema/prerequisites/single/RatedPrerequisite.schema.json +184 -0
  141. package/schema/prerequisites/single/RulePrerequisite.schema.json +26 -0
  142. package/schema/prerequisites/single/SexPrerequisite.schema.json +27 -0
  143. package/schema/prerequisites/single/SocialStatusPrerequisite.schema.json +30 -0
  144. package/schema/prerequisites/single/StatePrerequisite.schema.json +27 -0
  145. package/schema/prerequisites/single/TextPrerequisite.schema.json +63 -0
  146. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +96 -0
  147. package/schema/source/Publication.schema.json +1 -1
  148. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +9 -0
  149. package/schema/specialAbility/AdvancedKarmaSpecialAbility.schema.json +6 -0
  150. package/schema/specialAbility/AdvancedMagicalSpecialAbility.schema.json +6 -0
  151. package/schema/specialAbility/AdvancedSkillSpecialAbility.schema.json +6 -0
  152. package/schema/specialAbility/AncestorGlyph.schema.json +6 -0
  153. package/schema/specialAbility/BlessedTradition.schema.json +7 -1
  154. package/schema/specialAbility/BrawlingSpecialAbility.schema.json +6 -0
  155. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +6 -0
  156. package/schema/specialAbility/CombatSpecialAbility.schema.json +9 -0
  157. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +6 -0
  158. package/schema/specialAbility/CommandSpecialAbility.schema.json +6 -0
  159. package/schema/specialAbility/FamiliarSpecialAbility.schema.json +6 -0
  160. package/schema/specialAbility/FatePointSexSpecialAbility.schema.json +6 -0
  161. package/schema/specialAbility/FatePointSpecialAbility.schema.json +6 -0
  162. package/schema/specialAbility/GeneralSpecialAbility.schema.json +6 -0
  163. package/schema/specialAbility/KarmaSpecialAbility.schema.json +6 -0
  164. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +6 -0
  165. package/schema/specialAbility/LycantropicGift.schema.json +6 -0
  166. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +6 -0
  167. package/schema/specialAbility/MagicalSpecialAbility.schema.json +6 -0
  168. package/schema/specialAbility/MagicalTradition.schema.json +6 -0
  169. package/schema/specialAbility/PactGift.schema.json +7 -1
  170. package/schema/specialAbility/ProtectiveWardingCircleSpecialAbility.schema.json +6 -0
  171. package/schema/specialAbility/Sermon.schema.json +6 -0
  172. package/schema/specialAbility/SexSpecialAbility.schema.json +6 -0
  173. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +6 -0
  174. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +6 -0
  175. package/schema/specialAbility/VampiricGift.schema.json +6 -0
  176. package/schema/specialAbility/Vision.schema.json +6 -0
  177. package/schema/specialAbility/sub/Language.schema.json +1 -1
  178. package/schema/specialAbility/sub/TradeSecret.schema.json +3 -0
  179. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +17 -1
  180. package/schema/traditionArtifacts/AttireEnchantment.schema.json +17 -1
  181. package/schema/traditionArtifacts/BowlEnchantment.schema.json +17 -1
  182. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +17 -1
  183. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +17 -1
  184. package/schema/traditionArtifacts/DaggerRitual.schema.json +17 -1
  185. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +17 -1
  186. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +17 -1
  187. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +17 -1
  188. package/schema/traditionArtifacts/OrbEnchantment.schema.json +17 -1
  189. package/schema/traditionArtifacts/RingEnchantment.schema.json +17 -1
  190. package/schema/traditionArtifacts/SickleRitual.schema.json +17 -1
  191. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +17 -1
  192. package/schema/traditionArtifacts/StaffEnchantment.schema.json +17 -1
  193. package/schema/traditionArtifacts/ToyEnchantment.schema.json +17 -1
  194. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +17 -1
  195. package/schema/traditionArtifacts/WandEnchantment.schema.json +17 -1
  196. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +17 -1
@@ -2,9 +2,12 @@
2
2
  * General type specifications used by multiple activatable entries.
3
3
  * @title Activatable
4
4
  */
5
+ import { DisplayOption } from "./prerequisites/DisplayOption";
6
+ import { Errata } from "./source/_Erratum";
7
+ import { PublicationRefs } from "./source/_PublicationRef";
5
8
  import { Duration } from "./_ActivatableSkill";
6
- import { Identifier } from "./_Identifier";
7
- import { Prerequisite } from "./_Prerequisite";
9
+ import { ActivatableIdentifier, AdvancedSpecialAbilityRestrictedOptionIdentifier, CombatRelatedSpecialAbilityIdentifier, CombatTechniqueIdentifier, MagicalTraditionIdentifier, PatronIdentifier, VolumePointsOptionReferenceIdentifier } from "./_Identifier";
10
+ import { GeneralPrerequisites } from "./_Prerequisite";
8
11
  /**
9
12
  * The activatable entry's identifier. An unique, increasing integer.
10
13
  * @integer
@@ -43,9 +46,680 @@ export declare type Levels = number;
43
46
  */
44
47
  export declare type Maximum = number;
45
48
  /**
49
+ * Definitions for possible options for the activatable entry. They can either
50
+ * be derived from entry categories or be defined explicitly. Both can happen as
51
+ * well, but if there is an explicitly defined select option and a derived
52
+ * select option has the same identifier (which may only happen if skill or
53
+ * combat technique identifiers are used for explicit select options), the
54
+ * explicit definition overwrites the derived option.
46
55
  *
56
+ * Note that this is only a full definition of options for simple logic that can
57
+ * be made explicit using the more detailed configuration for both derived
58
+ * categories and explicit options. There are quite a few entries whose option
59
+ * logic cannot be fully represented here, so that it needs to be implemented
60
+ * manually.
61
+ * @minProperties 1
47
62
  */
48
- export declare type Options = "";
63
+ export declare type SelectOptions = {
64
+ /**
65
+ * A list of categories with optional further configuration. All available
66
+ * entries from the specified categories will be included as separate select
67
+ * options. You can also specify a set of groups that should only be
68
+ * included. Groups not mentioned will be excluded then.
69
+ * @minItems 1
70
+ */
71
+ derived?: CategoryOption[];
72
+ /**
73
+ * A list of explicit select options. If the identifier has a specific type,
74
+ * its entry is the base of this select option, where values defined here
75
+ * override values from the base. Define the `src` property if the options
76
+ * are not derived from the rules text of the advantage/disadvantage/special
77
+ * ability but instead are listed in a separate block and/or on a separate
78
+ * page.
79
+ * @minItems 1
80
+ */
81
+ explicit?: ExplicitOption[];
82
+ };
83
+ declare type CategoryOption = {
84
+ tag: "Blessings";
85
+ } | {
86
+ tag: "Cantrips";
87
+ } | {
88
+ tag: "TradeSecrets";
89
+ } | {
90
+ tag: "Scripts";
91
+ } | {
92
+ tag: "AnimalShapes";
93
+ } | {
94
+ tag: "ArcaneBardTraditions";
95
+ } | {
96
+ tag: "ArcaneDancerTraditions";
97
+ } | {
98
+ tag: "SexPractices";
99
+ } | {
100
+ tag: "Races";
101
+ } | {
102
+ tag: "Cultures";
103
+ } | {
104
+ tag: "BlessedTraditions";
105
+ /**
106
+ * Should the principles (code) of the tradition be required to select the
107
+ * respective tradition?
108
+ */
109
+ require_principles?: true;
110
+ } | {
111
+ tag: "Elements";
112
+ /**
113
+ * Only include entries with the listed identifiers.
114
+ * @minItems 1
115
+ * @uniqueItems
116
+ */
117
+ specific?: {
118
+ /**
119
+ * The element's identifier.
120
+ * @integer
121
+ * @minimum 1
122
+ * @maximum 6
123
+ */
124
+ id: number;
125
+ }[];
126
+ } | {
127
+ tag: "Properties";
128
+ /**
129
+ * Does each property require it's corresponding property knowledge?
130
+ */
131
+ require_knowledge?: true;
132
+ /**
133
+ * Require a minimum number of spellworks of the respective property to be
134
+ * on a minimum skill rating.
135
+ */
136
+ require_minimum_spellworks_on?: {
137
+ /**
138
+ * The minimum number of spellworks that need to be on the defined minimum
139
+ * skill rating.
140
+ * @integer
141
+ * @minimum 1
142
+ */
143
+ number: number;
144
+ /**
145
+ * The minimum skill rating the defined minimum number of spellworks need
146
+ * to be on.
147
+ * @integer
148
+ * @minimum 1
149
+ */
150
+ value: number;
151
+ };
152
+ } | {
153
+ tag: "Aspects";
154
+ /**
155
+ * Does each aspect require it's corresponding aspect knowledge?
156
+ */
157
+ require_knowledge?: true;
158
+ /**
159
+ * The generated name should be the *Master of (Aspect)* suffix for this
160
+ * aspect instead of the aspect's name. If an aspect does not provide a
161
+ * suffix (such as the General aspect), it is automatically excluded from
162
+ * the list.
163
+ */
164
+ use_master_of_suffix_as_name?: true;
165
+ /**
166
+ * Require a minimum number of liturgies of the respective aspect to be on a
167
+ * minimum skill rating.
168
+ */
169
+ require_minimum_liturgies_on?: {
170
+ /**
171
+ * The minimum number of liturgies that need to be on the defined minimum
172
+ * skill rating.
173
+ * @integer
174
+ * @minimum 1
175
+ */
176
+ number: number;
177
+ /**
178
+ * The minimum skill rating the defined minimum number of liturgies need
179
+ * to be on.
180
+ * @integer
181
+ * @minimum 1
182
+ */
183
+ value: number;
184
+ };
185
+ } | {
186
+ tag: "Diseases";
187
+ /**
188
+ * Only convert half the disease level into the AP value.
189
+ */
190
+ use_half_level_as_ap_value?: true;
191
+ } | {
192
+ tag: "Poisons";
193
+ /**
194
+ * Only convert half the poison level into the AP value.
195
+ */
196
+ use_half_level_as_ap_value?: true;
197
+ } | {
198
+ tag: "Languages";
199
+ /**
200
+ * Generate prerequisites for each entry of the category.
201
+ * @minItems 1
202
+ */
203
+ prerequisites?: OptionOptionPrerequisite[];
204
+ } | {
205
+ tag: "Skills";
206
+ /**
207
+ * Only include entries of the specified groups.
208
+ * @minItems 1
209
+ */
210
+ groups?: {
211
+ /**
212
+ * The skill group's identifier.
213
+ * @integer
214
+ * @minimum 1
215
+ * @maximum 5
216
+ */
217
+ id: number;
218
+ }[];
219
+ /**
220
+ * Only include (`Intersection`) or exclude (`Difference`) specific skills.
221
+ */
222
+ specific?: {
223
+ operation: {
224
+ tag: "Intersection";
225
+ } | {
226
+ tag: "Difference";
227
+ };
228
+ /**
229
+ * The list of specific skills.
230
+ * @minItems 1
231
+ * @uniqueItems
232
+ */
233
+ list: {
234
+ /**
235
+ * The skill's identifier.
236
+ * @integer
237
+ * @minimum 1
238
+ * @maximum 59
239
+ */
240
+ id: number;
241
+ }[];
242
+ };
243
+ /**
244
+ * Registers new applications, which get enabled once this entry is
245
+ * activated with its respective select option. It specifies an entry-unique
246
+ * identifier, the skill it belongs to is derived from the select option
247
+ * automatically. A translation can be left out if its name equals the name
248
+ * of the origin entry.
249
+ */
250
+ skill_applications?: SkillApplications;
251
+ /**
252
+ * Registers uses, which get enabled once this entry is activated with its
253
+ * respective select option. It specifies an entry-unique identifier, the
254
+ * skill it belongs to is derived from the select option automatically. A
255
+ * translation can be left out if its name equals the name of the origin
256
+ * entry.
257
+ */
258
+ skill_uses?: SkillUses;
259
+ /**
260
+ * Generate prerequisites for each entry of the category.
261
+ * @minItems 1
262
+ */
263
+ prerequisites?: ({
264
+ tag: "Self";
265
+ /**
266
+ * The entry requires itself on a certain Skill Rating.
267
+ * @integer
268
+ * @minimum 1
269
+ */
270
+ value: number;
271
+ } | OptionOptionPrerequisite)[];
272
+ /**
273
+ * Generate AP values for each entry.
274
+ */
275
+ ap_value?: {
276
+ tag: "DerivedFromImprovementCost";
277
+ /**
278
+ * This number is multiplied with the improvement cost of the entry
279
+ * (A = 1 to D = 4).
280
+ * @integer
281
+ * @minimum 2
282
+ */
283
+ multiplier?: number;
284
+ } | {
285
+ tag: "Fixed";
286
+ /**
287
+ * A mapping of skill identifiers to their specific AP values.
288
+ */
289
+ map: {
290
+ /**
291
+ * The skill's identifier.
292
+ * @integer
293
+ * @minimum 1
294
+ */
295
+ skill_id: number;
296
+ /**
297
+ * The AP value for the specified entry.
298
+ * @integer
299
+ * @minimum 1
300
+ */
301
+ ap_value: number;
302
+ }[];
303
+ /**
304
+ * The default value of an entry. Used as a fallback if no value is
305
+ * found in `list`.
306
+ * @integer
307
+ * @minimum 1
308
+ */
309
+ default: number;
310
+ };
311
+ } | {
312
+ tag: "Skills";
313
+ /**
314
+ * Only include entries of the specified groups.
315
+ * @minItems 1
316
+ */
317
+ groups?: {
318
+ /**
319
+ * The skill group's identifier.
320
+ * @integer
321
+ * @minimum 1
322
+ * @maximum 5
323
+ */
324
+ id: number;
325
+ }[];
326
+ /**
327
+ * Only include (`Intersection`) or exclude (`Difference`) specific skills.
328
+ */
329
+ specific?: {
330
+ operation: {
331
+ tag: "Intersection";
332
+ } | {
333
+ tag: "Difference";
334
+ };
335
+ /**
336
+ * The list of specific skills.
337
+ * @minItems 1
338
+ * @uniqueItems
339
+ */
340
+ list: {
341
+ /**
342
+ * The skill's identifier.
343
+ * @integer
344
+ * @minimum 1
345
+ * @maximum 59
346
+ */
347
+ id: number;
348
+ }[];
349
+ };
350
+ /**
351
+ * Registers new applications, which get enabled once this entry is
352
+ * activated with its respective select option. It specifies an entry-unique
353
+ * identifier, the skill it belongs to is derived from the select option
354
+ * automatically. A translation can be left out if its name equals the name
355
+ * of the origin entry.
356
+ * @minItems 1
357
+ */
358
+ skill_applications?: {
359
+ /**
360
+ * The application's identifier. An entry-unique, increasing integer.
361
+ * @integer
362
+ * @minimum 1
363
+ */
364
+ id: number;
365
+ /**
366
+ * All translations for the entry, identified by IETF language tag (BCP47).
367
+ * @minProperties 1
368
+ */
369
+ translations?: {
370
+ /**
371
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
372
+ */
373
+ [localeId: string]: {
374
+ /**
375
+ * The name of the application if different from the activatable entry's
376
+ * name.
377
+ * @minLength 1
378
+ */
379
+ name: string;
380
+ };
381
+ };
382
+ }[];
383
+ /**
384
+ * Registers uses, which get enabled once this entry is activated with its
385
+ * respective select option. It specifies an entry-unique identifier, the
386
+ * skill it belongs to is derived from the select option automatically. A
387
+ * translation can be left out if its name equals the name of the origin
388
+ * entry.
389
+ * @minItems 1
390
+ */
391
+ skill_uses?: {
392
+ /**
393
+ * The use's identifier. An entry-unique, increasing integer.
394
+ * @integer
395
+ * @minimum 1
396
+ */
397
+ id: number;
398
+ /**
399
+ * All translations for the entry, identified by IETF language tag (BCP47).
400
+ * @minProperties 1
401
+ */
402
+ translations?: {
403
+ /**
404
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
405
+ */
406
+ [localeId: string]: {
407
+ /**
408
+ * The name of the use if different from the activatable entry's name.
409
+ * @minLength 1
410
+ */
411
+ name: string;
412
+ };
413
+ };
414
+ }[];
415
+ /**
416
+ * Generate prerequisites for each entry of the category.
417
+ * @minItems 1
418
+ */
419
+ prerequisites?: (OptionSkillSelfPrerequisite | OptionOptionPrerequisite)[];
420
+ /**
421
+ * Generate AP values for each entry.
422
+ */
423
+ ap_value?: OptionSkillDeriveAdventurePointsValue;
424
+ } | {
425
+ tag: NonSkillSkillCategory;
426
+ /**
427
+ * Only include (`Intersection`) or exclude (`Difference`) specific entries.
428
+ */
429
+ specific?: {
430
+ operation: {
431
+ tag: "Intersection";
432
+ } | {
433
+ tag: "Difference";
434
+ };
435
+ /**
436
+ * The list of specific entries.
437
+ * @minItems 1
438
+ * @uniqueItems
439
+ */
440
+ list: {
441
+ /**
442
+ * The entry's identifier.
443
+ * @integer
444
+ * @minimum 1
445
+ * @maximum 59
446
+ */
447
+ id: number;
448
+ }[];
449
+ };
450
+ /**
451
+ * Generate prerequisites for each entry of the category.
452
+ * @minItems 1
453
+ */
454
+ prerequisites?: (OptionSkillSelfPrerequisite | OptionOptionPrerequisite)[];
455
+ /**
456
+ * Generate AP values for each entry.
457
+ */
458
+ ap_value?: OptionSkillDeriveAdventurePointsValue;
459
+ };
460
+ declare enum NonSkillSkillCategory {
461
+ CloseCombatTechniques = "CloseCombatTechniques",
462
+ RangedCombatTechniques = "RangedCombatTechniques",
463
+ LiturgicalChants = "LiturgicalChants",
464
+ Ceremonies = "Ceremonies",
465
+ Spells = "Spells",
466
+ Rituals = "Rituals"
467
+ }
468
+ declare type OptionSkillSelfPrerequisite = {
469
+ tag: "Self";
470
+ /**
471
+ * The entry requires itself on a certain Skill Rating.
472
+ * @integer
473
+ * @minimum 1
474
+ */
475
+ value: number;
476
+ };
477
+ /**
478
+ * The entry requires or prohibits itself as a select option of another entry.
479
+ */
480
+ declare type OptionOptionPrerequisite = {
481
+ tag: "SelectOption";
482
+ /**
483
+ * The target entry's identifier.
484
+ */
485
+ id: ActivatableIdentifier;
486
+ /**
487
+ * Is the select option required (`true`) or prohibited (`false`)?
488
+ */
489
+ active: boolean;
490
+ /**
491
+ * The required level, if any.
492
+ * @integer
493
+ * @minimum 2
494
+ */
495
+ level?: number;
496
+ };
497
+ /**
498
+ * Generate AP values for each entry.
499
+ */
500
+ declare type OptionSkillDeriveAdventurePointsValue = {
501
+ tag: "DerivedFromImprovementCost";
502
+ /**
503
+ * This number is multiplied with the improvement cost of the entry
504
+ * (A = 1 to D = 4).
505
+ * @integer
506
+ * @minimum 2
507
+ */
508
+ multiplier?: number;
509
+ } | {
510
+ tag: "Fixed";
511
+ /**
512
+ * A mapping of skill identifiers to their specific AP values.
513
+ */
514
+ map: {
515
+ /**
516
+ * The skill's identifier.
517
+ * @integer
518
+ * @minimum 1
519
+ */
520
+ skill_id: number;
521
+ /**
522
+ * The AP value for the specified entry.
523
+ * @integer
524
+ * @minimum 1
525
+ */
526
+ ap_value: number;
527
+ }[];
528
+ /**
529
+ * The default value of an entry. Used as a fallback if no value is
530
+ * found in `list`.
531
+ * @integer
532
+ * @minimum 1
533
+ */
534
+ default: number;
535
+ };
536
+ declare type ExplicitOption = {
537
+ tag: "General";
538
+ /**
539
+ * The option's identifier. An unique, increasing integer.
540
+ * @integer
541
+ * @minimum 1
542
+ */
543
+ id: number;
544
+ /**
545
+ * Sometimes, professions use specific text selections that are not
546
+ * contained in described lists. This ensures you can use them for
547
+ * professions only. They are not going to be displayed as options to the
548
+ * user.
549
+ */
550
+ profession_only?: true;
551
+ /**
552
+ * Registers new applications, which get enabled once this entry is
553
+ * activated with its respective select option. It specifies an entry-unique
554
+ * identifier and the skill it belongs to. A translation can be left out if
555
+ * its name equals the name of the origin select option.
556
+ */
557
+ skill_applications?: SkillApplications;
558
+ /**
559
+ * Registers uses, which get enabled once this entry is activated with its
560
+ * respective select option. It specifies an entry-unique identifier and the
561
+ * skill it belongs to. A translation can be left out if its name equals the
562
+ * name of the origin select option.
563
+ */
564
+ skill_uses?: SkillUses;
565
+ prerequisites?: GeneralPrerequisites;
566
+ /**
567
+ * Specific AP cost for the select option.
568
+ * @integer
569
+ * @minimum 1
570
+ */
571
+ ap_value?: number;
572
+ src?: PublicationRefs;
573
+ /**
574
+ * All translations for the entry, identified by IETF language tag (BCP47).
575
+ * @minProperties 1
576
+ */
577
+ translations: {
578
+ /**
579
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
580
+ */
581
+ [localeId: string]: {
582
+ /**
583
+ * The name of the select option.
584
+ * @minLength 1
585
+ */
586
+ name: string;
587
+ /**
588
+ * The name of the select option when displayed in a generated
589
+ * profession text.
590
+ * @minLength 1
591
+ */
592
+ name_in_profession?: string;
593
+ /**
594
+ * The description of the select option. Useful for Bad Habits, Trade
595
+ * Secrets and other entries where a description is available.
596
+ * @markdown
597
+ * @minLength 1
598
+ */
599
+ description?: string;
600
+ errata?: Errata;
601
+ };
602
+ };
603
+ } | {
604
+ tag: "Skill";
605
+ /**
606
+ * The skill's identifier. An unique, increasing integer.
607
+ * @integer
608
+ * @minimum 1
609
+ */
610
+ id: number;
611
+ /**
612
+ * Registers new applications, which get enabled once this entry is
613
+ * activated with its respective select option. It specifies an entry-unique
614
+ * identifier and the skill it belongs to. A translation can be left out if
615
+ * its name equals the name of the origin select option.
616
+ * @minItems 1
617
+ */
618
+ skill_applications?: {
619
+ /**
620
+ * The application's identifier. An entry-unique, increasing integer.
621
+ * @integer
622
+ * @minimum 1
623
+ */
624
+ id: number;
625
+ /**
626
+ * All translations for the entry, identified by IETF language tag (BCP47).
627
+ * @minProperties 1
628
+ */
629
+ translations?: {
630
+ /**
631
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
632
+ */
633
+ [localeId: string]: {
634
+ /**
635
+ * The name of the application if different from the activatable entry's
636
+ * name.
637
+ * @minLength 1
638
+ */
639
+ name: string;
640
+ };
641
+ };
642
+ }[];
643
+ /**
644
+ * Registers uses, which get enabled once this entry is activated with its
645
+ * respective select option. It specifies an entry-unique identifier and the
646
+ * skill it belongs to. A translation can be left out if its name equals the
647
+ * name of the origin select option.
648
+ * @minItems 1
649
+ */
650
+ skill_uses?: {
651
+ /**
652
+ * The use's identifier. An entry-unique, increasing integer.
653
+ * @integer
654
+ * @minimum 1
655
+ */
656
+ id: number;
657
+ /**
658
+ * All translations for the entry, identified by IETF language tag (BCP47).
659
+ * @minProperties 1
660
+ */
661
+ translations?: {
662
+ /**
663
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
664
+ */
665
+ [localeId: string]: {
666
+ /**
667
+ * The name of the use if different from the activatable entry's name.
668
+ * @minLength 1
669
+ */
670
+ name: string;
671
+ };
672
+ };
673
+ }[];
674
+ prerequisites?: GeneralPrerequisites;
675
+ /**
676
+ * Specific AP cost for the select option.
677
+ * @integer
678
+ * @minimum 1
679
+ */
680
+ ap_value?: number;
681
+ src?: PublicationRefs;
682
+ /**
683
+ * All translations for the entry, identified by IETF language tag (BCP47).
684
+ * @minProperties 1
685
+ */
686
+ translations?: {
687
+ /**
688
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
689
+ * @minProperties 1
690
+ */
691
+ [localeId: string]: {
692
+ errata?: Errata;
693
+ };
694
+ };
695
+ } | {
696
+ tag: "CombatTechnique";
697
+ /**
698
+ * The combat technique's identifier.
699
+ */
700
+ id: CombatTechniqueIdentifier;
701
+ prerequisites?: GeneralPrerequisites;
702
+ /**
703
+ * Specific AP cost for the select option.
704
+ * @integer
705
+ * @minimum 1
706
+ */
707
+ ap_value?: number;
708
+ src?: PublicationRefs;
709
+ /**
710
+ * All translations for the entry, identified by IETF language tag (BCP47).
711
+ * @minProperties 1
712
+ */
713
+ translations?: {
714
+ /**
715
+ * @patternProperties ^[a-z]{2}-[A-Z]{2}$
716
+ * @minProperties 1
717
+ */
718
+ [localeId: string]: {
719
+ errata?: Errata;
720
+ };
721
+ };
722
+ };
49
723
  /**
50
724
  * The rule text.
51
725
  * @markdown
@@ -284,7 +958,7 @@ export declare type Penalty = {
284
958
  * The identifier of the combat-related special ability of which the level
285
959
  * defines the penalty instead.
286
960
  */
287
- external_id?: Identifier.Group.CombatRelatedSpecialAbility;
961
+ external_id?: CombatRelatedSpecialAbilityIdentifier;
288
962
  } | {
289
963
  tag: "ByAttack";
290
964
  /**
@@ -737,7 +1411,7 @@ export declare type VolumeMapOption = {
737
1411
  /**
738
1412
  * The option's identifier.
739
1413
  */
740
- id: Identifier.Group.VolumePointsOptionReference;
1414
+ id: VolumePointsOptionReferenceIdentifier;
741
1415
  }[];
742
1416
  /**
743
1417
  * All translations for the entry, identified by IETF language tag (BCP47).
@@ -920,7 +1594,7 @@ export declare type AdvancedSpecialAbility = {
920
1594
  * advanced special ability; others are disallowed.
921
1595
  * @minItems 1
922
1596
  */
923
- option: Identifier.Group.AdvancedSpecialAbilityRestrictedOption[];
1597
+ option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
924
1598
  } | {
925
1599
  tag: "OneOf";
926
1600
  /**
@@ -944,8 +1618,8 @@ export declare type AdvancedSpecialAbility = {
944
1618
  * advanced special ability; others are disallowed.
945
1619
  * @minItems 1
946
1620
  */
947
- option: Identifier.Group.AdvancedSpecialAbilityRestrictedOption[];
948
- display_option?: Prerequisite.Single.DisplayOption.T;
1621
+ option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
1622
+ display_option?: DisplayOption;
949
1623
  } | {
950
1624
  tag: "DeriveFromExternalOption";
951
1625
  /**
@@ -972,7 +1646,7 @@ export declare type AdvancedSpecialAbility = {
972
1646
  id: number;
973
1647
  };
974
1648
  }[];
975
- display_option?: Prerequisite.Single.DisplayOption.T;
1649
+ display_option?: DisplayOption;
976
1650
  /**
977
1651
  * Do have to choose on when buying the special ability? Otherwise the
978
1652
  * decision can be made later.
@@ -983,10 +1657,10 @@ export declare type AdvancedSpecialAbility = {
983
1657
  * advanced special ability; others are disallowed.
984
1658
  * @minItems 1
985
1659
  */
986
- option: Identifier.Group.AdvancedSpecialAbilityRestrictedOption[];
1660
+ option: AdvancedSpecialAbilityRestrictedOptionIdentifier[];
987
1661
  };
988
- export declare type AdvancedSpecialAbilityDerivedExternalEntryId = Identifier.Tagged<"MagicalTradition">;
989
- export declare type AdvancedSpecialAbilityDerivedExternalEntryOptionId = Identifier.Tagged<"Patron">;
1662
+ export declare type AdvancedSpecialAbilityDerivedExternalEntryId = MagicalTraditionIdentifier;
1663
+ export declare type AdvancedSpecialAbilityDerivedExternalEntryOptionId = PatronIdentifier;
990
1664
  /**
991
1665
  * The Advanced Special Abilities for the respective Style Special Ability.
992
1666
  * Sometimes, only a specific select option or a set of select options of an
@@ -1027,7 +1701,7 @@ export declare type ApplicableCombatTechniques = {
1027
1701
  * @minItems 1
1028
1702
  */
1029
1703
  list: {
1030
- id: Identifier.Group.CombatTechnique;
1704
+ id: CombatTechniqueIdentifier;
1031
1705
  /**
1032
1706
  * @minItems 1
1033
1707
  */
@@ -1056,7 +1730,7 @@ export declare type ApplicableAllCombatTechniquesRestriction = {
1056
1730
  * @minItems 1
1057
1731
  * @uniqueItems
1058
1732
  */
1059
- list: Identifier.Group.CombatTechnique[];
1733
+ list: CombatTechniqueIdentifier[];
1060
1734
  };
1061
1735
  export declare type ApplicableCloseCombatTechniquesRestriction = {
1062
1736
  tag: "Improvised";
@@ -1206,3 +1880,4 @@ export declare type AdventurePointsValue = {
1206
1880
  * @minimum 0
1207
1881
  */
1208
1882
  export declare type AdventurePointsSingleValue = number;
1883
+ export {};