optolith-database-schema 0.17.2 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/CHANGELOG.md +34 -1
  2. package/lib/main.d.ts +2 -101
  3. package/lib/main.js +361 -106
  4. package/lib/test.d.ts +1 -0
  5. package/lib/test.js +2 -0
  6. package/lib/types/Advantage.d.ts +921 -63
  7. package/lib/types/Advantage.js +42 -13
  8. package/lib/types/AnimalDisease.d.ts +90 -59
  9. package/lib/types/AnimalDisease.js +28 -13
  10. package/lib/types/AnimalType.d.ts +6 -28
  11. package/lib/types/AnimalType.js +14 -13
  12. package/lib/types/ArcaneBardTradition.d.ts +30 -10
  13. package/lib/types/ArcaneBardTradition.js +7 -13
  14. package/lib/types/ArcaneDancerTradition.d.ts +30 -10
  15. package/lib/types/ArcaneDancerTradition.js +7 -13
  16. package/lib/types/Aspect.d.ts +7 -33
  17. package/lib/types/Aspect.js +20 -13
  18. package/lib/types/Attribute.d.ts +8 -36
  19. package/lib/types/Attribute.js +23 -13
  20. package/lib/types/Blessing.d.ts +96 -113
  21. package/lib/types/Blessing.js +94 -13
  22. package/lib/types/Cantrip.d.ts +132 -183
  23. package/lib/types/Cantrip.js +159 -13
  24. package/lib/types/Ceremony.d.ts +630 -113
  25. package/lib/types/Ceremony.js +87 -13
  26. package/lib/types/CombatTechnique.d.ts +127 -0
  27. package/lib/types/CombatTechnique.js +101 -0
  28. package/lib/types/Condition.d.ts +52 -40
  29. package/lib/types/Condition.js +31 -13
  30. package/lib/types/Continent.d.ts +6 -30
  31. package/lib/types/Continent.js +15 -13
  32. package/lib/types/Culture.d.ts +142 -369
  33. package/lib/types/Culture.js +355 -13
  34. package/lib/types/DerivedCharacteristic.d.ts +76 -61
  35. package/lib/types/DerivedCharacteristic.js +45 -13
  36. package/lib/types/Disadvantage.d.ts +921 -58
  37. package/lib/types/Disadvantage.js +45 -13
  38. package/lib/types/Disease.d.ts +81 -43
  39. package/lib/types/Disease.js +15 -13
  40. package/lib/types/Element.d.ts +6 -28
  41. package/lib/types/Element.js +14 -13
  42. package/lib/types/ExperienceLevel.d.ts +13 -64
  43. package/lib/types/ExperienceLevel.js +43 -13
  44. package/lib/types/EyeColor.d.ts +6 -28
  45. package/lib/types/EyeColor.js +14 -13
  46. package/lib/types/FamiliarsTrick.d.ts +189 -266
  47. package/lib/types/FamiliarsTrick.js +193 -13
  48. package/lib/types/HairColor.d.ts +6 -28
  49. package/lib/types/HairColor.js +14 -13
  50. package/lib/types/Lessons.d.ts +180 -0
  51. package/lib/types/Lessons.js +212 -0
  52. package/lib/types/LiturgicalChant.d.ts +630 -113
  53. package/lib/types/LiturgicalChant.js +87 -13
  54. package/lib/types/Locale.d.ts +11 -36
  55. package/lib/types/Locale.js +1316 -13
  56. package/lib/types/MetaCondition.d.ts +52 -43
  57. package/lib/types/MetaCondition.js +32 -13
  58. package/lib/types/PactCategory.d.ts +74 -78
  59. package/lib/types/PactCategory.js +65 -13
  60. package/lib/types/Patron.d.ts +100 -197
  61. package/lib/types/Patron.js +195 -13
  62. package/lib/types/PatronCategory.d.ts +7 -36
  63. package/lib/types/PatronCategory.js +19 -13
  64. package/lib/types/PersonalityTrait.d.ts +80 -67
  65. package/lib/types/PersonalityTrait.js +51 -13
  66. package/lib/types/Profession.d.ts +1911 -665
  67. package/lib/types/Profession.js +593 -13
  68. package/lib/types/Property.d.ts +7 -34
  69. package/lib/types/Property.js +19 -13
  70. package/lib/types/Race.d.ts +163 -349
  71. package/lib/types/Race.js +287 -13
  72. package/lib/types/Region.d.ts +6 -28
  73. package/lib/types/Region.js +14 -13
  74. package/lib/types/Ritual.d.ts +627 -111
  75. package/lib/types/Ritual.js +88 -13
  76. package/lib/types/Service.d.ts +55 -43
  77. package/lib/types/Service.js +38 -13
  78. package/lib/types/SexPractice.d.ts +50 -47
  79. package/lib/types/SexPractice.js +32 -13
  80. package/lib/types/Skill.d.ts +112 -131
  81. package/lib/types/Skill.js +120 -10
  82. package/lib/types/SkillGroup.d.ts +8 -37
  83. package/lib/types/SkillGroup.js +23 -13
  84. package/lib/types/SkillModificationLevel.d.ts +31 -101
  85. package/lib/types/SkillModificationLevel.js +95 -10
  86. package/lib/types/SocialStatus.d.ts +7 -28
  87. package/lib/types/SocialStatus.js +18 -13
  88. package/lib/types/Spell.d.ts +627 -111
  89. package/lib/types/Spell.js +88 -13
  90. package/lib/types/State.d.ts +51 -36
  91. package/lib/types/State.js +24 -13
  92. package/lib/types/Talisman.d.ts +64 -70
  93. package/lib/types/Talisman.js +64 -13
  94. package/lib/types/TargetCategory.d.ts +7 -42
  95. package/lib/types/TargetCategory.js +19 -13
  96. package/lib/types/_Activatable.d.ts +1587 -1366
  97. package/lib/types/_Activatable.js +1392 -2
  98. package/lib/types/_ActivatableSelectOptionCategory.d.ts +657 -386
  99. package/lib/types/_ActivatableSelectOptionCategory.js +381 -1
  100. package/lib/types/_ActivatableSkill.d.ts +1105 -34
  101. package/lib/types/_ActivatableSkill.js +82 -1
  102. package/lib/types/_ActivatableSkillCastingTime.d.ts +66 -74
  103. package/lib/types/_ActivatableSkillCastingTime.js +92 -1
  104. package/lib/types/_ActivatableSkillCheckResultBased.d.ts +25 -33
  105. package/lib/types/_ActivatableSkillCheckResultBased.js +44 -1
  106. package/lib/types/_ActivatableSkillCost.d.ts +209 -255
  107. package/lib/types/_ActivatableSkillCost.js +224 -1
  108. package/lib/types/_ActivatableSkillDuration.d.ts +202 -135
  109. package/lib/types/_ActivatableSkillDuration.js +138 -1
  110. package/lib/types/_ActivatableSkillEffect.d.ts +16 -68
  111. package/lib/types/_ActivatableSkillEffect.js +65 -1
  112. package/lib/types/_ActivatableSkillRange.d.ts +61 -115
  113. package/lib/types/_ActivatableSkillRange.js +106 -1
  114. package/lib/types/_ActivatableSkillTargetCategory.d.ts +13 -39
  115. package/lib/types/_ActivatableSkillTargetCategory.js +29 -1
  116. package/lib/types/_AlternativeNames.d.ts +5 -11
  117. package/lib/types/_AlternativeNames.js +14 -1
  118. package/lib/types/_ArcaneTradition.d.ts +30 -28
  119. package/lib/types/_ArcaneTradition.js +14 -4
  120. package/lib/types/_Blessed.d.ts +8 -22
  121. package/lib/types/_Blessed.js +22 -1
  122. package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +4 -10
  123. package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +12 -1
  124. package/lib/types/_Dice.d.ts +6 -19
  125. package/lib/types/_Dice.js +23 -1
  126. package/lib/types/_DiseasePoison.d.ts +56 -107
  127. package/lib/types/_DiseasePoison.js +107 -2
  128. package/lib/types/_Enhancements.d.ts +165 -59
  129. package/lib/types/_Enhancements.js +66 -1
  130. package/lib/types/_I18n.d.ts +14 -42
  131. package/lib/types/_I18n.js +55 -1
  132. package/lib/types/_Identifier.d.ts +158 -1274
  133. package/lib/types/_Identifier.js +300 -1
  134. package/lib/types/_IdentifierGroup.d.ts +278 -29
  135. package/lib/types/_IdentifierGroup.js +340 -1
  136. package/lib/types/_ImprovementCost.d.ts +7 -4
  137. package/lib/types/_ImprovementCost.js +10 -1
  138. package/lib/types/_Influence.d.ts +78 -49
  139. package/lib/types/_Influence.js +42 -4
  140. package/lib/types/_Prerequisite.d.ts +370 -106
  141. package/lib/types/_Prerequisite.js +136 -1
  142. package/lib/types/_ResponsiveText.d.ts +13 -54
  143. package/lib/types/_ResponsiveText.js +37 -1
  144. package/lib/types/_Sex.d.ts +5 -7
  145. package/lib/types/_Sex.js +8 -4
  146. package/lib/types/_SkillCheck.d.ts +10 -15
  147. package/lib/types/_SkillCheck.js +34 -1
  148. package/lib/types/_Spellwork.d.ts +5 -18
  149. package/lib/types/_Spellwork.js +13 -1
  150. package/lib/types/equipment/EquipmentPackage.d.ts +80 -51
  151. package/lib/types/equipment/EquipmentPackage.js +34 -13
  152. package/lib/types/equipment/item/Ammunition.d.ts +69 -32
  153. package/lib/types/equipment/item/Ammunition.js +29 -13
  154. package/lib/types/equipment/item/Animal.d.ts +71 -19
  155. package/lib/types/equipment/item/Animal.js +15 -13
  156. package/lib/types/equipment/item/AnimalCare.d.ts +86 -49
  157. package/lib/types/equipment/item/AnimalCare.js +51 -13
  158. package/lib/types/equipment/item/Armor.d.ts +120 -186
  159. package/lib/types/equipment/item/Armor.js +156 -13
  160. package/lib/types/equipment/item/BandageOrRemedy.d.ts +176 -37
  161. package/lib/types/equipment/item/BandageOrRemedy.js +2 -14
  162. package/lib/types/equipment/item/Book.d.ts +84 -61
  163. package/lib/types/equipment/item/Book.js +57 -13
  164. package/lib/types/equipment/item/CeremonialItem.d.ts +178 -42
  165. package/lib/types/equipment/item/CeremonialItem.js +36 -13
  166. package/lib/types/equipment/item/Clothes.d.ts +176 -7
  167. package/lib/types/equipment/item/Clothes.js +2 -14
  168. package/lib/types/equipment/item/Container.d.ts +176 -7
  169. package/lib/types/equipment/item/Container.js +2 -14
  170. package/lib/types/equipment/item/Elixir.d.ts +91 -76
  171. package/lib/types/equipment/item/Elixir.js +54 -13
  172. package/lib/types/equipment/item/EquipmentOfBlessedOnes.d.ts +170 -29
  173. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +28 -13
  174. package/lib/types/equipment/item/GemOrPreciousStone.d.ts +72 -44
  175. package/lib/types/equipment/item/GemOrPreciousStone.js +41 -13
  176. package/lib/types/equipment/item/IlluminationLightSource.d.ts +186 -61
  177. package/lib/types/equipment/item/IlluminationLightSource.js +61 -13
  178. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +176 -0
  179. package/lib/types/equipment/item/IlluminationRefillOrSupply.js +2 -0
  180. package/lib/types/equipment/item/Jewelry.d.ts +73 -61
  181. package/lib/types/equipment/item/Jewelry.js +37 -13
  182. package/lib/types/equipment/item/Liebesspielzeug.d.ts +176 -7
  183. package/lib/types/equipment/item/Liebesspielzeug.js +2 -14
  184. package/lib/types/equipment/item/LuxuryGood.d.ts +176 -37
  185. package/lib/types/equipment/item/LuxuryGood.js +2 -14
  186. package/lib/types/equipment/item/MagicalArtifact.d.ts +71 -40
  187. package/lib/types/equipment/item/MagicalArtifact.js +15 -13
  188. package/lib/types/equipment/item/MusicalInstrument.d.ts +174 -32
  189. package/lib/types/equipment/item/MusicalInstrument.js +27 -13
  190. package/lib/types/equipment/item/OrienteeringAid.d.ts +176 -7
  191. package/lib/types/equipment/item/OrienteeringAid.js +2 -14
  192. package/lib/types/equipment/item/Poison.d.ts +483 -354
  193. package/lib/types/equipment/item/Poison.js +386 -13
  194. package/lib/types/equipment/item/RopeOrChain.d.ts +176 -7
  195. package/lib/types/equipment/item/RopeOrChain.js +2 -14
  196. package/lib/types/equipment/item/Stationery.d.ts +176 -0
  197. package/lib/types/equipment/item/Stationery.js +2 -0
  198. package/lib/types/equipment/item/ThievesTool.d.ts +176 -7
  199. package/lib/types/equipment/item/ThievesTool.js +2 -14
  200. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +89 -61
  201. package/lib/types/equipment/item/ToolOfTheTrade.js +40 -13
  202. package/lib/types/equipment/item/TravelGearOrTool.d.ts +176 -7
  203. package/lib/types/equipment/item/TravelGearOrTool.js +2 -14
  204. package/lib/types/equipment/item/Vehicle.d.ts +71 -19
  205. package/lib/types/equipment/item/Vehicle.js +15 -13
  206. package/lib/types/equipment/item/Weapon.d.ts +223 -166
  207. package/lib/types/equipment/item/Weapon.js +153 -13
  208. package/lib/types/equipment/item/WeaponAccessory.d.ts +176 -7
  209. package/lib/types/equipment/item/WeaponAccessory.js +2 -14
  210. package/lib/types/equipment/item/_Herbary.d.ts +42 -16
  211. package/lib/types/equipment/item/_Herbary.js +36 -1
  212. package/lib/types/equipment/item/_Item.d.ts +317 -160
  213. package/lib/types/equipment/item/_Item.js +144 -1
  214. package/lib/types/equipment/item/_MeleeWeapon.d.ts +37 -105
  215. package/lib/types/equipment/item/_MeleeWeapon.js +92 -1
  216. package/lib/types/equipment/item/_RangedWeapon.d.ts +25 -106
  217. package/lib/types/equipment/item/_RangedWeapon.js +85 -1
  218. package/lib/types/equipment/item/_Weapon.d.ts +13 -57
  219. package/lib/types/equipment/item/_Weapon.js +49 -1
  220. package/lib/types/equipment/item/sub/ArmorType.d.ts +7 -37
  221. package/lib/types/equipment/item/sub/ArmorType.js +18 -13
  222. package/lib/types/equipment/item/sub/Reach.d.ts +6 -28
  223. package/lib/types/equipment/item/sub/Reach.js +14 -13
  224. package/lib/types/index.d.ts +148 -0
  225. package/lib/types/index.js +148 -0
  226. package/lib/types/magicalActions/AnimistPower.d.ts +299 -238
  227. package/lib/types/magicalActions/AnimistPower.js +182 -13
  228. package/lib/types/magicalActions/AnimistPower_Tribe.d.ts +6 -28
  229. package/lib/types/magicalActions/AnimistPower_Tribe.js +14 -13
  230. package/lib/types/magicalActions/Curse.d.ts +215 -162
  231. package/lib/types/magicalActions/Curse.js +126 -13
  232. package/lib/types/magicalActions/DominationRitual.d.ts +200 -145
  233. package/lib/types/magicalActions/DominationRitual.js +126 -13
  234. package/lib/types/magicalActions/ElvenMagicalSong.d.ts +121 -135
  235. package/lib/types/magicalActions/ElvenMagicalSong.js +111 -13
  236. package/lib/types/magicalActions/GeodeRitual.d.ts +205 -180
  237. package/lib/types/magicalActions/GeodeRitual.js +135 -13
  238. package/lib/types/magicalActions/JesterTrick.d.ts +299 -177
  239. package/lib/types/magicalActions/JesterTrick.js +153 -13
  240. package/lib/types/magicalActions/MagicalDance.d.ts +125 -119
  241. package/lib/types/magicalActions/MagicalDance.js +113 -13
  242. package/lib/types/magicalActions/MagicalMelody.d.ts +116 -124
  243. package/lib/types/magicalActions/MagicalMelody.js +111 -13
  244. package/lib/types/magicalActions/MagicalRune.d.ts +300 -294
  245. package/lib/types/magicalActions/MagicalRune.js +278 -13
  246. package/lib/types/magicalActions/ZibiljaRitual.d.ts +396 -102
  247. package/lib/types/magicalActions/ZibiljaRitual.js +81 -13
  248. package/lib/types/magicalActions/_MusicTradition.d.ts +17 -30
  249. package/lib/types/magicalActions/_MusicTradition.js +43 -1
  250. package/lib/types/prerequisites/ConditionalPrerequisites.d.ts +24 -10
  251. package/lib/types/prerequisites/ConditionalPrerequisites.js +9 -1
  252. package/lib/types/prerequisites/DisplayOption.d.ts +13 -32
  253. package/lib/types/prerequisites/DisplayOption.js +27 -1
  254. package/lib/types/prerequisites/PrerequisiteGroups.d.ts +1338 -215
  255. package/lib/types/prerequisites/PrerequisiteGroups.js +160 -1
  256. package/lib/types/prerequisites/single/ActivatablePrerequisite.d.ts +107 -31
  257. package/lib/types/prerequisites/single/ActivatablePrerequisite.js +32 -1
  258. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.d.ts +1 -2
  259. package/lib/types/prerequisites/single/AncestorBloodPrerequisite.js +4 -1
  260. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.d.ts +18 -26
  261. package/lib/types/prerequisites/single/AnimistPowerPrerequisite.js +24 -1
  262. package/lib/types/prerequisites/single/CulturePrerequisite.d.ts +16 -13
  263. package/lib/types/prerequisites/single/CulturePrerequisite.js +16 -1
  264. package/lib/types/prerequisites/single/EnhancementPrerequisite.d.ts +4 -39
  265. package/lib/types/prerequisites/single/EnhancementPrerequisite.js +12 -1
  266. package/lib/types/prerequisites/single/InfluencePrerequisite.d.ts +17 -16
  267. package/lib/types/prerequisites/single/InfluencePrerequisite.js +19 -1
  268. package/lib/types/prerequisites/single/PactPrerequisite.d.ts +18 -23
  269. package/lib/types/prerequisites/single/PactPrerequisite.js +24 -1
  270. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.d.ts +20 -18
  271. package/lib/types/prerequisites/single/PrimaryAttributePrerequisite.js +25 -1
  272. package/lib/types/prerequisites/single/PublicationPrerequisite.d.ts +16 -12
  273. package/lib/types/prerequisites/single/PublicationPrerequisite.js +15 -1
  274. package/lib/types/prerequisites/single/RacePrerequisite.d.ts +17 -16
  275. package/lib/types/prerequisites/single/RacePrerequisite.js +19 -1
  276. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.d.ts +51 -63
  277. package/lib/types/prerequisites/single/RatedMinimumNumberPrerequisite.js +80 -1
  278. package/lib/types/prerequisites/single/RatedPrerequisite.d.ts +26 -18
  279. package/lib/types/prerequisites/single/RatedPrerequisite.js +19 -1
  280. package/lib/types/prerequisites/single/RatedSumPrerequisite.d.ts +17 -19
  281. package/lib/types/prerequisites/single/RatedSumPrerequisite.js +19 -1
  282. package/lib/types/prerequisites/single/RulePrerequisite.d.ts +19 -9
  283. package/lib/types/prerequisites/single/RulePrerequisite.js +15 -1
  284. package/lib/types/prerequisites/single/SexPrerequisite.d.ts +19 -10
  285. package/lib/types/prerequisites/single/SexPrerequisite.js +15 -1
  286. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.d.ts +7 -8
  287. package/lib/types/prerequisites/single/SexualCharacteristicPrerequisite.js +17 -1
  288. package/lib/types/prerequisites/single/SocialStatusPrerequisite.d.ts +16 -13
  289. package/lib/types/prerequisites/single/SocialStatusPrerequisite.js +16 -1
  290. package/lib/types/prerequisites/single/StatePrerequisite.d.ts +16 -10
  291. package/lib/types/prerequisites/single/StatePrerequisite.js +15 -1
  292. package/lib/types/prerequisites/single/TextPrerequisite.d.ts +19 -49
  293. package/lib/types/prerequisites/single/TextPrerequisite.js +53 -1
  294. package/lib/types/prerequisites/single/TraditionPrerequisite.d.ts +37 -33
  295. package/lib/types/prerequisites/single/TraditionPrerequisite.js +42 -1
  296. package/lib/types/rule/CoreRule.d.ts +142 -310
  297. package/lib/types/rule/CoreRule.js +172 -13
  298. package/lib/types/rule/FocusRule.d.ts +54 -53
  299. package/lib/types/rule/FocusRule.js +37 -13
  300. package/lib/types/rule/FocusRule_Subject.d.ts +6 -29
  301. package/lib/types/rule/FocusRule_Subject.js +15 -13
  302. package/lib/types/rule/OptionalRule.d.ts +52 -41
  303. package/lib/types/rule/OptionalRule.js +28 -13
  304. package/lib/types/source/Publication.d.ts +50 -70
  305. package/lib/types/source/Publication.js +57 -13
  306. package/lib/types/source/_Erratum.d.ts +9 -23
  307. package/lib/types/source/_Erratum.js +19 -1
  308. package/lib/types/source/_PublicationRef.d.ts +161 -148
  309. package/lib/types/source/_PublicationRef.js +98 -1
  310. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +1034 -52
  311. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +36 -13
  312. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +917 -34
  313. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +33 -13
  314. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +917 -34
  315. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +33 -13
  316. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +917 -34
  317. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +33 -13
  318. package/lib/types/specialAbility/AncestorGlyph.d.ts +916 -38
  319. package/lib/types/specialAbility/AncestorGlyph.js +35 -13
  320. package/lib/types/specialAbility/BlessedTradition.d.ts +948 -147
  321. package/lib/types/specialAbility/BlessedTradition.js +131 -13
  322. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +980 -34
  323. package/lib/types/specialAbility/BrawlingSpecialAbility.js +32 -13
  324. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +918 -40
  325. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +33 -13
  326. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +1036 -45
  327. package/lib/types/specialAbility/CombatSpecialAbility.js +37 -13
  328. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +1035 -42
  329. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +37 -13
  330. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +980 -38
  331. package/lib/types/specialAbility/CommandSpecialAbility.js +32 -13
  332. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +915 -32
  333. package/lib/types/specialAbility/FamiliarSpecialAbility.js +30 -13
  334. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +915 -32
  335. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +30 -13
  336. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +917 -39
  337. package/lib/types/specialAbility/FatePointSpecialAbility.js +32 -13
  338. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +918 -44
  339. package/lib/types/specialAbility/GeneralSpecialAbility.js +33 -13
  340. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +915 -37
  341. package/lib/types/specialAbility/KarmaSpecialAbility.js +30 -13
  342. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +966 -36
  343. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +34 -13
  344. package/lib/types/specialAbility/LycantropicGift.d.ts +915 -32
  345. package/lib/types/specialAbility/LycantropicGift.js +30 -13
  346. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +966 -36
  347. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +34 -13
  348. package/lib/types/specialAbility/MagicalSign.d.ts +86 -39
  349. package/lib/types/specialAbility/MagicalSign.js +31 -13
  350. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +918 -43
  351. package/lib/types/specialAbility/MagicalSpecialAbility.js +33 -13
  352. package/lib/types/specialAbility/MagicalTradition.d.ts +938 -114
  353. package/lib/types/specialAbility/MagicalTradition.js +97 -13
  354. package/lib/types/specialAbility/PactGift.d.ts +992 -97
  355. package/lib/types/specialAbility/PactGift.js +118 -13
  356. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +917 -46
  357. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +41 -13
  358. package/lib/types/specialAbility/Sermon.d.ts +915 -32
  359. package/lib/types/specialAbility/Sermon.js +30 -13
  360. package/lib/types/specialAbility/SexSpecialAbility.d.ts +917 -34
  361. package/lib/types/specialAbility/SexSpecialAbility.js +32 -13
  362. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +915 -37
  363. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +30 -13
  364. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +964 -34
  365. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +32 -13
  366. package/lib/types/specialAbility/VampiricGift.d.ts +915 -37
  367. package/lib/types/specialAbility/VampiricGift.js +30 -13
  368. package/lib/types/specialAbility/Vision.d.ts +915 -32
  369. package/lib/types/specialAbility/Vision.js +30 -13
  370. package/lib/types/specialAbility/_Tradition.d.ts +5 -12
  371. package/lib/types/specialAbility/_Tradition.js +14 -1
  372. package/lib/types/specialAbility/sub/Language.d.ts +107 -117
  373. package/lib/types/specialAbility/sub/Language.js +87 -13
  374. package/lib/types/specialAbility/sub/Script.d.ts +61 -60
  375. package/lib/types/specialAbility/sub/Script.js +43 -13
  376. package/lib/types/specialAbility/sub/TradeSecret.d.ts +77 -48
  377. package/lib/types/specialAbility/sub/TradeSecret.js +36 -13
  378. package/lib/types/specialAbility/sub/_LanguageScript.d.ts +5 -11
  379. package/lib/types/specialAbility/sub/_LanguageScript.js +15 -1
  380. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +1135 -47
  381. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +36 -13
  382. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +1135 -47
  383. package/lib/types/traditionArtifacts/AttireEnchantment.js +36 -13
  384. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +1135 -47
  385. package/lib/types/traditionArtifacts/BowlEnchantment.js +36 -13
  386. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +1136 -61
  387. package/lib/types/traditionArtifacts/CauldronEnchantment.js +41 -13
  388. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +1135 -47
  389. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +36 -13
  390. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +1147 -71
  391. package/lib/types/traditionArtifacts/DaggerRitual.js +71 -13
  392. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +1135 -47
  393. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +36 -13
  394. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +1135 -47
  395. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +36 -13
  396. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +1135 -47
  397. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +36 -13
  398. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +1135 -47
  399. package/lib/types/traditionArtifacts/OrbEnchantment.js +36 -13
  400. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +1135 -47
  401. package/lib/types/traditionArtifacts/RingEnchantment.js +36 -13
  402. package/lib/types/traditionArtifacts/SickleRitual.d.ts +1135 -47
  403. package/lib/types/traditionArtifacts/SickleRitual.js +36 -13
  404. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +1135 -52
  405. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +36 -13
  406. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +1139 -57
  407. package/lib/types/traditionArtifacts/StaffEnchantment.js +41 -13
  408. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +1135 -47
  409. package/lib/types/traditionArtifacts/ToyEnchantment.js +36 -13
  410. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +1135 -47
  411. package/lib/types/traditionArtifacts/Trinkhornzauber.js +36 -13
  412. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +1084 -42
  413. package/lib/types/traditionArtifacts/WandEnchantment.js +35 -13
  414. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +1135 -47
  415. package/lib/types/traditionArtifacts/WeaponEnchantment.js +36 -13
  416. package/lib/types/traditionArtifacts/sub/AnimalShape.d.ts +8 -52
  417. package/lib/types/traditionArtifacts/sub/AnimalShape.js +23 -13
  418. package/lib/types/traditionArtifacts/sub/AnimalShapePath.d.ts +6 -28
  419. package/lib/types/traditionArtifacts/sub/AnimalShapePath.js +14 -13
  420. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.d.ts +8 -40
  421. package/lib/types/traditionArtifacts/sub/AnimalShapeSize.js +22 -13
  422. package/lib/types/traditionArtifacts/sub/Brew.d.ts +6 -28
  423. package/lib/types/traditionArtifacts/sub/Brew.js +14 -13
  424. package/package.json +19 -16
  425. package/schema/Advantage.schema.json +3 -3
  426. package/schema/AnimalDisease.schema.json +4 -4
  427. package/schema/Aspect.schema.json +1 -1
  428. package/schema/Blessing.schema.json +3 -3
  429. package/schema/Cantrip.schema.json +4 -4
  430. package/schema/Ceremony.schema.json +9 -61
  431. package/schema/CombatTechnique_Close.schema.json +2 -2
  432. package/schema/CombatTechnique_Ranged.schema.json +2 -2
  433. package/schema/Condition.schema.json +4 -16
  434. package/schema/Continent.schema.json +1 -1
  435. package/schema/Culture.schema.json +46 -50
  436. package/schema/Disadvantage.schema.json +3 -3
  437. package/schema/Disease.schema.json +2 -2
  438. package/schema/FamiliarsTrick.schema.json +45 -71
  439. package/schema/Lessons_Curriculum.schema.json +26 -36
  440. package/schema/LiturgicalChant.schema.json +9 -61
  441. package/schema/Locale.schema.json +1 -1
  442. package/schema/MetaCondition.schema.json +5 -17
  443. package/schema/Patron.schema.json +60 -71
  444. package/schema/PatronCategory.schema.json +1 -1
  445. package/schema/PersonalityTrait.schema.json +2 -2
  446. package/schema/Profession.schema.json +68 -62
  447. package/schema/Property.schema.json +1 -1
  448. package/schema/Race.schema.json +17 -17
  449. package/schema/Ritual.schema.json +8 -60
  450. package/schema/SexPractice.schema.json +1 -1
  451. package/schema/Skill.schema.json +7 -7
  452. package/schema/SkillModificationLevel.schema.json +3 -3
  453. package/schema/Spell.schema.json +8 -60
  454. package/schema/UI.schema.json +272 -0
  455. package/schema/_Activatable.schema.json +52 -60
  456. package/schema/_ActivatableSelectOptionCategory.schema.json +31 -35
  457. package/schema/_ActivatableSkill.schema.json +16 -0
  458. package/schema/_ActivatableSkillCastingTime.schema.json +5 -5
  459. package/schema/_ActivatableSkillCost.schema.json +7 -7
  460. package/schema/_ActivatableSkillEffect.schema.json +20 -51
  461. package/schema/_ActivatableSkillRange.schema.json +2 -2
  462. package/schema/_ActivatableSkillTargetCategory.schema.json +8 -8
  463. package/schema/_Blessed.schema.json +1 -1
  464. package/schema/_DiseasePoison.schema.json +31 -23
  465. package/schema/_Enhancements.schema.json +1 -1
  466. package/schema/_I18n.schema.json +1 -1
  467. package/schema/_Identifier.schema.json +31 -1
  468. package/schema/_IdentifierGroup.schema.json +4 -1
  469. package/schema/_Influence.schema.json +2 -2
  470. package/schema/_Prerequisite.schema.json +15 -15
  471. package/schema/_ResponsiveText.schema.json +6 -6
  472. package/schema/_SkillCheck.schema.json +3 -14
  473. package/schema/_Spellwork.schema.json +1 -1
  474. package/schema/equipment/EquipmentPackage.schema.json +1 -1
  475. package/schema/equipment/item/Armor.schema.json +5 -5
  476. package/schema/equipment/item/BandageOrRemedy.schema.json +2 -2
  477. package/schema/equipment/item/Book.schema.json +1 -1
  478. package/schema/equipment/item/CeremonialItem.schema.json +2 -2
  479. package/schema/equipment/item/Elixir.schema.json +5 -25
  480. package/schema/equipment/item/EquipmentOfBlessedOnes.schema.json +1 -1
  481. package/schema/equipment/item/IlluminationLightSource.schema.json +4 -8
  482. package/schema/equipment/item/Jewelry.schema.json +1 -1
  483. package/schema/equipment/item/LuxuryGood.schema.json +2 -2
  484. package/schema/equipment/item/MusicalInstrument.schema.json +1 -1
  485. package/schema/equipment/item/Poison.schema.json +25 -17
  486. package/schema/equipment/item/ToolOfTheTrade.schema.json +1 -1
  487. package/schema/equipment/item/Weapon.schema.json +11 -11
  488. package/schema/equipment/item/_Item.schema.json +4 -4
  489. package/schema/equipment/item/_MeleeWeapon.schema.json +3 -7
  490. package/schema/equipment/item/_RangedWeapon.schema.json +5 -5
  491. package/schema/equipment/item/_Weapon.schema.json +2 -2
  492. package/schema/equipment/item/sub/ArmorType.schema.json +1 -1
  493. package/schema/magicalActions/AnimistPower.schema.json +10 -36
  494. package/schema/magicalActions/Curse.schema.json +5 -31
  495. package/schema/magicalActions/DominationRitual.schema.json +6 -32
  496. package/schema/magicalActions/ElvenMagicalSong.schema.json +4 -17
  497. package/schema/magicalActions/GeodeRitual.schema.json +7 -59
  498. package/schema/magicalActions/JesterTrick.schema.json +7 -59
  499. package/schema/magicalActions/MagicalDance.schema.json +7 -33
  500. package/schema/magicalActions/MagicalMelody.schema.json +7 -33
  501. package/schema/magicalActions/MagicalRune.schema.json +53 -146
  502. package/schema/magicalActions/ZibiljaRitual.schema.json +7 -59
  503. package/schema/magicalActions/_MusicTradition.schema.json +1 -1
  504. package/schema/magicalActions/_SkillReference.schema.json +2 -24
  505. package/schema/prerequisites/ConditionalPrerequisites.schema.json +1 -1
  506. package/schema/prerequisites/DisplayOption.schema.json +1 -1
  507. package/schema/prerequisites/single/ActivatablePrerequisite.schema.json +1 -1
  508. package/schema/prerequisites/single/EnhancementPrerequisite.schema.json +2 -2
  509. package/schema/prerequisites/single/PublicationPrerequisite.schema.json +1 -2
  510. package/schema/prerequisites/single/RacePrerequisite.schema.json +1 -1
  511. package/schema/prerequisites/single/RatedMinimumNumberPrerequisite.schema.json +2 -2
  512. package/schema/prerequisites/single/TextPrerequisite.schema.json +4 -4
  513. package/schema/prerequisites/single/TraditionPrerequisite.schema.json +4 -4
  514. package/schema/rule/CoreRule.schema.json +5 -5
  515. package/schema/rule/FocusRule.schema.json +1 -1
  516. package/schema/rule/OptionalRule.schema.json +1 -1
  517. package/schema/source/Publication.schema.json +2 -2
  518. package/schema/source/_PublicationRef.schema.json +9 -9
  519. package/schema/specialAbility/AdvancedCombatSpecialAbility.schema.json +2 -2
  520. package/schema/specialAbility/BlessedTradition.schema.json +74 -52
  521. package/schema/specialAbility/CeremonialItemSpecialAbility.schema.json +2 -2
  522. package/schema/specialAbility/CombatStyleSpecialAbility.schema.json +155 -504
  523. package/schema/specialAbility/CommandSpecialAbility.schema.json +23 -20
  524. package/schema/specialAbility/FatePointSpecialAbility.schema.json +1 -1
  525. package/schema/specialAbility/GeneralSpecialAbility.schema.json +1 -1
  526. package/schema/specialAbility/KarmaSpecialAbility.schema.json +1 -1
  527. package/schema/specialAbility/LiturgicalStyleSpecialAbility.schema.json +155 -504
  528. package/schema/specialAbility/MagicStyleSpecialAbility.schema.json +155 -504
  529. package/schema/specialAbility/MagicalSign.schema.json +2 -2
  530. package/schema/specialAbility/MagicalSpecialAbility.schema.json +1 -1
  531. package/schema/specialAbility/MagicalTradition.schema.json +8 -8
  532. package/schema/specialAbility/PactGift.schema.json +4 -4
  533. package/schema/specialAbility/SikaryanDrainSpecialAbility.schema.json +1 -1
  534. package/schema/specialAbility/SkillStyleSpecialAbility.schema.json +155 -504
  535. package/schema/specialAbility/VampiricGift.schema.json +1 -1
  536. package/schema/specialAbility/_Tradition.schema.json +1 -1
  537. package/schema/specialAbility/sub/Language.schema.json +4 -4
  538. package/schema/traditionArtifacts/ArcaneOrbEnchantment.schema.json +1 -1
  539. package/schema/traditionArtifacts/AttireEnchantment.schema.json +1 -1
  540. package/schema/traditionArtifacts/BowlEnchantment.schema.json +1 -1
  541. package/schema/traditionArtifacts/CauldronEnchantment.schema.json +2 -2
  542. package/schema/traditionArtifacts/ChronicleEnchantment.schema.json +1 -1
  543. package/schema/traditionArtifacts/DaggerRitual.schema.json +14 -18
  544. package/schema/traditionArtifacts/FoolsHatEnchantment.schema.json +1 -1
  545. package/schema/traditionArtifacts/InstrumentEnchantment.schema.json +1 -1
  546. package/schema/traditionArtifacts/Krallenkettenzauber.schema.json +1 -1
  547. package/schema/traditionArtifacts/OrbEnchantment.schema.json +1 -1
  548. package/schema/traditionArtifacts/RingEnchantment.schema.json +1 -1
  549. package/schema/traditionArtifacts/SickleRitual.schema.json +1 -1
  550. package/schema/traditionArtifacts/SpellSwordEnchantment.schema.json +2 -2
  551. package/schema/traditionArtifacts/StaffEnchantment.schema.json +2 -2
  552. package/schema/traditionArtifacts/ToyEnchantment.schema.json +1 -1
  553. package/schema/traditionArtifacts/Trinkhornzauber.schema.json +1 -1
  554. package/schema/traditionArtifacts/WandEnchantment.schema.json +1 -1
  555. package/schema/traditionArtifacts/WeaponEnchantment.schema.json +1 -1
  556. package/.prettierrc.yml +0 -3
  557. package/lib/cache/activatableSelectOptions.d.ts +0 -80
  558. package/lib/cache/activatableSelectOptions.js +0 -935
  559. package/lib/cache/ancestorBloodAdvantages.d.ts +0 -5
  560. package/lib/cache/ancestorBloodAdvantages.js +0 -18
  561. package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.d.ts +0 -20
  562. package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.js +0 -164
  563. package/lib/cache/newApplicationsAndUses.d.ts +0 -20
  564. package/lib/cache/newApplicationsAndUses.js +0 -126
  565. package/lib/cacheConfig.d.ts +0 -4
  566. package/lib/cacheConfig.js +0 -1
  567. package/lib/config/build.d.ts +0 -6
  568. package/lib/config/build.js +0 -8
  569. package/lib/config/cache.d.ts +0 -16
  570. package/lib/config/cache.js +0 -10
  571. package/lib/config/types.d.ts +0 -462
  572. package/lib/config/types.js +0 -306
  573. package/lib/errors.d.ts +0 -20
  574. package/lib/errors.js +0 -33
  575. package/lib/helpers/array.d.ts +0 -14
  576. package/lib/helpers/array.js +0 -15
  577. package/lib/helpers/i18n.d.ts +0 -1
  578. package/lib/helpers/i18n.js +0 -1
  579. package/lib/helpers/io.d.ts +0 -29
  580. package/lib/helpers/io.js +0 -51
  581. package/lib/helpers/objectPath.d.ts +0 -13
  582. package/lib/helpers/objectPath.js +0 -3
  583. package/lib/helpers/pair.d.ts +0 -20
  584. package/lib/helpers/pair.js +0 -20
  585. package/lib/helpers/result.d.ts +0 -57
  586. package/lib/helpers/result.js +0 -45
  587. package/lib/rendering/UI.d.ts +0 -14
  588. package/lib/rendering/UI.js +0 -28
  589. package/lib/typeConfig.d.ts +0 -10
  590. package/lib/typeConfig.js +0 -1
  591. package/lib/types/CombatTechnique_Close.d.ts +0 -73
  592. package/lib/types/CombatTechnique_Close.js +0 -14
  593. package/lib/types/CombatTechnique_Ranged.d.ts +0 -66
  594. package/lib/types/CombatTechnique_Ranged.js +0 -14
  595. package/lib/types/Kirchenpraegung.d.ts +0 -10
  596. package/lib/types/Kirchenpraegung.js +0 -14
  597. package/lib/types/Lessons_Curriculum.d.ts +0 -236
  598. package/lib/types/Lessons_Curriculum.js +0 -14
  599. package/lib/types/Lessons_Guideline.d.ts +0 -34
  600. package/lib/types/Lessons_Guideline.js +0 -14
  601. package/lib/types/UI.d.ts +0 -1216
  602. package/lib/types/UI.js +0 -14
  603. package/lib/types/_LocaleMap.d.ts +0 -10
  604. package/lib/types/_LocaleMap.js +0 -1
  605. package/lib/types/_NonEmptyString.d.ts +0 -9
  606. package/lib/types/_NonEmptyString.js +0 -1
  607. package/lib/types/_SimpleReferences.d.ts +0 -134
  608. package/lib/types/_SimpleReferences.js +0 -1
  609. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.d.ts +0 -7
  610. package/lib/types/equipment/item/IlluminationRefillsOrSupplies.js +0 -14
  611. package/lib/types/equipment/item/Stationary.d.ts +0 -7
  612. package/lib/types/equipment/item/Stationary.js +0 -14
  613. package/lib/types/magicalActions/_SkillReference.d.ts +0 -11
  614. package/lib/types/magicalActions/_SkillReference.js +0 -1
  615. package/lib/validation/builders/integrity.d.ts +0 -56
  616. package/lib/validation/builders/integrity.js +0 -44
  617. package/lib/validation/builders/naming.d.ts +0 -15
  618. package/lib/validation/builders/naming.js +0 -17
  619. package/lib/validation/builders/schema.d.ts +0 -31
  620. package/lib/validation/builders/schema.js +0 -32
  621. package/lib/validation/filename.d.ts +0 -9
  622. package/lib/validation/filename.js +0 -10
  623. package/lib/validation/raw.d.ts +0 -8
  624. package/lib/validation/raw.js +0 -54
  625. package/lib/validation/schema.d.ts +0 -6
  626. package/lib/validation/schema.js +0 -32
@@ -1,14 +1,1317 @@
1
- /**
2
- * @main Locale
3
- */
4
- import { Result } from "../helpers/result.js";
5
- import { validateLanguageFileName } from "../validation/builders/naming.js";
6
- import { createSchemaValidator } from "../validation/builders/schema.js";
7
- import { getFilenameAsStringId } from "../validation/filename.js";
8
- export const config = {
1
+ import { Boolean, Entity, NestedEntityMap, Object, Required, String, } from "tsondb/schema/def";
2
+ export const Locale = Entity(import.meta.url, {
9
3
  name: "Locale",
10
- id: getFilenameAsStringId,
11
- integrityValidator: () => Result.ok(undefined),
12
- schemaValidator: createSchemaValidator(import.meta.url, { ignoreFileNamePattern: true }),
13
- fileNameValidator: validateLanguageFileName,
14
- };
4
+ namePlural: "Locales",
5
+ comment: "A supported locale. The locale is used to identify the language and region of the content.",
6
+ type: () => Object({
7
+ name: Required({
8
+ comment: "Name of the language in its language.",
9
+ type: String({ minLength: 1 }),
10
+ }),
11
+ region: Required({
12
+ comment: "Region in which the language is spoken in its language.",
13
+ type: String({ minLength: 1 }),
14
+ }),
15
+ is_missing_implementation: Required({
16
+ comment: "The language is not (fully) implemented and thus needs to be excluded from stable releases.",
17
+ type: Boolean(),
18
+ }),
19
+ // translations: Optional({
20
+ // comment: "The translations strings for the locale.",
21
+ // // prettier-ignore
22
+ // type: Object({
23
+ // // Menu
24
+ // "About {0}": Required({ type: String({ minLength: 1 }) }),
25
+ // "Preferences …": Required({ type: String({ minLength: 1 }) }),
26
+ // "Services": Required({ type: String({ minLength: 1 }) }),
27
+ // "Hide {0}": Required({ type: String({ minLength: 1 }) }),
28
+ // "Hide Others": Required({ type: String({ minLength: 1 }) }),
29
+ // "Show All": Required({ type: String({ minLength: 1 }) }),
30
+ // "Quit {0}": Required({ type: String({ minLength: 1 }) }),
31
+ // "File": Required({ type: IncludeIdentifier(VaryBySystem) }),
32
+ // "Close": Required({ type: String({ minLength: 1 }) }),
33
+ // "Quit": Required({ type: String({ minLength: 1 }) }),
34
+ // "Edit": Required({ type: String({ minLength: 1 }) }),
35
+ // "Undo": Required({ type: String({ minLength: 1 }) }),
36
+ // "Redo": Required({ type: String({ minLength: 1 }) }),
37
+ // "Cut": Required({ type: String({ minLength: 1 }) }),
38
+ // "Copy": Required({ type: String({ minLength: 1 }) }),
39
+ // "Paste": Required({ type: String({ minLength: 1 }) }),
40
+ // "Delete": Required({ type: String({ minLength: 1 }) }),
41
+ // "Select All": Required({ type: String({ minLength: 1 }) }),
42
+ // "View": Required({ type: String({ minLength: 1 }) }),
43
+ // "Toggle Full Screen": Required({ type: String({ minLength: 1 }) }),
44
+ // "Window": Required({ type: String({ minLength: 1 }) }),
45
+ // "Minimize": Required({ type: String({ minLength: 1 }) }),
46
+ // "Zoom": Required({ type: String({ minLength: 1 }) }),
47
+ // "Main Window": Required({ type: String({ minLength: 1 }) }),
48
+ // "Bring All to Front": Required({ type: String({ minLength: 1 }) }),
49
+ // // Settings Window
50
+ // "Settings": Required({ type: String({ minLength: 1 }) }),
51
+ // "Main Language": Required({ type: String({ minLength: 1 }) }),
52
+ // "System Language": Required({ type: String({ minLength: 1 }) }),
53
+ // "Fallback Language": Required({ type: String({ minLength: 1 }) }),
54
+ // "No fallback language": Required({ type: String({ minLength: 1 }) }),
55
+ // "Appearance": Required({ type: String({ minLength: 1 }) }),
56
+ // "Auto": Required({ type: String({ minLength: 1 }) }),
57
+ // "Light": Required({ type: String({ minLength: 1 }) }),
58
+ // "Dark": Required({ type: String({ minLength: 1 }) }),
59
+ // "Edit characters after creation": Required({ type: String({ minLength: 1 }) }),
60
+ // "Show animations": Required({ type: String({ minLength: 1 }) }),
61
+ // "Check for updates": Required({ type: String({ minLength: 1 }) }),
62
+ // // Updater Window
63
+ // "Updater": Required({ type: String({ minLength: 1 }) }),
64
+ // "Checking for updates …": Required({ type: String({ minLength: 1 }) }),
65
+ // "New version available": Required({ type: String({ minLength: 1 }) }),
66
+ // /**
67
+ // * - `0`: Version number
68
+ // */
69
+ // "Version {0} is available! Do you wish to download and install?": Required({ type: String({ minLength: 1 }) }),
70
+ // "Download": Required({ type: String({ minLength: 1 }) }),
71
+ // "Download Later": Required({ type: String({ minLength: 1 }) }),
72
+ // "Downloading update …": Required({ type: String({ minLength: 1 }) }),
73
+ // "Update downloaded": Required({ type: String({ minLength: 1 }) }),
74
+ // "Quit and Install": Required({ type: String({ minLength: 1 }) }),
75
+ // "Install Later": Required({ type: String({ minLength: 1 }) }),
76
+ // "No update available": Required({ type: String({ minLength: 1 }) }),
77
+ // "You're running the latest version available.": Required({ type: String({ minLength: 1 }) }),
78
+ // // Main Window
79
+ // "Characters": Required({ type: String({ minLength: 1 }) }),
80
+ // "Groups": Required({ type: String({ minLength: 1 }) }),
81
+ // "Library": Required({ type: String({ minLength: 1 }) }),
82
+ // "FAQ": Required({ type: String({ minLength: 1 }) }),
83
+ // "About": Required({ type: String({ minLength: 1 }) }),
84
+ // "Imprint": Required({ type: String({ minLength: 1 }) }),
85
+ // "Third-Party Licenses": Required({ type: String({ minLength: 1 }) }),
86
+ // "Last Changes": Required({ type: String({ minLength: 1 }) }),
87
+ // "Profile": Required({ type: String({ minLength: 1 }) }),
88
+ // "Overview": Required({ type: String({ minLength: 1 }) }),
89
+ // "Personal Data": Required({ type: String({ minLength: 1 }) }),
90
+ // "Character Sheet": Required({ type: String({ minLength: 1 }) }),
91
+ // "Pact": Required({ type: String({ minLength: 1 }) }),
92
+ // "Rules": Required({ type: String({ minLength: 1 }) }),
93
+ // "Race, Culture & Profession": Required({ type: String({ minLength: 1 }) }),
94
+ // "Race": Required({ type: String({ minLength: 1 }) }),
95
+ // "Culture": Required({ type: String({ minLength: 1 }) }),
96
+ // "Profession": Required({ type: String({ minLength: 1 }) }),
97
+ // "Attributes": Required({ type: String({ minLength: 1 }) }),
98
+ // "Advantages & Disadvantages": Required({ type: String({ minLength: 1 }) }),
99
+ // "Advantages": Required({ type: String({ minLength: 1 }) }),
100
+ // "Disadvantages": Required({ type: String({ minLength: 1 }) }),
101
+ // "Abilities": Required({ type: String({ minLength: 1 }) }),
102
+ // "Skills": Required({ type: String({ minLength: 1 }) }),
103
+ // "Combat Techniques": Required({ type: String({ minLength: 1 }) }),
104
+ // "Special Abilities": Required({ type: String({ minLength: 1 }) }),
105
+ // "Spells": Required({ type: String({ minLength: 1 }) }),
106
+ // "Liturgical Chants": Required({ type: String({ minLength: 1 }) }),
107
+ // "Belongings": Required({ type: String({ minLength: 1 }) }),
108
+ // "Equipment": Required({ type: String({ minLength: 1 }) }),
109
+ // "Hit Zone Armor": Required({ type: String({ minLength: 1 }) }),
110
+ // "Pets": Required({ type: String({ minLength: 1 }) }),
111
+ // /**
112
+ // * - `0`: AP left
113
+ // */
114
+ // "{0} AP Remaining": Required({ type: String({ minLength: 1 }) }),
115
+ // "Save": Required({ type: String({ minLength: 1 }) }),
116
+ // "Show Settings": Required({ type: String({ minLength: 1 }) }),
117
+ // "Toggle DevTools": Required({ type: String({ minLength: 1 }) }),
118
+ // // Adventure Points
119
+ // "Adventure Points": Required({ type: String({ minLength: 1 }) }),
120
+ // "AP": Required({ type: String({ minLength: 1 }) }),
121
+ // /**
122
+ // * - `0`: AP value
123
+ // */
124
+ // "{0} Adventure Points": Required({ type: IncludeIdentifier(PluralizationCategories) }),
125
+ // /**
126
+ // * - `0`: AP value
127
+ // */
128
+ // "{0} AP": Required({ type: String({ minLength: 1 }) }),
129
+ // /**
130
+ // * - `0`: AP Total
131
+ // */
132
+ // "{0} Total AP": Required({ type: String({ minLength: 1 }) }),
133
+ // /**
134
+ // * - `0`: AP Spent
135
+ // */
136
+ // "{0} AP Spent": Required({ type: String({ minLength: 1 }) }),
137
+ // /**
138
+ // * - `0`: Current AP spent on advantages
139
+ // * - `1`: Maximum possible AP spent on advantages
140
+ // */
141
+ // "{0}/{1} AP spent on advantages": Required({ type: String({ minLength: 1 }) }),
142
+ // /**
143
+ // * - `0`: Current AP spent on magic advantages
144
+ // * - `1`: Maximum possible AP spent on magic advantages
145
+ // */
146
+ // "Thereof {0}/{1} on magic advantages": Required({ type: String({ minLength: 1 }) }),
147
+ // /**
148
+ // * - `0`: Current AP spent on blessed advantages
149
+ // * - `1`: Maximum possible AP spent on blessed advantages
150
+ // */
151
+ // "Thereof {0}/{1} on blessed advantages": Required({ type: String({ minLength: 1 }) }),
152
+ // /**
153
+ // * - `0`: Current AP spent on disadvantages
154
+ // * - `1`: Maximum possible AP spent on disadvantages
155
+ // */
156
+ // "{0}/{1} AP received from disadvantages": Required({ type: String({ minLength: 1 }) }),
157
+ // /**
158
+ // * - `0`: Current AP spent on magic disadvantages
159
+ // * - `1`: Maximum possible AP spent on magic disadvantages
160
+ // */
161
+ // "Thereof {0}/{1} from magic disadvantages": Required({ type: String({ minLength: 1 }) }),
162
+ // /**
163
+ // * - `0`: Current AP spent on blessed disadvantages
164
+ // * - `1`: Maximum possible AP spent on blessed disadvantages
165
+ // */
166
+ // "Thereof {0}/{1} from blessed disadvantages": Required({ type: String({ minLength: 1 }) }),
167
+ // /**
168
+ // * - `0`: AP spent on race
169
+ // */
170
+ // "{0} AP spent on race": Required({ type: String({ minLength: 1 }) }),
171
+ // /**
172
+ // * - `0`: AP spent on profession
173
+ // */
174
+ // "{0} AP spent on profession": Required({ type: String({ minLength: 1 }) }),
175
+ // /**
176
+ // * - `0`: AP spent on attributes
177
+ // */
178
+ // "{0} AP spent on attributes": Required({ type: String({ minLength: 1 }) }),
179
+ // /**
180
+ // * - `0`: AP spent on skills
181
+ // */
182
+ // "{0} AP spent on skills": Required({ type: String({ minLength: 1 }) }),
183
+ // /**
184
+ // * - `0`: AP spent on combat techniques
185
+ // */
186
+ // "{0} AP spent on combat techniques": Required({ type: String({ minLength: 1 }) }),
187
+ // /**
188
+ // * - `0`: AP spent on spells
189
+ // */
190
+ // "{0} AP spent on spells": Required({ type: String({ minLength: 1 }) }),
191
+ // /**
192
+ // * - `0`: AP spent on cantrips
193
+ // */
194
+ // "{0} AP spent on cantrips": Required({ type: String({ minLength: 1 }) }),
195
+ // /**
196
+ // * - `0`: AP spent on liturgical chants
197
+ // */
198
+ // "{0} AP spent on liturgical chants": Required({ type: String({ minLength: 1 }) }),
199
+ // /**
200
+ // * - `0`: AP spent on blessings
201
+ // */
202
+ // "{0} AP spent on blessings": Required({ type: String({ minLength: 1 }) }),
203
+ // /**
204
+ // * - `0`: AP spent on special abilities
205
+ // */
206
+ // "{0} AP spent on special abilities": Required({ type: String({ minLength: 1 }) }),
207
+ // /**
208
+ // * - `0`: AP spent on energies (LP/AE/KP)
209
+ // */
210
+ // "{0} AP spent on improving/buying back LP/AE/KP": Required({ type: String({ minLength: 1 }) }),
211
+ // "header.dialogs.herosaved": Required({ type: String({ minLength: 1 }) }),
212
+ // "header.dialogs.allsaved": Required({ type: String({ minLength: 1 }) }),
213
+ // "header.dialogs.everythingelsesaved": Required({ type: String({ minLength: 1 }) }),
214
+ // "header.dialogs.saveconfigerror.title": Required({ type: String({ minLength: 1 }) }),
215
+ // "header.dialogs.saveconfigerror.message": Required({ type: String({ minLength: 1 }) }),
216
+ // "header.dialogs.saveheroeserror.title": Required({ type: String({ minLength: 1 }) }),
217
+ // "header.dialogs.saveheroeserror.message": Required({ type: String({ minLength: 1 }) }),
218
+ // /**
219
+ // * - `0`: Weight in kg
220
+ // */
221
+ // "general.weightvalue": Required({ type: String({ minLength: 1 }) }),
222
+ // /**
223
+ // * - `0`: Price in silverthalers
224
+ // */
225
+ // "general.pricevalue": Required({ type: String({ minLength: 1 }) }),
226
+ // /**
227
+ // * - `0`: Length in cm
228
+ // */
229
+ // "general.lengthvalue": Required({ type: String({ minLength: 1 }) }),
230
+ // /**
231
+ // * As in *2D6*.
232
+ // */
233
+ // "D": Required({ type: String({ minLength: 1 }) }),
234
+ // "general.none": Required({ type: String({ minLength: 1 }) }),
235
+ // "general.or": Required({ type: String({ minLength: 1 }) }),
236
+ // "general.and": Required({ type: String({ minLength: 1 }) }),
237
+ // "general.error": Required({ type: String({ minLength: 1 }) }),
238
+ // "general.errorcode": Required({ type: String({ minLength: 1 }) }),
239
+ // "general.emptylistplaceholder": Required({ type: String({ minLength: 1 }) }),
240
+ // "general.emptylistnoresultsplaceholder": Required({ type: String({ minLength: 1 }) }),
241
+ // "No Results": Required({ type: String({ minLength: 1 }) }),
242
+ // "Search": Required({ type: String({ minLength: 1 }) }),
243
+ // "Sort By": Required({ type: String({ minLength: 1 }) }),
244
+ // "Name": Required({ type: String({ minLength: 1 }) }),
245
+ // "Date Modified": Required({ type: String({ minLength: 1 }) }),
246
+ // "Group": Required({ type: String({ minLength: 1 }) }),
247
+ // "Property": Required({ type: String({ minLength: 1 }) }),
248
+ // "general.filters.sort.bylocation": Required({ type: String({ minLength: 1 }) }),
249
+ // "general.filters.sort.bycost": Required({ type: String({ minLength: 1 }) }),
250
+ // "general.filters.sort.byweight": Required({ type: String({ minLength: 1 }) }),
251
+ // "general.filters.showactivatedentries": Required({ type: String({ minLength: 1 }) }),
252
+ // "Done": Required({ type: String({ minLength: 1 }) }),
253
+ // "OK": Required({ type: String({ minLength: 1 }) }),
254
+ // "Cancel": Required({ type: String({ minLength: 1 }) }),
255
+ // "Create": Required({ type: String({ minLength: 1 }) }),
256
+ // "Apply": Required({ type: String({ minLength: 1 }) }),
257
+ // "Add": Required({ type: String({ minLength: 1 }) }),
258
+ // "Not enough AP": Required({ type: String({ minLength: 1 }) }),
259
+ // "You are missing {0} Adventure Points to do this.": Required({ type: IncludeIdentifier(PluralizationCategories) }),
260
+ // "Exceeding Adventure Points limit for advantages": Required({ type: String({ minLength: 1 }) }),
261
+ // "You cannot spend more than {0} AP on advantages. You would exceed this limit by {1} AP.": Required({ type: String({ minLength: 1 }) }),
262
+ // "Exceeding Adventure Points limit for magical advantages": Required({ type: String({ minLength: 1 }) }),
263
+ // "You cannot spend more than {0} AP on magical advantages. You would exceed this limit by {1} AP.": Required({ type: String({ minLength: 1 }) }),
264
+ // "Exceeding Adventure Points limit for blessed advantages": Required({ type: String({ minLength: 1 }) }),
265
+ // "You cannot spend more than {0} AP on blessed advantages. You would exceed this limit by {1} AP.": Required({ type: String({ minLength: 1 }) }),
266
+ // "Exceeding Adventure Points limit for disadvantages": Required({ type: String({ minLength: 1 }) }),
267
+ // "You cannot receive more than {0} AP from disadvantages. You would exceed this limit by {1} AP.": Required({ type: String({ minLength: 1 }) }),
268
+ // "Exceeding Adventure Points limit for magical disadvantages": Required({ type: String({ minLength: 1 }) }),
269
+ // "You cannot receive more than {0} AP from magical disadvantages. You would exceed this limit by {1} AP.": Required({ type: String({ minLength: 1 }) }),
270
+ // "Exceeding Adventure Points limit for blessed disadvantages": Required({ type: String({ minLength: 1 }) }),
271
+ // "You cannot receive more than {0} AP from blessed disadvantages. You would exceed this limit by {1} AP.": Required({ type: String({ minLength: 1 }) }),
272
+ // "heroes.filters.origin.allheroes": Required({ type: String({ minLength: 1 }) }),
273
+ // "heroes.filters.origin.ownheroes": Required({ type: String({ minLength: 1 }) }),
274
+ // "heroes.filters.origin.sharedheroes": Required({ type: String({ minLength: 1 }) }),
275
+ // "Import": Required({ type: String({ minLength: 1 }) }),
276
+ // "New Character": Required({ type: String({ minLength: 1 }) }),
277
+ // "Duplicate Character": Required({ type: String({ minLength: 1 }) }),
278
+ // "Export Character as OPTLC file": Required({ type: String({ minLength: 1 }) }),
279
+ // "Delete Character": Required({ type: String({ minLength: 1 }) }),
280
+ // "Open Character": Required({ type: String({ minLength: 1 }) }),
281
+ // "heroes.saveherobtn": Required({ type: String({ minLength: 1 }) }),
282
+ // "heroes.unsavedhero.name": Required({ type: String({ minLength: 1 }) }),
283
+ // "heroes.list.adventurepoints": Required({ type: String({ minLength: 1 }) }),
284
+ // "heroes.dialogs.herosaved": Required({ type: String({ minLength: 1 }) }),
285
+ // "heroes.dialogs.importheroerror.title": Required({ type: String({ minLength: 1 }) }),
286
+ // "heroes.dialogs.importheroerror.message": Required({ type: String({ minLength: 1 }) }),
287
+ // "heroes.dialogs.heroexportsavelocation.title": Required({ type: String({ minLength: 1 }) }),
288
+ // "heroes.dialogs.herojsonsaveerror.title": Required({ type: String({ minLength: 1 }) }),
289
+ // "heroes.dialogs.herojsonsaveerror.message": Required({ type: String({ minLength: 1 }) }),
290
+ // "heroes.dialogs.unsavedactions.title": Required({ type: String({ minLength: 1 }) }),
291
+ // "heroes.dialogs.unsavedactions.message": Required({ type: String({ minLength: 1 }) }),
292
+ // "heroes.dialogs.unsavedactions.quit": Required({ type: String({ minLength: 1 }) }),
293
+ // "heroes.dialogs.unsavedactions.saveandquit": Required({ type: String({ minLength: 1 }) }),
294
+ // /**
295
+ // * - `0`: Name of the hero to delete
296
+ // */
297
+ // "heroes.dialogs.deletehero.title": Required({ type: String({ minLength: 1 }) }),
298
+ // "heroes.dialogs.deletehero.message": Required({ type: String({ minLength: 1 }) }),
299
+ // "heroes.dialogs.herocreation.title": Required({ type: String({ minLength: 1 }) }),
300
+ // "heroes.dialogs.herocreation.nameofhero": Required({ type: String({ minLength: 1 }) }),
301
+ // "heroes.dialogs.herocreation.sex.placeholder": Required({ type: String({ minLength: 1 }) }),
302
+ // "heroes.dialogs.herocreation.sex.male": Required({ type: String({ minLength: 1 }) }),
303
+ // "heroes.dialogs.herocreation.sex.female": Required({ type: String({ minLength: 1 }) }),
304
+ // "heroes.dialogs.herocreation.experiencelevel.placeholder": Required({ type: String({ minLength: 1 }) }),
305
+ // "heroes.dialogs.herocreation.startbtn": Required({ type: String({ minLength: 1 }) }),
306
+ // "wiki.chooseacategory": Required({ type: String({ minLength: 1 }) }),
307
+ // "wiki.chooseacategorytodisplayalist": Required({ type: String({ minLength: 1 }) }),
308
+ // "wiki.filters.races": Required({ type: String({ minLength: 1 }) }),
309
+ // "wiki.filters.cultures": Required({ type: String({ minLength: 1 }) }),
310
+ // "wiki.filters.professions": Required({ type: String({ minLength: 1 }) }),
311
+ // "wiki.filters.advantages": Required({ type: String({ minLength: 1 }) }),
312
+ // "wiki.filters.disadvantages": Required({ type: String({ minLength: 1 }) }),
313
+ // "wiki.filters.skills": Required({ type: String({ minLength: 1 }) }),
314
+ // "wiki.filters.skills.all": Required({ type: String({ minLength: 1 }) }),
315
+ // "wiki.filters.combattechniques": Required({ type: String({ minLength: 1 }) }),
316
+ // "wiki.filters.combattechniques.all": Required({ type: String({ minLength: 1 }) }),
317
+ // "wiki.filters.magic": Required({ type: String({ minLength: 1 }) }),
318
+ // "wiki.filters.magic.all": Required({ type: String({ minLength: 1 }) }),
319
+ // "wiki.filters.liturgicalchants": Required({ type: String({ minLength: 1 }) }),
320
+ // "wiki.filters.liturgicalchants.all": Required({ type: String({ minLength: 1 }) }),
321
+ // "wiki.filters.specialabilities": Required({ type: String({ minLength: 1 }) }),
322
+ // "wiki.filters.specialabilities.all": Required({ type: String({ minLength: 1 }) }),
323
+ // "wiki.filters.itemtemplates": Required({ type: String({ minLength: 1 }) }),
324
+ // "wiki.filters.itemtemplates.all": Required({ type: String({ minLength: 1 }) }),
325
+ // "Edit Name": Required({ type: String({ minLength: 1 }) }),
326
+ // "Change Name": Required({ type: String({ minLength: 1 }) }),
327
+ // "Edit Profession Name": Required({ type: String({ minLength: 1 }) }),
328
+ // "Change Profession Name": Required({ type: String({ minLength: 1 }) }),
329
+ // "Add AP": Required({ type: String({ minLength: 1 }) }),
330
+ // "Add Adventure Points": Required({ type: String({ minLength: 1 }) }),
331
+ // "How many Adventure Points do you want to add?": Required({ type: String({ minLength: 1 }) }),
332
+ // "Finish Character Creation": Required({ type: String({ minLength: 1 }) }),
333
+ // "Select New Avatar": Required({ type: String({ minLength: 1 }) }),
334
+ // "Delete Avatar": Required({ type: String({ minLength: 1 }) }),
335
+ // "profile.dialogs.changeheroavatar.title": Required({ type: String({ minLength: 1 }) }),
336
+ // "profile.dialogs.changeheroavatar.selectfilebtn": Required({ type: String({ minLength: 1 }) }),
337
+ // "profile.dialogs.changeheroavatar.imagefiletype": Required({ type: String({ minLength: 1 }) }),
338
+ // "profile.dialogs.changeheroavatar.invalidfilewarning": Required({ type: String({ minLength: 1 }) }),
339
+ // // Personal Data
340
+ // "Male": Required({ type: String({ minLength: 1 }) }),
341
+ // "Female": Required({ type: String({ minLength: 1 }) }),
342
+ // "Bal’Thani": Required({ type: String({ minLength: 1 }) }),
343
+ // "Tsajana": Required({ type: String({ minLength: 1 }) }),
344
+ // "Family": Required({ type: String({ minLength: 1 }) }),
345
+ // "Place of Birth": Required({ type: String({ minLength: 1 }) }),
346
+ // "Date of Birth": Required({ type: String({ minLength: 1 }) }),
347
+ // "Age": Required({ type: String({ minLength: 1 }) }),
348
+ // "Hair Color": Required({ type: String({ minLength: 1 }) }),
349
+ // "Eye Color": Required({ type: String({ minLength: 1 }) }),
350
+ // "Size": Required({ type: String({ minLength: 1 }) }),
351
+ // "Weight": Required({ type: String({ minLength: 1 }) }),
352
+ // "Title": Required({ type: String({ minLength: 1 }) }),
353
+ // "Social Status": Required({ type: String({ minLength: 1 }) }),
354
+ // "Characteristics": Required({ type: String({ minLength: 1 }) }),
355
+ // "Other Information": Required({ type: String({ minLength: 1 }) }),
356
+ // "Reroll Eye Color": Required({ type: String({ minLength: 1 }) }),
357
+ // "Reroll Hair Color": Required({ type: String({ minLength: 1 }) }),
358
+ // "Reroll Size": Required({ type: String({ minLength: 1 }) }),
359
+ // "Reroll Weight": Required({ type: String({ minLength: 1 }) }),
360
+ // "personaldata.cultureareaknowledge": Required({ type: String({ minLength: 1 }) }),
361
+ // "You can save up no more than 10 AP to use later during the game, and you cannot begin the game with a negative AP balance.": Required({ type: String({ minLength: 1 }) }),
362
+ // "sheets.printtopdfbtn": Required({ type: String({ minLength: 1 }) }),
363
+ // "sheets.dialogs.pdfexportsavelocation.title": Required({ type: String({ minLength: 1 }) }),
364
+ // "sheets.dialogs.pdfsaved": Required({ type: String({ minLength: 1 }) }),
365
+ // "sheets.dialogs.pdfsaveerror.title": Required({ type: String({ minLength: 1 }) }),
366
+ // "sheets.dialogs.pdfsaveerror.message": Required({ type: String({ minLength: 1 }) }),
367
+ // "sheets.dialogs.pdfcreationerror.title": Required({ type: String({ minLength: 1 }) }),
368
+ // "sheets.dialogs.pdfcreationerror.message": Required({ type: String({ minLength: 1 }) }),
369
+ // "sheets.showattributevalues": Required({ type: String({ minLength: 1 }) }),
370
+ // "sheets.useparchment": Required({ type: String({ minLength: 1 }) }),
371
+ // "sheets.zoomfactor": Required({ type: String({ minLength: 1 }) }),
372
+ // "sheets.charactersheet": Required({ type: String({ minLength: 1 }) }),
373
+ // "sheets.attributemodifiers.title": Required({ type: String({ minLength: 1 }) }),
374
+ // "sheets.mainsheet.title": Required({ type: String({ minLength: 1 }) }),
375
+ // "sheets.mainsheet.name": Required({ type: String({ minLength: 1 }) }),
376
+ // "sheets.mainsheet.family": Required({ type: String({ minLength: 1 }) }),
377
+ // "sheets.mainsheet.placeofbirth": Required({ type: String({ minLength: 1 }) }),
378
+ // "sheets.mainsheet.dateofbirth": Required({ type: String({ minLength: 1 }) }),
379
+ // "sheets.mainsheet.age": Required({ type: String({ minLength: 1 }) }),
380
+ // "sheets.mainsheet.sex": Required({ type: String({ minLength: 1 }) }),
381
+ // "sheets.mainsheet.race": Required({ type: String({ minLength: 1 }) }),
382
+ // "sheets.mainsheet.size": Required({ type: String({ minLength: 1 }) }),
383
+ // "sheets.mainsheet.weight": Required({ type: String({ minLength: 1 }) }),
384
+ // "sheets.mainsheet.haircolor": Required({ type: String({ minLength: 1 }) }),
385
+ // "sheets.mainsheet.eyecolor": Required({ type: String({ minLength: 1 }) }),
386
+ // "sheets.mainsheet.culture": Required({ type: String({ minLength: 1 }) }),
387
+ // "sheets.mainsheet.socialstatus": Required({ type: String({ minLength: 1 }) }),
388
+ // "sheets.mainsheet.profession": Required({ type: String({ minLength: 1 }) }),
389
+ // "sheets.mainsheet.rank": Required({ type: String({ minLength: 1 }) }),
390
+ // "sheets.mainsheet.characteristics": Required({ type: String({ minLength: 1 }) }),
391
+ // "sheets.mainsheet.otherinfo": Required({ type: String({ minLength: 1 }) }),
392
+ // "sheets.mainsheet.experiencelevellabel": Required({ type: String({ minLength: 1 }) }),
393
+ // "sheets.mainsheet.totalaplabel": Required({ type: String({ minLength: 1 }) }),
394
+ // "sheets.mainsheet.apcollectedlabel": Required({ type: String({ minLength: 1 }) }),
395
+ // "sheets.mainsheet.apspentlabel": Required({ type: String({ minLength: 1 }) }),
396
+ // "sheets.mainsheet.avatarlabel": Required({ type: String({ minLength: 1 }) }),
397
+ // "sheets.mainsheet.advantages": Required({ type: String({ minLength: 1 }) }),
398
+ // "sheets.mainsheet.disadvantages": Required({ type: String({ minLength: 1 }) }),
399
+ // "sheets.mainsheet.generalspecialabilites": Required({ type: String({ minLength: 1 }) }),
400
+ // "sheets.mainsheet.fatepoints": Required({ type: String({ minLength: 1 }) }),
401
+ // "sheets.mainsheet.derivedcharacteristics.labels.value": Required({ type: String({ minLength: 1 }) }),
402
+ // "sheets.mainsheet.derivedcharacteristics.labels.bonuspenalty": Required({ type: String({ minLength: 1 }) }),
403
+ // "sheets.mainsheet.derivedcharacteristics.labels.bonus": Required({ type: String({ minLength: 1 }) }),
404
+ // "sheets.mainsheet.derivedcharacteristics.labels.bought": Required({ type: String({ minLength: 1 }) }),
405
+ // "sheets.mainsheet.derivedcharacteristics.labels.max": Required({ type: String({ minLength: 1 }) }),
406
+ // "sheets.mainsheet.derivedcharacteristics.labels.current": Required({ type: String({ minLength: 1 }) }),
407
+ // "sheets.mainsheet.derivedcharacteristics.labels.basestat": Required({ type: String({ minLength: 1 }) }),
408
+ // "sheets.mainsheet.derivedcharacteristics.labels.permanentlylostboughtback": Required({ type: String({ minLength: 1 }) }),
409
+ // "sheets.gamestatssheet.title": Required({ type: String({ minLength: 1 }) }),
410
+ // "sheets.gamestatssheet.skillstable.title": Required({ type: String({ minLength: 1 }) }),
411
+ // "sheets.gamestatssheet.skillstable.labels.skill": Required({ type: String({ minLength: 1 }) }),
412
+ // "sheets.gamestatssheet.skillstable.labels.check": Required({ type: String({ minLength: 1 }) }),
413
+ // "sheets.gamestatssheet.skillstable.labels.encumbrance": Required({ type: String({ minLength: 1 }) }),
414
+ // "sheets.gamestatssheet.skillstable.labels.improvementcost": Required({ type: String({ minLength: 1 }) }),
415
+ // "sheets.gamestatssheet.skillstable.labels.skillrating": Required({ type: String({ minLength: 1 }) }),
416
+ // "sheets.gamestatssheet.skillstable.labels.routinechecks": Required({ type: String({ minLength: 1 }) }),
417
+ // "sheets.gamestatssheet.skillstable.labels.notes": Required({ type: String({ minLength: 1 }) }),
418
+ // "sheets.gamestatssheet.skillstable.encumbrance.yes": Required({ type: String({ minLength: 1 }) }),
419
+ // "sheets.gamestatssheet.skillstable.encumbrance.no": Required({ type: String({ minLength: 1 }) }),
420
+ // "sheets.gamestatssheet.skillstable.encumbrance.maybe": Required({ type: String({ minLength: 1 }) }),
421
+ // "sheets.gamestatssheet.skillstable.groups.pages": Required({ type: String({ minLength: 1 }) }),
422
+ // "sheets.gamestatssheet.languages.title": Required({ type: String({ minLength: 1 }) }),
423
+ // "sheets.gamestatssheet.languages.nativetongue": Required({ type: String({ minLength: 1 }) }),
424
+ // "sheets.gamestatssheet.knownscripts.title": Required({ type: String({ minLength: 1 }) }),
425
+ // "sheets.gamestatssheet.routinechecks.title": Required({ type: String({ minLength: 1 }) }),
426
+ // "sheets.gamestatssheet.routinechecks.textRow1": Required({ type: String({ minLength: 1 }) }),
427
+ // "sheets.gamestatssheet.routinechecks.textRow2": Required({ type: String({ minLength: 1 }) }),
428
+ // "sheets.gamestatssheet.routinechecks.textRow3": Required({ type: String({ minLength: 1 }) }),
429
+ // "sheets.gamestatssheet.routinechecks.textRow4": Required({ type: String({ minLength: 1 }) }),
430
+ // "sheets.gamestatssheet.routinechecks.labels.checkmod": Required({ type: String({ minLength: 1 }) }),
431
+ // "sheets.gamestatssheet.routinechecks.labels.neededsr": Required({ type: String({ minLength: 1 }) }),
432
+ // "sheets.gamestatssheet.routinechecks.from3on": Required({ type: String({ minLength: 1 }) }),
433
+ // "sheets.gamestatssheet.qualitylevels.title": Required({ type: String({ minLength: 1 }) }),
434
+ // "sheets.gamestatssheet.qualitylevels.labels.skillpoints": Required({ type: String({ minLength: 1 }) }),
435
+ // "sheets.gamestatssheet.qualitylevels.labels.qualitylevel": Required({ type: String({ minLength: 1 }) }),
436
+ // "sheets.combatsheet.title": Required({ type: String({ minLength: 1 }) }),
437
+ // "sheets.combatsheet.combattechniquestable.title": Required({ type: String({ minLength: 1 }) }),
438
+ // "sheets.combatsheet.combattechniquestable.labels.combattechnique": Required({ type: String({ minLength: 1 }) }),
439
+ // "sheets.combatsheet.combattechniquestable.labels.primaryattribute": Required({ type: String({ minLength: 1 }) }),
440
+ // "sheets.combatsheet.combattechniquestable.labels.improvementcost": Required({ type: String({ minLength: 1 }) }),
441
+ // "sheets.combatsheet.combattechniquestable.labels.combattechniquerating": Required({ type: String({ minLength: 1 }) }),
442
+ // "sheets.combatsheet.combattechniquestable.labels.attackrangecombat": Required({ type: String({ minLength: 1 }) }),
443
+ // "sheets.combatsheet.combattechniquestable.labels.parry": Required({ type: String({ minLength: 1 }) }),
444
+ // "sheets.combatsheet.lifepoints.title": Required({ type: String({ minLength: 1 }) }),
445
+ // "sheets.combatsheet.lifepoints.max": Required({ type: String({ minLength: 1 }) }),
446
+ // "sheets.combatsheet.lifepoints.current": Required({ type: String({ minLength: 1 }) }),
447
+ // "sheets.combatsheet.lifepoints.pain1": Required({ type: String({ minLength: 1 }) }),
448
+ // "sheets.combatsheet.lifepoints.pain2": Required({ type: String({ minLength: 1 }) }),
449
+ // "sheets.combatsheet.lifepoints.pain3": Required({ type: String({ minLength: 1 }) }),
450
+ // "sheets.combatsheet.lifepoints.pain4": Required({ type: String({ minLength: 1 }) }),
451
+ // "sheets.combatsheet.lifepoints.dying": Required({ type: String({ minLength: 1 }) }),
452
+ // "sheets.combatsheet.closecombatweapons": Required({ type: String({ minLength: 1 }) }),
453
+ // "sheets.combatsheet.closecombatweapons.labels.weapon": Required({ type: String({ minLength: 1 }) }),
454
+ // "sheets.combatsheet.closecombatweapons.labels.combattechnique": Required({ type: String({ minLength: 1 }) }),
455
+ // "sheets.combatsheet.closecombatweapons.labels.damagebonus": Required({ type: String({ minLength: 1 }) }),
456
+ // "sheets.combatsheet.closecombatweapons.labels.damagepoints": Required({ type: String({ minLength: 1 }) }),
457
+ // "sheets.combatsheet.closecombatweapons.labels.attackparrymodifier": Required({ type: String({ minLength: 1 }) }),
458
+ // "sheets.combatsheet.closecombatweapons.labels.reach": Required({ type: String({ minLength: 1 }) }),
459
+ // "sheets.combatsheet.closecombatweapons.labels.breakingpointrating": Required({ type: String({ minLength: 1 }) }),
460
+ // "sheets.combatsheet.closecombatweapons.labels.damaged": Required({ type: String({ minLength: 1 }) }),
461
+ // "sheets.combatsheet.closecombatweapons.labels.attack": Required({ type: String({ minLength: 1 }) }),
462
+ // "sheets.combatsheet.closecombatweapons.labels.parry": Required({ type: String({ minLength: 1 }) }),
463
+ // "sheets.combatsheet.closecombatweapons.labels.weight": Required({ type: String({ minLength: 1 }) }),
464
+ // "sheets.combatsheet.rangedcombatweapons": Required({ type: String({ minLength: 1 }) }),
465
+ // "sheets.combatsheet.rangedcombatweapons.labels.weapon": Required({ type: String({ minLength: 1 }) }),
466
+ // "sheets.combatsheet.rangedcombatweapons.labels.combattechnique": Required({ type: String({ minLength: 1 }) }),
467
+ // "sheets.combatsheet.rangedcombatweapons.labels.reloadtime": Required({ type: String({ minLength: 1 }) }),
468
+ // "sheets.combatsheet.rangedcombatweapons.labels.damagepoints": Required({ type: String({ minLength: 1 }) }),
469
+ // "sheets.combatsheet.rangedcombatweapons.labels.ammunition": Required({ type: String({ minLength: 1 }) }),
470
+ // "sheets.combatsheet.rangedcombatweapons.labels.rangebrackets": Required({ type: String({ minLength: 1 }) }),
471
+ // "sheets.combatsheet.rangedcombatweapons.labels.breakingpointrating": Required({ type: String({ minLength: 1 }) }),
472
+ // "sheets.combatsheet.rangedcombatweapons.labels.damaged": Required({ type: String({ minLength: 1 }) }),
473
+ // "sheets.combatsheet.rangedcombatweapons.labels.rangedcombat": Required({ type: String({ minLength: 1 }) }),
474
+ // "sheets.combatsheet.rangedcombatweapons.labels.weight": Required({ type: String({ minLength: 1 }) }),
475
+ // "sheets.combatsheet.armors.title": Required({ type: String({ minLength: 1 }) }),
476
+ // "sheets.combatsheet.armors.labels.armor": Required({ type: String({ minLength: 1 }) }),
477
+ // "sheets.combatsheet.armors.labels.sturdinessrating": Required({ type: String({ minLength: 1 }) }),
478
+ // "sheets.combatsheet.armors.labels.wear": Required({ type: String({ minLength: 1 }) }),
479
+ // "sheets.combatsheet.armors.labels.protection": Required({ type: String({ minLength: 1 }) }),
480
+ // "sheets.combatsheet.armors.labels.encumbrance": Required({ type: String({ minLength: 1 }) }),
481
+ // "sheets.combatsheet.armors.labels.movementinitiative": Required({ type: String({ minLength: 1 }) }),
482
+ // "sheets.combatsheet.armors.labels.carriedwhereexamples": Required({ type: String({ minLength: 1 }) }),
483
+ // "sheets.combatsheet.armors.labels.head": Required({ type: String({ minLength: 1 }) }),
484
+ // "sheets.combatsheet.armors.labels.torso": Required({ type: String({ minLength: 1 }) }),
485
+ // "sheets.combatsheet.armors.labels.leftarm": Required({ type: String({ minLength: 1 }) }),
486
+ // "sheets.combatsheet.armors.labels.rightarm": Required({ type: String({ minLength: 1 }) }),
487
+ // "sheets.combatsheet.armors.labels.leftleg": Required({ type: String({ minLength: 1 }) }),
488
+ // "sheets.combatsheet.armors.labels.rightleg": Required({ type: String({ minLength: 1 }) }),
489
+ // "sheets.combatsheet.armors.labels.weight": Required({ type: String({ minLength: 1 }) }),
490
+ // "sheets.combatsheet.shieldparryingweapon.title": Required({ type: String({ minLength: 1 }) }),
491
+ // "sheets.combatsheet.shieldparryingweapon.labels.shieldparryingweapon": Required({ type: String({ minLength: 1 }) }),
492
+ // "sheets.combatsheet.shieldparryingweapon.labels.structurepoints": Required({ type: String({ minLength: 1 }) }),
493
+ // "sheets.combatsheet.shieldparryingweapon.labels.breakingpointrating": Required({ type: String({ minLength: 1 }) }),
494
+ // "sheets.combatsheet.shieldparryingweapon.labels.damaged": Required({ type: String({ minLength: 1 }) }),
495
+ // "sheets.combatsheet.shieldparryingweapon.labels.attackparrymodifier": Required({ type: String({ minLength: 1 }) }),
496
+ // "sheets.combatsheet.shieldparryingweapon.labels.weight": Required({ type: String({ minLength: 1 }) }),
497
+ // "sheets.combatsheet.actions": Required({ type: String({ minLength: 1 }) }),
498
+ // "sheets.combatsheet.combatspecialabilities": Required({ type: String({ minLength: 1 }) }),
499
+ // "sheets.combatsheet.conditions": Required({ type: String({ minLength: 1 }) }),
500
+ // "sheets.combatsheet.states": Required({ type: String({ minLength: 1 }) }),
501
+ // "sheets.belongingssheet.title": Required({ type: String({ minLength: 1 }) }),
502
+ // "sheets.belongingssheet.equipmenttable.title": Required({ type: String({ minLength: 1 }) }),
503
+ // "sheets.belongingssheet.equipmenttable.labels.item": Required({ type: String({ minLength: 1 }) }),
504
+ // "sheets.belongingssheet.equipmenttable.labels.number": Required({ type: String({ minLength: 1 }) }),
505
+ // "sheets.belongingssheet.equipmenttable.labels.price": Required({ type: String({ minLength: 1 }) }),
506
+ // "sheets.belongingssheet.equipmenttable.labels.weight": Required({ type: String({ minLength: 1 }) }),
507
+ // "sheets.belongingssheet.equipmenttable.labels.carriedwhere": Required({ type: String({ minLength: 1 }) }),
508
+ // "sheets.belongingssheet.equipmenttable.labels.total": Required({ type: String({ minLength: 1 }) }),
509
+ // "sheets.belongingssheet.purse.title": Required({ type: String({ minLength: 1 }) }),
510
+ // "sheets.belongingssheet.purse.ducats": Required({ type: String({ minLength: 1 }) }),
511
+ // "sheets.belongingssheet.purse.silverthalers": Required({ type: String({ minLength: 1 }) }),
512
+ // "sheets.belongingssheet.purse.halers": Required({ type: String({ minLength: 1 }) }),
513
+ // "sheets.belongingssheet.purse.kreutzers": Required({ type: String({ minLength: 1 }) }),
514
+ // "sheets.belongingssheet.purse.gems": Required({ type: String({ minLength: 1 }) }),
515
+ // "sheets.belongingssheet.purse.jewelry": Required({ type: String({ minLength: 1 }) }),
516
+ // "sheets.belongingssheet.purse.other": Required({ type: String({ minLength: 1 }) }),
517
+ // "sheets.belongingssheet.carryingcapacity.title": Required({ type: String({ minLength: 1 }) }),
518
+ // "sheets.belongingssheet.carryingcapacity.calc": Required({ type: String({ minLength: 1 }) }),
519
+ // "sheets.belongingssheet.carryingcapacity.label": Required({ type: String({ minLength: 1 }) }),
520
+ // "sheets.belongingssheet.animal.title": Required({ type: String({ minLength: 1 }) }),
521
+ // "sheets.belongingssheet.animal.name": Required({ type: String({ minLength: 1 }) }),
522
+ // "sheets.belongingssheet.animal.sizecategory": Required({ type: String({ minLength: 1 }) }),
523
+ // "sheets.belongingssheet.animal.type": Required({ type: String({ minLength: 1 }) }),
524
+ // "sheets.belongingssheet.animal.ap": Required({ type: String({ minLength: 1 }) }),
525
+ // "sheets.belongingssheet.animal.protection": Required({ type: String({ minLength: 1 }) }),
526
+ // "sheets.belongingssheet.animal.attackname": Required({ type: String({ minLength: 1 }) }),
527
+ // "sheets.belongingssheet.animal.attack": Required({ type: String({ minLength: 1 }) }),
528
+ // "sheets.belongingssheet.animal.parry": Required({ type: String({ minLength: 1 }) }),
529
+ // "sheets.belongingssheet.animal.damagepoints": Required({ type: String({ minLength: 1 }) }),
530
+ // "sheets.belongingssheet.animal.reach": Required({ type: String({ minLength: 1 }) }),
531
+ // "sheets.belongingssheet.animal.actions": Required({ type: String({ minLength: 1 }) }),
532
+ // "sheets.belongingssheet.animal.skills": Required({ type: String({ minLength: 1 }) }),
533
+ // "sheets.belongingssheet.animal.specialabilities": Required({ type: String({ minLength: 1 }) }),
534
+ // "sheets.belongingssheet.animal.notes": Required({ type: String({ minLength: 1 }) }),
535
+ // "sheets.spellssheet.title": Required({ type: String({ minLength: 1 }) }),
536
+ // "sheets.spellssheet.header.labels.aemax": Required({ type: String({ minLength: 1 }) }),
537
+ // "sheets.spellssheet.header.labels.aecurrent": Required({ type: String({ minLength: 1 }) }),
538
+ // "sheets.spellssheet.spellstable.title": Required({ type: String({ minLength: 1 }) }),
539
+ // "sheets.spellssheet.spellstable.labels.spellorritual": Required({ type: String({ minLength: 1 }) }),
540
+ // "sheets.spellssheet.spellstable.labels.check": Required({ type: String({ minLength: 1 }) }),
541
+ // "sheets.spellssheet.spellstable.labels.skillrating": Required({ type: String({ minLength: 1 }) }),
542
+ // "sheets.spellssheet.spellstable.labels.cost": Required({ type: String({ minLength: 1 }) }),
543
+ // "sheets.spellssheet.spellstable.labels.castingtime": Required({ type: String({ minLength: 1 }) }),
544
+ // "sheets.spellssheet.spellstable.labels.range": Required({ type: String({ minLength: 1 }) }),
545
+ // "sheets.spellssheet.spellstable.labels.duration": Required({ type: String({ minLength: 1 }) }),
546
+ // "sheets.spellssheet.spellstable.labels.property": Required({ type: String({ minLength: 1 }) }),
547
+ // "sheets.spellssheet.spellstable.labels.improvementcost": Required({ type: String({ minLength: 1 }) }),
548
+ // "sheets.spellssheet.spellstable.labels.effect": Required({ type: String({ minLength: 1 }) }),
549
+ // "sheets.spellssheet.spellstable.labels.pages": Required({ type: String({ minLength: 1 }) }),
550
+ // "sheets.spellssheet.spellstable.unfamiliarspell": Required({ type: String({ minLength: 1 }) }),
551
+ // "sheets.spellssheet.primaryattribute": Required({ type: String({ minLength: 1 }) }),
552
+ // "sheets.spellssheet.properties": Required({ type: String({ minLength: 1 }) }),
553
+ // "sheets.spellssheet.tradition": Required({ type: String({ minLength: 1 }) }),
554
+ // "sheets.spellssheet.magicalspecialabilities": Required({ type: String({ minLength: 1 }) }),
555
+ // "sheets.spellssheet.cantrips": Required({ type: String({ minLength: 1 }) }),
556
+ // "sheets.chantssheet.title": Required({ type: String({ minLength: 1 }) }),
557
+ // "sheets.chantssheet.header.labels.kpmax": Required({ type: String({ minLength: 1 }) }),
558
+ // "sheets.chantssheet.header.labels.kpcurrent": Required({ type: String({ minLength: 1 }) }),
559
+ // "sheets.chantssheet.chantstable.title": Required({ type: String({ minLength: 1 }) }),
560
+ // "sheets.chantssheet.chantstable.labels.chant": Required({ type: String({ minLength: 1 }) }),
561
+ // "sheets.chantssheet.chantstable.labels.check": Required({ type: String({ minLength: 1 }) }),
562
+ // "sheets.chantssheet.chantstable.labels.skillrating": Required({ type: String({ minLength: 1 }) }),
563
+ // "sheets.chantssheet.chantstable.labels.cost": Required({ type: String({ minLength: 1 }) }),
564
+ // "sheets.chantssheet.chantstable.labels.castingtime": Required({ type: String({ minLength: 1 }) }),
565
+ // "sheets.chantssheet.chantstable.labels.range": Required({ type: String({ minLength: 1 }) }),
566
+ // "sheets.chantssheet.chantstable.labels.duration": Required({ type: String({ minLength: 1 }) }),
567
+ // "sheets.chantssheet.chantstable.labels.aspect": Required({ type: String({ minLength: 1 }) }),
568
+ // "sheets.chantssheet.chantstable.labels.improvementcost": Required({ type: String({ minLength: 1 }) }),
569
+ // "sheets.chantssheet.chantstable.labels.effect": Required({ type: String({ minLength: 1 }) }),
570
+ // "sheets.chantssheet.chantstable.labels.pages": Required({ type: String({ minLength: 1 }) }),
571
+ // "sheets.chantssheet.primaryattribute": Required({ type: String({ minLength: 1 }) }),
572
+ // "sheets.chantssheet.aspects": Required({ type: String({ minLength: 1 }) }),
573
+ // "sheets.chantssheet.tradition": Required({ type: String({ minLength: 1 }) }),
574
+ // "sheets.chantssheet.blessedspecialabilities": Required({ type: String({ minLength: 1 }) }),
575
+ // "sheets.chantssheet.blessings": Required({ type: String({ minLength: 1 }) }),
576
+ // "pacts.pactcategory": Required({ type: String({ minLength: 1 }) }),
577
+ // "pacts.nopact": Required({ type: String({ minLength: 1 }) }),
578
+ // "pacts.pactlevel": Required({ type: String({ minLength: 1 }) }),
579
+ // "pacts.fairytype": Required({ type: String({ minLength: 1 }) }),
580
+ // "pacts.domain": Required({ type: String({ minLength: 1 }) }),
581
+ // "pacts.userdefined": Required({ type: String({ minLength: 1 }) }),
582
+ // "pacts.demontype": Required({ type: String({ minLength: 1 }) }),
583
+ // "pacts.circleofdamnation": Required({ type: String({ minLength: 1 }) }),
584
+ // "pacts.minorpact": Required({ type: String({ minLength: 1 }) }),
585
+ // "pacts.pactisincompletehint": Required({ type: String({ minLength: 1 }) }),
586
+ // "pacts.name": Required({ type: String({ minLength: 1 }) }),
587
+ // // Rules
588
+ // "Rule Sources": Required({ type: String({ minLength: 1 }) }),
589
+ // "Use all publications": Required({ type: String({ minLength: 1 }) }),
590
+ // "Focus Rules": Required({ type: String({ minLength: 1 }) }),
591
+ // "Optional Rules": Required({ type: String({ minLength: 1 }) }),
592
+ // "rules.manualherodatarepair": Required({ type: String({ minLength: 1 }) }),
593
+ // "rules.manualherodatarepairexplanation": Required({ type: String({ minLength: 1 }) }),
594
+ // "inlinewiki.complementarysources": Required({ type: String({ minLength: 1 }) }),
595
+ // "race.header.name": Required({ type: String({ minLength: 1 }) }),
596
+ // "race.header.adventurepoints": Required({ type: String({ minLength: 1 }) }),
597
+ // "race.header.adventurepoints.tooltip": Required({ type: String({ minLength: 1 }) }),
598
+ // "inlinewiki.apvalue": Required({ type: String({ minLength: 1 }) }),
599
+ // "inlinewiki.adventurepoints": Required({ type: String({ minLength: 1 }) }),
600
+ // "inlinewiki.lifepointbasevalue": Required({ type: String({ minLength: 1 }) }),
601
+ // "inlinewiki.spiritbasevalue": Required({ type: String({ minLength: 1 }) }),
602
+ // "inlinewiki.toughnessbasevalue": Required({ type: String({ minLength: 1 }) }),
603
+ // "inlinewiki.movementbasevalue": Required({ type: String({ minLength: 1 }) }),
604
+ // "inlinewiki.attributeadjustments": Required({ type: String({ minLength: 1 }) }),
605
+ // "inlinewiki.automaticadvantages": Required({ type: String({ minLength: 1 }) }),
606
+ // "inlinewiki.stronglyrecommendedadvantages": Required({ type: String({ minLength: 1 }) }),
607
+ // "inlinewiki.stronglyrecommendeddisadvantages": Required({ type: String({ minLength: 1 }) }),
608
+ // "inlinewiki.commoncultures": Required({ type: String({ minLength: 1 }) }),
609
+ // "inlinewiki.commonadvantages": Required({ type: String({ minLength: 1 }) }),
610
+ // "inlinewiki.commondisadvantages": Required({ type: String({ minLength: 1 }) }),
611
+ // "inlinewiki.uncommonadvantages": Required({ type: String({ minLength: 1 }) }),
612
+ // "inlinewiki.uncommondisadvantages": Required({ type: String({ minLength: 1 }) }),
613
+ // "culture.filters.common.allcultures": Required({ type: String({ minLength: 1 }) }),
614
+ // "culture.filters.common.commoncultures": Required({ type: String({ minLength: 1 }) }),
615
+ // "culture.header.name": Required({ type: String({ minLength: 1 }) }),
616
+ // "inlinewiki.language": Required({ type: String({ minLength: 1 }) }),
617
+ // "inlinewiki.script": Required({ type: String({ minLength: 1 }) }),
618
+ // "inlinewiki.areaknowledge": Required({ type: String({ minLength: 1 }) }),
619
+ // "inlinewiki.socialstatus": Required({ type: String({ minLength: 1 }) }),
620
+ // "inlinewiki.commonprofessions": Required({ type: String({ minLength: 1 }) }),
621
+ // "inlinewiki.commonprofessions.mundane": Required({ type: String({ minLength: 1 }) }),
622
+ // "inlinewiki.commonprofessions.magic": Required({ type: String({ minLength: 1 }) }),
623
+ // "inlinewiki.commonprofessions.blessed": Required({ type: String({ minLength: 1 }) }),
624
+ // "inlinewiki.commonskills": Required({ type: String({ minLength: 1 }) }),
625
+ // "inlinewiki.uncommonskills": Required({ type: String({ minLength: 1 }) }),
626
+ // "inlinewiki.commonnames": Required({ type: String({ minLength: 1 }) }),
627
+ // /**
628
+ // * - `0`: Name of cultural package
629
+ // * - `1`: AP cost of the cultural package
630
+ // */
631
+ // "inlinewiki.culturalpackage": Required({ type: String({ minLength: 1 }) }),
632
+ // "profession.ownprofession": Required({ type: String({ minLength: 1 }) }),
633
+ // "profession.variants.novariant": Required({ type: String({ minLength: 1 }) }),
634
+ // "profession.filters.common.allprofessions": Required({ type: String({ minLength: 1 }) }),
635
+ // "profession.filters.common.commonprofessions": Required({ type: String({ minLength: 1 }) }),
636
+ // "profession.filters.groups.allprofessiongroups": Required({ type: String({ minLength: 1 }) }),
637
+ // "profession.filters.groups.mundaneprofessions": Required({ type: String({ minLength: 1 }) }),
638
+ // "profession.filters.groups.magicalprofessions": Required({ type: String({ minLength: 1 }) }),
639
+ // "profession.filters.groups.blessedprofessions": Required({ type: String({ minLength: 1 }) }),
640
+ // "profession.header.name": Required({ type: String({ minLength: 1 }) }),
641
+ // "profession.header.adventurepoints": Required({ type: String({ minLength: 1 }) }),
642
+ // "profession.header.adventurepoints.tooltip": Required({ type: String({ minLength: 1 }) }),
643
+ // "inlinewiki.prerequisites": Required({ type: String({ minLength: 1 }) }),
644
+ // "inlinewiki.race": Required({ type: String({ minLength: 1 }) }),
645
+ // "inlinewiki.specialabilities": Required({ type: String({ minLength: 1 }) }),
646
+ // /**
647
+ // * - `0`: AP given
648
+ // */
649
+ // "inlinewiki.languagesandliteracytotalingap": Required({ type: String({ minLength: 1 }) }),
650
+ // /**
651
+ // * - `0`: Skill name(s)
652
+ // */
653
+ // "inlinewiki.skillspecialization": Required({ type: String({ minLength: 1 }) }),
654
+ // /**
655
+ // * - `0`: AP given
656
+ // * - `1`: Skill group
657
+ // */
658
+ // "inlinewiki.skillsselection": Required({ type: String({ minLength: 1 }) }),
659
+ // "inlinewiki.combattechniques": Required({ type: String({ minLength: 1 }) }),
660
+ // /**
661
+ // * - `0`: Amount of combat techniques to choose
662
+ // * - `1`: CtR of the selected combat techniques after application
663
+ // * - `2`: List of possible combat techniques
664
+ // */
665
+ // "inlinewiki.combattechniqueselection": Required({ type: String({ minLength: 1 }) }),
666
+ // "inlinewiki.combattechnique.one": Required({ type: String({ minLength: 1 }) }),
667
+ // "inlinewiki.combattechnique.two": Required({ type: String({ minLength: 1 }) }),
668
+ // /**
669
+ // * - `0`: Amount of combat techniques to choose
670
+ // * - `1`: CtR of the selected combat techniques after application
671
+ // * - `2`: Amount of combat techniques to choose in a second selection
672
+ // * - `3`: CtR of the selected combat techniques from second selection after application
673
+ // * - `4`: List of possible combat techniques
674
+ // */
675
+ // "inlinewiki.combattechniquesecondselection": Required({ type: String({ minLength: 1 }) }),
676
+ // "inlinewiki.skills": Required({ type: String({ minLength: 1 }) }),
677
+ // "inlinewiki.spells": Required({ type: String({ minLength: 1 }) }),
678
+ // /**
679
+ // * - `0`: AP given
680
+ // */
681
+ // "inlinewiki.cursestotalingap": Required({ type: String({ minLength: 1 }) }),
682
+ // /**
683
+ // * - `0`: Amount of cantrips to choose
684
+ // * - `1`: List of possible cantrips
685
+ // */
686
+ // "inlinewiki.cantripsfromlist": Required({ type: String({ minLength: 1 }) }),
687
+ // "inlinewiki.cantrip.one": Required({ type: String({ minLength: 1 }) }),
688
+ // "inlinewiki.cantrip.two": Required({ type: String({ minLength: 1 }) }),
689
+ // "inlinewiki.liturgicalchants": Required({ type: String({ minLength: 1 }) }),
690
+ // "inlinewiki.thetwelveblessings": Required({ type: String({ minLength: 1 }) }),
691
+ // /**
692
+ // * - `0`: name of first excluded blessing
693
+ // * - `1`: name of second excluded blessing
694
+ // * - `2`: name of third excluded blessing
695
+ // */
696
+ // "inlinewiki.thetwelveblessingsexceptions": Required({ type: String({ minLength: 1 }) }),
697
+ // "inlinewiki.sixblessings": Required({ type: String({ minLength: 1 }) }),
698
+ // "inlinewiki.suggestedadvantages": Required({ type: String({ minLength: 1 }) }),
699
+ // "inlinewiki.suggesteddisadvantages": Required({ type: String({ minLength: 1 }) }),
700
+ // "inlinewiki.unsuitableadvantages": Required({ type: String({ minLength: 1 }) }),
701
+ // "inlinewiki.unsuitabledisadvantages": Required({ type: String({ minLength: 1 }) }),
702
+ // "inlinewiki.variants": Required({ type: String({ minLength: 1 }) }),
703
+ // "inlinewiki.insteadof": Required({ type: String({ minLength: 1 }) }),
704
+ // "rcpselectoptions.race": Required({ type: String({ minLength: 1 }) }),
705
+ // "rcpselectoptions.culture": Required({ type: String({ minLength: 1 }) }),
706
+ // "rcpselectoptions.profession": Required({ type: String({ minLength: 1 }) }),
707
+ // /**
708
+ // * - `0`: Amount of cantrips to choose
709
+ // */
710
+ // "rcpselectoptions.cantripsfromlist": Required({ type: String({ minLength: 1 }) }),
711
+ // "rcpselectoptions.cantrip.one": Required({ type: String({ minLength: 1 }) }),
712
+ // "rcpselectoptions.cantrip.two": Required({ type: String({ minLength: 1 }) }),
713
+ // /**
714
+ // * - `0`: Amount of combat techniques to choose
715
+ // * - `1`: CtR of the selected combat techniques after application
716
+ // */
717
+ // "rcpselectoptions.combattechniqueselection": Required({ type: String({ minLength: 1 }) }),
718
+ // "rcpselectoptions.combattechnique.one": Required({ type: String({ minLength: 1 }) }),
719
+ // "rcpselectoptions.combattechnique.two": Required({ type: String({ minLength: 1 }) }),
720
+ // "rcpselectoptions.selectattributeadjustment": Required({ type: String({ minLength: 1 }) }),
721
+ // "rcpselectoptions.buyculturalpackage": Required({ type: String({ minLength: 1 }) }),
722
+ // "rcpselectoptions.nativetongue.placeholder": Required({ type: String({ minLength: 1 }) }),
723
+ // "rcpselectoptions.buyscript": Required({ type: String({ minLength: 1 }) }),
724
+ // "rcpselectoptions.script.placeholder": Required({ type: String({ minLength: 1 }) }),
725
+ // /**
726
+ // * - `0`: Amount of combat techniques to choose in a second selection
727
+ // * - `1`: CtR of the selected combat techniques from second selection after application
728
+ // */
729
+ // "rcpselectoptions.combattechniquesecondselection": Required({ type: String({ minLength: 1 }) }),
730
+ // /**
731
+ // * - `0`: AP given
732
+ // * - `1`: AP left
733
+ // */
734
+ // "rcpselectoptions.cursestotalingapleft": Required({ type: String({ minLength: 1 }) }),
735
+ // /**
736
+ // * - `0`: AP given
737
+ // * - `1`: AP left
738
+ // */
739
+ // "rcpselectoptions.languagesandliteracytotalingapleft": Required({ type: String({ minLength: 1 }) }),
740
+ // "rcpselectoptions.applicationforskillspecialization": Required({ type: String({ minLength: 1 }) }),
741
+ // /**
742
+ // * - `0`: Skill group
743
+ // * - `1`: AP given
744
+ // * - `2`: AP left
745
+ // */
746
+ // "rcpselectoptions.skillselectionap": Required({ type: String({ minLength: 1 }) }),
747
+ // /**
748
+ // * - `0`: Skill name(s)
749
+ // */
750
+ // "rcpselectoptions.skillspecialization": Required({ type: String({ minLength: 1 }) }),
751
+ // "rcpselectoptions.completebtn": Required({ type: String({ minLength: 1 }) }),
752
+ // "rcpselectoptions.unfamiliarspells": Required({ type: String({ minLength: 1 }) }),
753
+ // "rcpselectoptions.unfamiliarspellselectionfortraditionguildmage": Required({ type: String({ minLength: 1 }) }),
754
+ // "rcpselectoptions.unfamiliarspell.placeholder": Required({ type: String({ minLength: 1 }) }),
755
+ // "rcpselectoptions.unfamiliarspell": Required({ type: String({ minLength: 1 }) }),
756
+ // // Attributes
757
+ // "Total Points": Required({ type: String({ minLength: 1 }) }),
758
+ // "Increment": Required({ type: String({ minLength: 1 }) }),
759
+ // "Decrement": Required({ type: String({ minLength: 1 }) }),
760
+ // "Activate": Required({ type: String({ minLength: 1 }) }),
761
+ // "Attribute Adjustment Selection": Required({ type: String({ minLength: 1 }) }),
762
+ // "Modifier": Required({ type: String({ minLength: 1 }) }),
763
+ // "Bought": Required({ type: String({ minLength: 1 }) }),
764
+ // "Lost Total": Required({ type: String({ minLength: 1 }) }),
765
+ // "Bought Back": Required({ type: String({ minLength: 1 }) }),
766
+ // "Buy Back Permanently Lost Point": Required({ type: String({ minLength: 1 }) }),
767
+ // "Permanently Lost Life Points": Required({ type: String({ minLength: 1 }) }),
768
+ // "pLP": Required({ type: String({ minLength: 1 }) }),
769
+ // "Permanently Lost Arcane Energy": Required({ type: String({ minLength: 1 }) }),
770
+ // "pAE": Required({ type: String({ minLength: 1 }) }),
771
+ // "Permanently Lost Karma Points": Required({ type: String({ minLength: 1 }) }),
772
+ // "pKP": Required({ type: String({ minLength: 1 }) }),
773
+ // "Loose Permanent Points": Required({ type: String({ minLength: 1 }) }),
774
+ // "How many points do you want to remove?": Required({ type: String({ minLength: 1 }) }),
775
+ // "Remove": Required({ type: String({ minLength: 1 }) }),
776
+ // "Permanently Spent": Required({ type: String({ minLength: 1 }) }),
777
+ // "Common Advantages": Required({ type: String({ minLength: 1 }) }),
778
+ // "Common Disadvantages": Required({ type: String({ minLength: 1 }) }),
779
+ // "Custom AP Cost": Required({ type: String({ minLength: 1 }) }),
780
+ // /**
781
+ // * - `0`: Entry name
782
+ // */
783
+ // "AP Cost for {0}": Required({ type: String({ minLength: 1 }) }),
784
+ // "Custom option": Required({ type: String({ minLength: 1 }) }),
785
+ // "specialabilities.nativetonguelevel": Required({ type: String({ minLength: 1 }) }),
786
+ // "Advanced Combat Special Abilities": Required({ type: String({ minLength: 1 }) }),
787
+ // "Advanced Karma Special Abilities": Required({ type: String({ minLength: 1 }) }),
788
+ // "Advanced Magical Special Abilities": Required({ type: String({ minLength: 1 }) }),
789
+ // "Advanced Skill Special Abilities": Required({ type: String({ minLength: 1 }) }),
790
+ // "Ancestor Glyphs": Required({ type: String({ minLength: 1 }) }),
791
+ // "Arcane Orb Enchantments": Required({ type: String({ minLength: 1 }) }),
792
+ // "Attire Enchantments": Required({ type: String({ minLength: 1 }) }),
793
+ // "Blessed Traditions": Required({ type: String({ minLength: 1 }) }),
794
+ // "Bowl Enchantments": Required({ type: String({ minLength: 1 }) }),
795
+ // "Brawling Special Abilities": Required({ type: String({ minLength: 1 }) }),
796
+ // "Cauldron Enchantments": Required({ type: String({ minLength: 1 }) }),
797
+ // "Ceremonial Item Special Abilities": Required({ type: String({ minLength: 1 }) }),
798
+ // "Chronicle Enchantments": Required({ type: String({ minLength: 1 }) }),
799
+ // "Combat Special Abilities": Required({ type: String({ minLength: 1 }) }),
800
+ // "Combat Style Special Abilities": Required({ type: String({ minLength: 1 }) }),
801
+ // "Command Special Abilities": Required({ type: String({ minLength: 1 }) }),
802
+ // "Dagger Rituals": Required({ type: String({ minLength: 1 }) }),
803
+ // "Familiar Special Abilities": Required({ type: String({ minLength: 1 }) }),
804
+ // "Fate Point Sex Special Abilities": Required({ type: String({ minLength: 1 }) }),
805
+ // "Fate Point Special Abilities": Required({ type: String({ minLength: 1 }) }),
806
+ // "Fools Hat Enchantments": Required({ type: String({ minLength: 1 }) }),
807
+ // "General Special Abilities": Required({ type: String({ minLength: 1 }) }),
808
+ // "Instrument Enchantments": Required({ type: String({ minLength: 1 }) }),
809
+ // "Karma Special Abilities": Required({ type: String({ minLength: 1 }) }),
810
+ // "Krallenkettenzauber": Required({ type: String({ minLength: 1 }) }),
811
+ // "Liturgical Style Special Abilities": Required({ type: String({ minLength: 1 }) }),
812
+ // "Lycantropic Gifts": Required({ type: String({ minLength: 1 }) }),
813
+ // "Magical Signs": Required({ type: String({ minLength: 1 }) }),
814
+ // "Magical Special Abilities": Required({ type: String({ minLength: 1 }) }),
815
+ // "Magical Traditions": Required({ type: String({ minLength: 1 }) }),
816
+ // "Magic Style Special Abilities": Required({ type: String({ minLength: 1 }) }),
817
+ // "Orb Enchantments": Required({ type: String({ minLength: 1 }) }),
818
+ // "Pact Gifts": Required({ type: String({ minLength: 1 }) }),
819
+ // "Protective/Warding Circle Special Abilities": Required({ type: String({ minLength: 1 }) }),
820
+ // "Ring Enchantments": Required({ type: String({ minLength: 1 }) }),
821
+ // "Sermons": Required({ type: String({ minLength: 1 }) }),
822
+ // "Sex Special Abilities": Required({ type: String({ minLength: 1 }) }),
823
+ // "Sickle Rituals": Required({ type: String({ minLength: 1 }) }),
824
+ // "Sikaryan Drain Special Abilities": Required({ type: String({ minLength: 1 }) }),
825
+ // "Skill Style Special Abilities": Required({ type: String({ minLength: 1 }) }),
826
+ // "Spell Sword Enchantments": Required({ type: String({ minLength: 1 }) }),
827
+ // "Staff Enchantments": Required({ type: String({ minLength: 1 }) }),
828
+ // "Toy Enchantments": Required({ type: String({ minLength: 1 }) }),
829
+ // "Trinkhornzauber": Required({ type: String({ minLength: 1 }) }),
830
+ // "Vampiric Gifts": Required({ type: String({ minLength: 1 }) }),
831
+ // "Visions": Required({ type: String({ minLength: 1 }) }),
832
+ // "Wand Enchantments": Required({ type: String({ minLength: 1 }) }),
833
+ // "Weapon Enchantments": Required({ type: String({ minLength: 1 }) }),
834
+ // "inlinewiki.rule": Required({ type: String({ minLength: 1 }) }),
835
+ // "inlinewiki.effect": Required({ type: String({ minLength: 1 }) }),
836
+ // "inlinewiki.extendedcombatspecialabilities": Required({ type: String({ minLength: 1 }) }),
837
+ // "inlinewiki.extendedmagicalspecialabilities": Required({ type: String({ minLength: 1 }) }),
838
+ // "inlinewiki.extendedblessedspecialabilities": Required({ type: String({ minLength: 1 }) }),
839
+ // "inlinewiki.extendedskillspecialabilities": Required({ type: String({ minLength: 1 }) }),
840
+ // "inlinewiki.penalty": Required({ type: String({ minLength: 1 }) }),
841
+ // "inlinewiki.level": Required({ type: String({ minLength: 1 }) }),
842
+ // "inlinewiki.perlevel": Required({ type: String({ minLength: 1 }) }),
843
+ // "inlinewiki.volume": Required({ type: String({ minLength: 1 }) }),
844
+ // "inlinewiki.aspect": Required({ type: String({ minLength: 1 }) }),
845
+ // "inlinewiki.bindingcost": Required({ type: String({ minLength: 1 }) }),
846
+ // "inlinewiki.protectivecircle": Required({ type: String({ minLength: 1 }) }),
847
+ // "inlinewiki.wardingcircle": Required({ type: String({ minLength: 1 }) }),
848
+ // "inlinewiki.actions": Required({ type: String({ minLength: 1 }) }),
849
+ // /**
850
+ // * - `0`: Entry name
851
+ // * - `1`: category (advantage, disadvantage, …)
852
+ // */
853
+ // "inlinewiki.racecultureorprofessionrequiresautomaticorsuggested": Required({ type: String({ minLength: 1 }) }),
854
+ // "inlinewiki.advantage": Required({ type: String({ minLength: 1 }) }),
855
+ // "inlinewiki.disadvantage": Required({ type: String({ minLength: 1 }) }),
856
+ // "inlinewiki.primaryattributeofthetradition": Required({ type: String({ minLength: 1 }) }),
857
+ // "inlinewiki.knowledgeofspell": Required({ type: String({ minLength: 1 }) }),
858
+ // "inlinewiki.knowledgeofliturgicalchant": Required({ type: String({ minLength: 1 }) }),
859
+ // "inlinewiki.appropriatecombatstylespecialability": Required({ type: String({ minLength: 1 }) }),
860
+ // "inlinewiki.appropriatemagicalstylespecialability": Required({ type: String({ minLength: 1 }) }),
861
+ // "inlinewiki.appropriateblessedstylespecialability": Required({ type: String({ minLength: 1 }) }),
862
+ // "inlinewiki.appropriateskillstylespecialability": Required({ type: String({ minLength: 1 }) }),
863
+ // "inlinewiki.sex": Required({ type: String({ minLength: 1 }) }),
864
+ // "inlinewiki.sex.male": Required({ type: String({ minLength: 1 }) }),
865
+ // "inlinewiki.sex.female": Required({ type: String({ minLength: 1 }) }),
866
+ // "inlinewiki.combattechniques.groups.all": Required({ type: String({ minLength: 1 }) }),
867
+ // "inlinewiki.combattechniques.groups.allmeleecombattechniques": Required({ type: String({ minLength: 1 }) }),
868
+ // "inlinewiki.combattechniques.groups.allrangedcombattechniques": Required({ type: String({ minLength: 1 }) }),
869
+ // "inlinewiki.combattechniques.groups.allmeleecombattechniqueswithparry": Required({ type: String({ minLength: 1 }) }),
870
+ // "inlinewiki.combattechniques.groups.allmeleecombattechniquesforonehandedweapons": Required({ type: String({ minLength: 1 }) }),
871
+ // /**
872
+ // * - `0`: Minimum social status
873
+ // */
874
+ // "inlinewiki.socialstatusxorhigher": Required({ type: String({ minLength: 1 }) }),
875
+ // "Common Skills": Required({ type: String({ minLength: 1 }) }),
876
+ // "SR": Required({ type: String({ minLength: 1 }) }),
877
+ // "Skill Rating": Required({ type: String({ minLength: 1 }) }),
878
+ // "IC": Required({ type: String({ minLength: 1 }) }),
879
+ // "New Applications": Required({ type: String({ minLength: 1 }) }),
880
+ // "Uses": Required({ type: String({ minLength: 1 }) }),
881
+ // "Strongly Recommended": Required({ type: String({ minLength: 1 }) }),
882
+ // "Common": Required({ type: String({ minLength: 1 }) }),
883
+ // "Uncommon": Required({ type: String({ minLength: 1 }) }),
884
+ // "Unfamiliar Spells": Required({ type: String({ minLength: 1 }) }),
885
+ // "CTR": Required({ type: String({ minLength: 1 }) }),
886
+ // "Combat Technique Rating": Required({ type: String({ minLength: 1 }) }),
887
+ // "P": Required({ type: String({ minLength: 1 }) }),
888
+ // "Primary Attribute(s)": Required({ type: String({ minLength: 1 }) }),
889
+ // "AT": Required({ type: String({ minLength: 1 }) }),
890
+ // "Attack": Required({ type: String({ minLength: 1 }) }),
891
+ // "PA": Required({ type: String({ minLength: 1 }) }),
892
+ // "Parry": Required({ type: String({ minLength: 1 }) }),
893
+ // "Close Combat": Required({ type: String({ minLength: 1 }) }),
894
+ // "Ranged Combat": Required({ type: String({ minLength: 1 }) }),
895
+ // "Special": Required({ type: String({ minLength: 1 }) }),
896
+ // "Primary Attribute": Required({ type: String({ minLength: 1 }) }),
897
+ // "Cantrips": Required({ type: String({ minLength: 1 }) }),
898
+ // "Rituals": Required({ type: String({ minLength: 1 }) }),
899
+ // "Curses": Required({ type: String({ minLength: 1 }) }),
900
+ // "Elven Magical Songs": Required({ type: String({ minLength: 1 }) }),
901
+ // "Domination Rituals": Required({ type: String({ minLength: 1 }) }),
902
+ // "Magical Dances": Required({ type: String({ minLength: 1 }) }),
903
+ // "Magical Melodies": Required({ type: String({ minLength: 1 }) }),
904
+ // "Jester Tricks": Required({ type: String({ minLength: 1 }) }),
905
+ // "Animist Powers": Required({ type: String({ minLength: 1 }) }),
906
+ // "Geode Rituals": Required({ type: String({ minLength: 1 }) }),
907
+ // "Zibilja Rituals": Required({ type: String({ minLength: 1 }) }),
908
+ // "Mod": Required({ type: String({ minLength: 1 }) }),
909
+ // "Check Modifier": Required({ type: String({ minLength: 1 }) }),
910
+ // "spells.traditions.general": Required({ type: String({ minLength: 1 }) }),
911
+ // "magicalactions.animistforces.tribes.general": Required({ type: String({ minLength: 1 }) }),
912
+ // " (modified by {0})": Required({ type: String({ minLength: 1 }) }),
913
+ // " (− {0})": Required({ type: String({ minLength: 1 }) }),
914
+ // "{0} or {1}, depending on which value is higher": Required({ type: String({ minLength: 1 }) }),
915
+ // "Invocation Difficulty": Required({ type: String({ minLength: 1 }) }),
916
+ // "ID": Required({ type: String({ minLength: 1 }) }),
917
+ // "Creation Difficulty": Required({ type: String({ minLength: 1 }) }),
918
+ // "CD": Required({ type: String({ minLength: 1 }) }),
919
+ // "Effect": Required({ type: String({ minLength: 1 }) }),
920
+ // "Casting Time": Required({ type: String({ minLength: 1 }) }),
921
+ // "Ritual Time": Required({ type: String({ minLength: 1 }) }),
922
+ // "Liturgical Time": Required({ type: String({ minLength: 1 }) }),
923
+ // "Ceremonial Time": Required({ type: String({ minLength: 1 }) }),
924
+ // "AE Cost": Required({ type: String({ minLength: 1 }) }),
925
+ // "KP Cost": Required({ type: String({ minLength: 1 }) }),
926
+ // "Range": Required({ type: String({ minLength: 1 }) }),
927
+ // "Duration": Required({ type: String({ minLength: 1 }) }),
928
+ // "Target Category": Required({ type: String({ minLength: 1 }) }),
929
+ // "Traditions": Required({ type: String({ minLength: 1 }) }),
930
+ // " (you cannot use a modification on this spell’s casting time)": Required({ type: String({ minLength: 1 }) }),
931
+ // " (you cannot use a modification on this spell’s cost)": Required({ type: String({ minLength: 1 }) }),
932
+ // " (you cannot use a modification on this spell’s range)": Required({ type: String({ minLength: 1 }) }),
933
+ // " (you cannot use a modification on this ritual’s ritual time)": Required({ type: String({ minLength: 1 }) }),
934
+ // " (you cannot use a modification on this ritual’s cost)": Required({ type: String({ minLength: 1 }) }),
935
+ // " (you cannot use a modification on this ritual’s range)": Required({ type: String({ minLength: 1 }) }),
936
+ // " (you cannot use a modification on this chant’s liturgical time)": Required({ type: String({ minLength: 1 }) }),
937
+ // " (you cannot use a modification on this chant’s cost)": Required({ type: String({ minLength: 1 }) }),
938
+ // " (you cannot use a modification on this chant’s range)": Required({ type: String({ minLength: 1 }) }),
939
+ // " (you cannot use a modification on this ceremony’s ceremonial time)": Required({ type: String({ minLength: 1 }) }),
940
+ // " (you cannot use a modification on this ceremony’s cost)": Required({ type: String({ minLength: 1 }) }),
941
+ // " (you cannot use a modification on this ceremony’s range)": Required({ type: String({ minLength: 1 }) }),
942
+ // " (cannot modify)": Required({ type: String({ minLength: 1 }) }),
943
+ // "{0} act": Required({ type: String({ minLength: 1 }) }),
944
+ // "act": Required({ type: String({ minLength: 1 }) }),
945
+ // "{0} actions": Required({ type: IncludeIdentifier(PluralizationCategories) }),
946
+ // "actions": Required({ type: String({ minLength: 1 }) }),
947
+ // "{0} s": Required({ type: String({ minLength: 1 }) }),
948
+ // "s": Required({ type: String({ minLength: 1 }) }),
949
+ // "{0} seconds": Required({ type: IncludeIdentifier(PluralizationCategories) }),
950
+ // "seconds": Required({ type: String({ minLength: 1 }) }),
951
+ // "{0} min": Required({ type: String({ minLength: 1 }) }),
952
+ // "min": Required({ type: String({ minLength: 1 }) }),
953
+ // "{0} minutes": Required({ type: IncludeIdentifier(PluralizationCategories) }),
954
+ // "minutes": Required({ type: String({ minLength: 1 }) }),
955
+ // "{0} h": Required({ type: String({ minLength: 1 }) }),
956
+ // "h": Required({ type: String({ minLength: 1 }) }),
957
+ // "{0} hours": Required({ type: IncludeIdentifier(PluralizationCategories) }),
958
+ // "hours": Required({ type: String({ minLength: 1 }) }),
959
+ // "{0} d": Required({ type: String({ minLength: 1 }) }),
960
+ // "d": Required({ type: String({ minLength: 1 }) }),
961
+ // "{0} days": Required({ type: IncludeIdentifier(PluralizationCategories) }),
962
+ // "days": Required({ type: String({ minLength: 1 }) }),
963
+ // "{0} wks.": Required({ type: IncludeIdentifier(PluralizationCategories) }),
964
+ // "wks.": Required({ type: String({ minLength: 1 }) }),
965
+ // "{0} weeks": Required({ type: IncludeIdentifier(PluralizationCategories) }),
966
+ // "weeks": Required({ type: String({ minLength: 1 }) }),
967
+ // "{0} mos.": Required({ type: IncludeIdentifier(PluralizationCategories) }),
968
+ // "mos.": Required({ type: String({ minLength: 1 }) }),
969
+ // "{0} months": Required({ type: IncludeIdentifier(PluralizationCategories) }),
970
+ // "months": Required({ type: String({ minLength: 1 }) }),
971
+ // "{0} yrs.": Required({ type: IncludeIdentifier(PluralizationCategories) }),
972
+ // "yrs.": Required({ type: String({ minLength: 1 }) }),
973
+ // "{0} years": Required({ type: IncludeIdentifier(PluralizationCategories) }),
974
+ // "years": Required({ type: String({ minLength: 1 }) }),
975
+ // "{0} cent.": Required({ type: String({ minLength: 1 }) }),
976
+ // "cent.": Required({ type: String({ minLength: 1 }) }),
977
+ // "{0} centuries": Required({ type: IncludeIdentifier(PluralizationCategories) }),
978
+ // "centuries": Required({ type: String({ minLength: 1 }) }),
979
+ // "{0} SA": Required({ type: String({ minLength: 1 }) }),
980
+ // "{0} seduction actions": Required({ type: IncludeIdentifier(PluralizationCategories) }),
981
+ // "{0} rnds": Required({ type: String({ minLength: 1 }) }),
982
+ // "{0} rounds": Required({ type: IncludeIdentifier(PluralizationCategories) }),
983
+ // "{0} CR": Required({ type: String({ minLength: 1 }) }),
984
+ // "CR": Required({ type: String({ minLength: 1 }) }),
985
+ // "{0} combat rounds": Required({ type: IncludeIdentifier(PluralizationCategories) }),
986
+ // "combat rounds": Required({ type: String({ minLength: 1 }) }),
987
+ // "{0} AE": Required({ type: String({ minLength: 1 }) }),
988
+ // "{0} KP": Required({ type: String({ minLength: 1 }) }),
989
+ // "min. ": Required({ type: String({ minLength: 1 }) }),
990
+ // "at least ": Required({ type: String({ minLength: 1 }) }),
991
+ // "min. {0}": Required({ type: String({ minLength: 1 }) }),
992
+ // "at least {0}": Required({ type: String({ minLength: 1 }) }),
993
+ // "/{0}": Required({ type: String({ minLength: 1 }) }),
994
+ // " per {0}": Required({ type: String({ minLength: 1 }) }),
995
+ // ", minimum of {0}": Required({ type: String({ minLength: 1 }) }),
996
+ // " ({0} perm.)": Required({ type: String({ minLength: 1 }) }),
997
+ // ", {0} of which are permanent": Required({ type: IncludeIdentifier(PluralizationCategories) }),
998
+ // "half of the activation cost": Required({ type: String({ minLength: 1 }) }),
999
+ // " and ": Required({ type: String({ minLength: 1 }) }),
1000
+ // " + ": Required({ type: String({ minLength: 1 }) }),
1001
+ // " or ": Required({ type: String({ minLength: 1 }) }),
1002
+ // " / ": Required({ type: String({ minLength: 1 }) }),
1003
+ // " for ": Required({ type: String({ minLength: 1 }) }),
1004
+ // " (no more than {0})": Required({ type: String({ minLength: 1 }) }),
1005
+ // " (max. {0})": Required({ type: String({ minLength: 1 }) }),
1006
+ // "no more than {0}": Required({ type: String({ minLength: 1 }) }),
1007
+ // "max. {0}": Required({ type: String({ minLength: 1 }) }),
1008
+ // "Immediate": Required({ type: String({ minLength: 1 }) }),
1009
+ // "Permanent": Required({ type: String({ minLength: 1 }) }),
1010
+ // "no more than ": Required({ type: String({ minLength: 1 }) }),
1011
+ // "max. ": Required({ type: String({ minLength: 1 }) }),
1012
+ // "Quality Levels": Required({ type: String({ minLength: 1 }) }),
1013
+ // "QL": Required({ type: String({ minLength: 1 }) }),
1014
+ // "QL {0}": Required({ type: String({ minLength: 1 }) }),
1015
+ // "Skill Points": Required({ type: String({ minLength: 1 }) }),
1016
+ // "SP": Required({ type: String({ minLength: 1 }) }),
1017
+ // "Sustained": Required({ type: String({ minLength: 1 }) }),
1018
+ // "(S)": Required({ type: String({ minLength: 1 }) }),
1019
+ // "{0} yards": Required({ type: IncludeIdentifier(PluralizationCategories) }),
1020
+ // "{0} yd": Required({ type: String({ minLength: 1 }) }),
1021
+ // "{0} miles": Required({ type: IncludeIdentifier(PluralizationCategories) }),
1022
+ // "{0} mi.": Required({ type: String({ minLength: 1 }) }),
1023
+ // "Sight": Required({ type: String({ minLength: 1 }) }),
1024
+ // "Self": Required({ type: String({ minLength: 1 }) }),
1025
+ // "Global": Required({ type: String({ minLength: 1 }) }),
1026
+ // "Touch": Required({ type: String({ minLength: 1 }) }),
1027
+ // "Radius": Required({ type: String({ minLength: 1 }) }),
1028
+ // " (casting)": Required({ type: String({ minLength: 1 }) }),
1029
+ // "Zone": Required({ type: String({ minLength: 1 }) }),
1030
+ // "Liturgical Chants and Ceremonies": Required({ type: String({ minLength: 1 }) }),
1031
+ // "General": Required({ type: String({ minLength: 1 }) }),
1032
+ // "Note": Required({ type: String({ minLength: 1 }) }),
1033
+ // "all": Required({ type: String({ minLength: 1 }) }),
1034
+ // "none": Required({ type: String({ minLength: 1 }) }),
1035
+ // "State": Required({ type: String({ minLength: 1 }) }),
1036
+ // "Social Status {0} or higher": Required({ type: String({ minLength: 1 }) }),
1037
+ // "Person with {0}": Required({ type: String({ minLength: 1 }) }),
1038
+ // "Penis": Required({ type: String({ minLength: 1 }) }),
1039
+ // "Vagina": Required({ type: String({ minLength: 1 }) }),
1040
+ // "the SR for {0} combined must add up to at least {1}": Required({ type: String({ minLength: 1 }) }),
1041
+ // "{0} on at least SR {1}: {2}": Required({ type: String({ minLength: 1 }) }),
1042
+ // "{0} arcane works with the property {1} at SR {2} or higher": Required({ type: String({ minLength: 1 }) }),
1043
+ // "{0} liturgical chants and ceremonies with the aspect {1} at SR {2} or higher": Required({ type: String({ minLength: 1 }) }),
1044
+ // "one of the following skills": Required({ type: String({ minLength: 1 }) }),
1045
+ // "two of the following skills": Required({ type: String({ minLength: 1 }) }),
1046
+ // "three of the following skills": Required({ type: String({ minLength: 1 }) }),
1047
+ // "four of the following skills": Required({ type: String({ minLength: 1 }) }),
1048
+ // "five of the following skills": Required({ type: String({ minLength: 1 }) }),
1049
+ // "six of the following skills": Required({ type: String({ minLength: 1 }) }),
1050
+ // "seven of the following skills": Required({ type: String({ minLength: 1 }) }),
1051
+ // "eight of the following skills": Required({ type: String({ minLength: 1 }) }),
1052
+ // "nine of the following skills": Required({ type: String({ minLength: 1 }) }),
1053
+ // "{0} of the following skills": Required({ type: String({ minLength: 1 }) }),
1054
+ // "one combat technique": Required({ type: String({ minLength: 1 }) }),
1055
+ // "two combat techniques": Required({ type: String({ minLength: 1 }) }),
1056
+ // "three combat techniques": Required({ type: String({ minLength: 1 }) }),
1057
+ // "four combat techniques": Required({ type: String({ minLength: 1 }) }),
1058
+ // "five combat techniques": Required({ type: String({ minLength: 1 }) }),
1059
+ // "six combat techniques": Required({ type: String({ minLength: 1 }) }),
1060
+ // "seven combat techniques": Required({ type: String({ minLength: 1 }) }),
1061
+ // "eight combat techniques": Required({ type: String({ minLength: 1 }) }),
1062
+ // "nine combat techniques": Required({ type: String({ minLength: 1 }) }),
1063
+ // "{0} combat techniques": Required({ type: String({ minLength: 1 }) }),
1064
+ // "one close combat technique": Required({ type: String({ minLength: 1 }) }),
1065
+ // "two close combat techniques": Required({ type: String({ minLength: 1 }) }),
1066
+ // "three close combat techniques": Required({ type: String({ minLength: 1 }) }),
1067
+ // "four close combat techniques": Required({ type: String({ minLength: 1 }) }),
1068
+ // "five close combat techniques": Required({ type: String({ minLength: 1 }) }),
1069
+ // "six close combat techniques": Required({ type: String({ minLength: 1 }) }),
1070
+ // "seven close combat techniques": Required({ type: String({ minLength: 1 }) }),
1071
+ // "eight close combat techniques": Required({ type: String({ minLength: 1 }) }),
1072
+ // "nine close combat techniques": Required({ type: String({ minLength: 1 }) }),
1073
+ // "{0} close combat techniques": Required({ type: String({ minLength: 1 }) }),
1074
+ // "one ranged combat technique": Required({ type: String({ minLength: 1 }) }),
1075
+ // "two ranged combat techniques": Required({ type: String({ minLength: 1 }) }),
1076
+ // "three ranged combat techniques": Required({ type: String({ minLength: 1 }) }),
1077
+ // "four ranged combat techniques": Required({ type: String({ minLength: 1 }) }),
1078
+ // "five ranged combat techniques": Required({ type: String({ minLength: 1 }) }),
1079
+ // "six ranged combat techniques": Required({ type: String({ minLength: 1 }) }),
1080
+ // "seven ranged combat techniques": Required({ type: String({ minLength: 1 }) }),
1081
+ // "eight ranged combat techniques": Required({ type: String({ minLength: 1 }) }),
1082
+ // "nine ranged combat techniques": Required({ type: String({ minLength: 1 }) }),
1083
+ // "{0} ranged combat techniques": Required({ type: String({ minLength: 1 }) }),
1084
+ // "special ability": Required({ type: String({ minLength: 1 }) }),
1085
+ // "no special ability": Required({ type: String({ minLength: 1 }) }),
1086
+ // "Tradition": Required({ type: String({ minLength: 1 }) }),
1087
+ // "Tradition ({0})": Required({ type: String({ minLength: 1 }) }),
1088
+ // "Church": Required({ type: String({ minLength: 1 }) }),
1089
+ // "Shaman": Required({ type: String({ minLength: 1 }) }),
1090
+ // "Tradition must be able to use rituals": Required({ type: String({ minLength: 1 }) }),
1091
+ // "Tradition must be able to bind familiars": Required({ type: String({ minLength: 1 }) }),
1092
+ // "spell enhancement": Required({ type: String({ minLength: 1 }) }),
1093
+ // "liturgical enhancement": Required({ type: String({ minLength: 1 }) }),
1094
+ // "for": Required({ type: String({ minLength: 1 }) }),
1095
+ // "no other ancestor blood advantage": Required({ type: String({ minLength: 1 }) }),
1096
+ // "Race, culture, or profession must have {0} as an automatic or suggested {1}": Required({ type: String({ minLength: 1 }) }),
1097
+ // "advantage": Required({ type: String({ minLength: 1 }) }),
1098
+ // "disadvantage": Required({ type: String({ minLength: 1 }) }),
1099
+ // "domain {0}": Required({ type: String({ minLength: 1 }) }),
1100
+ // "{0} level {1}": Required({ type: String({ minLength: 1 }) }),
1101
+ // "Level {0}:": Required({ type: String({ minLength: 1 }) }),
1102
+ // "inlinewiki.castingtime": Required({ type: String({ minLength: 1 }) }),
1103
+ // "inlinewiki.ritualtime": Required({ type: String({ minLength: 1 }) }),
1104
+ // "inlinewiki.aecost": Required({ type: String({ minLength: 1 }) }),
1105
+ // "inlinewiki.range": Required({ type: String({ minLength: 1 }) }),
1106
+ // "inlinewiki.duration": Required({ type: String({ minLength: 1 }) }),
1107
+ // "inlinewiki.targetcategory": Required({ type: String({ minLength: 1 }) }),
1108
+ // "inlinewiki.property": Required({ type: String({ minLength: 1 }) }),
1109
+ // "inlinewiki.traditions": Required({ type: String({ minLength: 1 }) }),
1110
+ // "inlinewiki.skill": Required({ type: String({ minLength: 1 }) }),
1111
+ // "inlinewiki.lengthoftime": Required({ type: String({ minLength: 1 }) }),
1112
+ // "inlinewiki.musictradition": Required({ type: String({ minLength: 1 }) }),
1113
+ // "inlinewiki.youcannotuseamodificationonthisspellscastingtime": Required({ type: String({ minLength: 1 }) }),
1114
+ // "inlinewiki.youcannotuseamodificationonthisspellsritualtime": Required({ type: String({ minLength: 1 }) }),
1115
+ // "inlinewiki.youcannotuseamodificationonthisspellscost": Required({ type: String({ minLength: 1 }) }),
1116
+ // "inlinewiki.youcannotuseamodificationonthisspellsrange": Required({ type: String({ minLength: 1 }) }),
1117
+ // "inlinewiki.youcannotuseamodificationonthisspellsduration": Required({ type: String({ minLength: 1 }) }),
1118
+ // "inlinewiki.spellenhancements": Required({ type: String({ minLength: 1 }) }),
1119
+ // /**
1120
+ // * - `0`: Enhancement name
1121
+ // * - `1`: Required Skill Rating
1122
+ // * - `2`: AP value
1123
+ // * - `3`: Description
1124
+ // */
1125
+ // "inlinewiki.spellenhancements.title": Required({ type: String({ minLength: 1 }) }),
1126
+ // "inlinewiki.tribaltraditions": Required({ type: String({ minLength: 1 }) }),
1127
+ // "inlinewiki.brew": Required({ type: String({ minLength: 1 }) }),
1128
+ // "inlinewiki.spirithalf": Required({ type: String({ minLength: 1 }) }),
1129
+ // "inlinewiki.spirithalf.short": Required({ type: String({ minLength: 1 }) }),
1130
+ // "inlinewiki.spiritortoughness": Required({ type: String({ minLength: 1 }) }),
1131
+ // "inlinewiki.spiritortoughness.short": Required({ type: String({ minLength: 1 }) }),
1132
+ // "inlinewiki.note": Required({ type: String({ minLength: 1 }) }),
1133
+ // "Blessings": Required({ type: String({ minLength: 1 }) }),
1134
+ // "Ceremonies": Required({ type: String({ minLength: 1 }) }),
1135
+ // "liturgicalchants.addbtn": Required({ type: String({ minLength: 1 }) }),
1136
+ // "liturgicalchants.header.name": Required({ type: String({ minLength: 1 }) }),
1137
+ // "liturgicalchants.header.traditions": Required({ type: String({ minLength: 1 }) }),
1138
+ // "liturgicalchants.header.group": Required({ type: String({ minLength: 1 }) }),
1139
+ // "liturgicalchants.header.skillrating": Required({ type: String({ minLength: 1 }) }),
1140
+ // "liturgicalchants.header.skillrating.tooltip": Required({ type: String({ minLength: 1 }) }),
1141
+ // "liturgicalchants.header.check": Required({ type: String({ minLength: 1 }) }),
1142
+ // "liturgicalchants.header.checkmodifier": Required({ type: String({ minLength: 1 }) }),
1143
+ // "liturgicalchants.header.checkmodifier.tooltip": Required({ type: String({ minLength: 1 }) }),
1144
+ // "liturgicalchants.header.improvementcost": Required({ type: String({ minLength: 1 }) }),
1145
+ // "liturgicalchants.header.improvementcost.tooltip": Required({ type: String({ minLength: 1 }) }),
1146
+ // "liturgicalchants.groups.blessing": Required({ type: String({ minLength: 1 }) }),
1147
+ // "liturgicalchants.aspects.general": Required({ type: String({ minLength: 1 }) }),
1148
+ // "inlinewiki.liturgicaltime": Required({ type: String({ minLength: 1 }) }),
1149
+ // "inlinewiki.ceremonialtime": Required({ type: String({ minLength: 1 }) }),
1150
+ // "inlinewiki.kpcost": Required({ type: String({ minLength: 1 }) }),
1151
+ // "inlinewiki.youcannotuseamodificationonthischantsliturgicaltime": Required({ type: String({ minLength: 1 }) }),
1152
+ // "inlinewiki.youcannotuseamodificationonthischantsceremonialtime": Required({ type: String({ minLength: 1 }) }),
1153
+ // "inlinewiki.youcannotuseamodificationonthischantscost": Required({ type: String({ minLength: 1 }) }),
1154
+ // "inlinewiki.youcannotuseamodificationonthischantsrange": Required({ type: String({ minLength: 1 }) }),
1155
+ // "inlinewiki.youcannotuseamodificationonthischantsduration": Required({ type: String({ minLength: 1 }) }),
1156
+ // "inlinewiki.liturgicalchantenhancements": Required({ type: String({ minLength: 1 }) }),
1157
+ // /**
1158
+ // * - `0`: Enhancement name
1159
+ // * - `1`: Required Skill Rating
1160
+ // * - `2`: AP value
1161
+ // * - `3`: Description
1162
+ // */
1163
+ // "inlinewiki.liturgicalchantenhancements.title": Required({ type: String({ minLength: 1 }) }),
1164
+ // "equipment.header.name": Required({ type: String({ minLength: 1 }) }),
1165
+ // "equipment.header.group": Required({ type: String({ minLength: 1 }) }),
1166
+ // "equipment.addbtn": Required({ type: String({ minLength: 1 }) }),
1167
+ // "equipment.createbtn": Required({ type: String({ minLength: 1 }) }),
1168
+ // "equipment.filters.allcombattechniques": Required({ type: String({ minLength: 1 }) }),
1169
+ // "equipment.purse.title": Required({ type: String({ minLength: 1 }) }),
1170
+ // "equipment.purse.ducats": Required({ type: String({ minLength: 1 }) }),
1171
+ // "equipment.purse.silverthalers": Required({ type: String({ minLength: 1 }) }),
1172
+ // "equipment.purse.halers": Required({ type: String({ minLength: 1 }) }),
1173
+ // "equipment.purse.kreutzers": Required({ type: String({ minLength: 1 }) }),
1174
+ // "equipment.purse.carryingcapacity": Required({ type: String({ minLength: 1 }) }),
1175
+ // "equipment.purse.initialstartingwealthandcarryingcapacity": Required({ type: String({ minLength: 1 }) }),
1176
+ // "equipment.purse.earnpay": Required({ type: String({ minLength: 1 }) }),
1177
+ // "equipment.purse.earn": Required({ type: String({ minLength: 1 }) }),
1178
+ // "equipment.purse.pay": Required({ type: String({ minLength: 1 }) }),
1179
+ // "equipment.purse.notefirst": Required({ type: String({ minLength: 1 }) }),
1180
+ // "equipment.purse.notesecond": Required({ type: String({ minLength: 1 }) }),
1181
+ // "equipment.purse.currentcredit": Required({ type: String({ minLength: 1 }) }),
1182
+ // "equipment.purse.amount": Required({ type: String({ minLength: 1 }) }),
1183
+ // "equipment.dialogs.addedit.damage": Required({ type: String({ minLength: 1 }) }),
1184
+ // "equipment.dialogs.addedit.length": Required({ type: String({ minLength: 1 }) }),
1185
+ // "equipment.dialogs.addedit.range": Required({ type: String({ minLength: 1 }) }),
1186
+ // "equipment.dialogs.addedit.edititem": Required({ type: String({ minLength: 1 }) }),
1187
+ // "equipment.dialogs.addedit.createitem": Required({ type: String({ minLength: 1 }) }),
1188
+ // "equipment.dialogs.addedit.number": Required({ type: String({ minLength: 1 }) }),
1189
+ // "equipment.dialogs.addedit.name": Required({ type: String({ minLength: 1 }) }),
1190
+ // "equipment.dialogs.addedit.price": Required({ type: String({ minLength: 1 }) }),
1191
+ // "equipment.dialogs.addedit.weight": Required({ type: String({ minLength: 1 }) }),
1192
+ // "equipment.dialogs.addedit.carriedwhere": Required({ type: String({ minLength: 1 }) }),
1193
+ // "equipment.dialogs.addedit.itemgroup": Required({ type: String({ minLength: 1 }) }),
1194
+ // "equipment.dialogs.addedit.itemgrouphint": Required({ type: String({ minLength: 1 }) }),
1195
+ // "equipment.dialogs.addedit.improvisedweapon": Required({ type: String({ minLength: 1 }) }),
1196
+ // "equipment.dialogs.addedit.improvisedweapongroup": Required({ type: String({ minLength: 1 }) }),
1197
+ // "equipment.dialogs.addedit.template": Required({ type: String({ minLength: 1 }) }),
1198
+ // "equipment.dialogs.addedit.combattechnique": Required({ type: String({ minLength: 1 }) }),
1199
+ // "equipment.dialogs.addedit.primaryattributeanddamagethreshold": Required({ type: String({ minLength: 1 }) }),
1200
+ // "equipment.dialogs.addedit.primaryattribute": Required({ type: String({ minLength: 1 }) }),
1201
+ // "equipment.dialogs.addedit.primaryattribute.short": Required({ type: String({ minLength: 1 }) }),
1202
+ // "equipment.dialogs.addedit.damagethreshold": Required({ type: String({ minLength: 1 }) }),
1203
+ // "equipment.dialogs.addedit.separatedamagethresholds": Required({ type: String({ minLength: 1 }) }),
1204
+ // "equipment.dialogs.addedit.breakingpointratingmodifier": Required({ type: String({ minLength: 1 }) }),
1205
+ // "equipment.dialogs.addedit.damaged": Required({ type: String({ minLength: 1 }) }),
1206
+ // "equipment.dialogs.addedit.reach": Required({ type: String({ minLength: 1 }) }),
1207
+ // "equipment.dialogs.addedit.attackparrymodifier": Required({ type: String({ minLength: 1 }) }),
1208
+ // "equipment.dialogs.addedit.structurepoints": Required({ type: String({ minLength: 1 }) }),
1209
+ // "equipment.dialogs.addedit.lengthwithunit": Required({ type: String({ minLength: 1 }) }),
1210
+ // "equipment.dialogs.addedit.parryingweapon": Required({ type: String({ minLength: 1 }) }),
1211
+ // "equipment.dialogs.addedit.twohandedweapon": Required({ type: String({ minLength: 1 }) }),
1212
+ // "equipment.dialogs.addedit.reloadtime": Required({ type: String({ minLength: 1 }) }),
1213
+ // "equipment.dialogs.addedit.rangeclose": Required({ type: String({ minLength: 1 }) }),
1214
+ // "equipment.dialogs.addedit.rangemedium": Required({ type: String({ minLength: 1 }) }),
1215
+ // "equipment.dialogs.addedit.rangefar": Required({ type: String({ minLength: 1 }) }),
1216
+ // "equipment.dialogs.addedit.ammunition": Required({ type: String({ minLength: 1 }) }),
1217
+ // "equipment.dialogs.addedit.protection": Required({ type: String({ minLength: 1 }) }),
1218
+ // "equipment.dialogs.addedit.encumbrance": Required({ type: String({ minLength: 1 }) }),
1219
+ // "equipment.dialogs.addedit.armortype": Required({ type: String({ minLength: 1 }) }),
1220
+ // "equipment.dialogs.addedit.sturdinessmodifier": Required({ type: String({ minLength: 1 }) }),
1221
+ // "equipment.dialogs.addedit.wear": Required({ type: String({ minLength: 1 }) }),
1222
+ // "equipment.dialogs.addedit.hitzonearmoronly": Required({ type: String({ minLength: 1 }) }),
1223
+ // "equipment.dialogs.addedit.movementmodifier": Required({ type: String({ minLength: 1 }) }),
1224
+ // "equipment.dialogs.addedit.initiativemodifier": Required({ type: String({ minLength: 1 }) }),
1225
+ // "equipment.dialogs.addedit.additionalpenalties": Required({ type: String({ minLength: 1 }) }),
1226
+ // "hitzonearmors.header.name": Required({ type: String({ minLength: 1 }) }),
1227
+ // "hitzonearmors.createbtn": Required({ type: String({ minLength: 1 }) }),
1228
+ // "hitzonearmors.dialogs.addedit.name": Required({ type: String({ minLength: 1 }) }),
1229
+ // "hitzonearmors.dialogs.addedit.edithitzonearmor": Required({ type: String({ minLength: 1 }) }),
1230
+ // "hitzonearmors.dialogs.addedit.createhitzonearmor": Required({ type: String({ minLength: 1 }) }),
1231
+ // "hitzonearmors.dialogs.addedit.head": Required({ type: String({ minLength: 1 }) }),
1232
+ // "hitzonearmors.dialogs.addedit.torso": Required({ type: String({ minLength: 1 }) }),
1233
+ // "hitzonearmors.dialogs.addedit.leftarm": Required({ type: String({ minLength: 1 }) }),
1234
+ // "hitzonearmors.dialogs.addedit.rightarm": Required({ type: String({ minLength: 1 }) }),
1235
+ // "hitzonearmors.dialogs.addedit.leftleg": Required({ type: String({ minLength: 1 }) }),
1236
+ // "hitzonearmors.dialogs.addedit.rightleg": Required({ type: String({ minLength: 1 }) }),
1237
+ // "hitzonearmors.dialogs.addedit.wear": Required({ type: String({ minLength: 1 }) }),
1238
+ // "inlinewiki.equipment.weight": Required({ type: String({ minLength: 1 }) }),
1239
+ // "inlinewiki.equipment.price": Required({ type: String({ minLength: 1 }) }),
1240
+ // "inlinewiki.equipment.ammunition": Required({ type: String({ minLength: 1 }) }),
1241
+ // "inlinewiki.equipment.combattechnique": Required({ type: String({ minLength: 1 }) }),
1242
+ // "inlinewiki.equipment.damage": Required({ type: String({ minLength: 1 }) }),
1243
+ // "inlinewiki.equipment.primaryattributeanddamagethreshold": Required({ type: String({ minLength: 1 }) }),
1244
+ // "inlinewiki.equipment.attackparrymodifier": Required({ type: String({ minLength: 1 }) }),
1245
+ // "inlinewiki.equipment.reach": Required({ type: String({ minLength: 1 }) }),
1246
+ // "inlinewiki.equipment.length": Required({ type: String({ minLength: 1 }) }),
1247
+ // "inlinewiki.equipment.reloadtime": Required({ type: String({ minLength: 1 }) }),
1248
+ // "inlinewiki.equipment.range": Required({ type: String({ minLength: 1 }) }),
1249
+ // /**
1250
+ // * - `0`: Number of actions
1251
+ // */
1252
+ // "inlinewiki.equipment.actionsvalue": Required({ type: String({ minLength: 1 }) }),
1253
+ // "inlinewiki.equipment.protection": Required({ type: String({ minLength: 1 }) }),
1254
+ // "inlinewiki.equipment.encumbrance": Required({ type: String({ minLength: 1 }) }),
1255
+ // "inlinewiki.equipment.additionalpenalties": Required({ type: String({ minLength: 1 }) }),
1256
+ // "inlinewiki.equipment.note": Required({ type: String({ minLength: 1 }) }),
1257
+ // "inlinewiki.equipment.rules": Required({ type: String({ minLength: 1 }) }),
1258
+ // "inlinewiki.equipment.weaponadvantage": Required({ type: String({ minLength: 1 }) }),
1259
+ // "inlinewiki.equipment.weapondisadvantage": Required({ type: String({ minLength: 1 }) }),
1260
+ // "inlinewiki.equipment.armoradvantage": Required({ type: String({ minLength: 1 }) }),
1261
+ // "inlinewiki.equipment.armordisadvantage": Required({ type: String({ minLength: 1 }) }),
1262
+ // "pets.dialogs.addedit.deleteavatarbtn": Required({ type: String({ minLength: 1 }) }),
1263
+ // "pets.dialogs.addedit.name": Required({ type: String({ minLength: 1 }) }),
1264
+ // "pets.dialogs.addedit.sizecategory": Required({ type: String({ minLength: 1 }) }),
1265
+ // "pets.dialogs.addedit.type": Required({ type: String({ minLength: 1 }) }),
1266
+ // "pets.dialogs.addedit.apspent": Required({ type: String({ minLength: 1 }) }),
1267
+ // "pets.dialogs.addedit.totalap": Required({ type: String({ minLength: 1 }) }),
1268
+ // "pets.dialogs.addedit.protection": Required({ type: String({ minLength: 1 }) }),
1269
+ // "pets.dialogs.addedit.attackname": Required({ type: String({ minLength: 1 }) }),
1270
+ // "pets.dialogs.addedit.attack": Required({ type: String({ minLength: 1 }) }),
1271
+ // "pets.dialogs.addedit.parry": Required({ type: String({ minLength: 1 }) }),
1272
+ // "pets.dialogs.addedit.damagepoints": Required({ type: String({ minLength: 1 }) }),
1273
+ // "pets.dialogs.addedit.reach": Required({ type: String({ minLength: 1 }) }),
1274
+ // "pets.dialogs.addedit.actions": Required({ type: String({ minLength: 1 }) }),
1275
+ // "pets.dialogs.addedit.skills": Required({ type: String({ minLength: 1 }) }),
1276
+ // "pets.dialogs.addedit.specialabilities": Required({ type: String({ minLength: 1 }) }),
1277
+ // "pets.dialogs.addedit.notes": Required({ type: String({ minLength: 1 }) }),
1278
+ // "pets.dialogs.addedit.addbtn": Required({ type: String({ minLength: 1 }) }),
1279
+ // "pets.dialogs.addedit.savebtn": Required({ type: String({ minLength: 1 }) }),
1280
+ // // Inline Library
1281
+ // "Show details": Required({ type: String({ minLength: 1 }) }),
1282
+ // // Experience Level
1283
+ // "Maximum Attribute Value": Required({ type: String({ minLength: 1 }) }),
1284
+ // "Maximum Skill Value": Required({ type: String({ minLength: 1 }) }),
1285
+ // "Maximum Combat Technique": Required({ type: String({ minLength: 1 }) }),
1286
+ // "Maximum Attribute Total": Required({ type: String({ minLength: 1 }) }),
1287
+ // "Number of Spells/Liturgical Chants": Required({ type: String({ minLength: 1 }) }),
1288
+ // "Number from other Traditions": Required({ type: String({ minLength: 1 }) }),
1289
+ // // Skill
1290
+ // "Check": Required({ type: String({ minLength: 1 }) }),
1291
+ // "Applications": Required({ type: String({ minLength: 1 }) }),
1292
+ // "Encumbrance": Required({ type: String({ minLength: 1 }) }),
1293
+ // "Yes": Required({ type: String({ minLength: 1 }) }),
1294
+ // "No": Required({ type: String({ minLength: 1 }) }),
1295
+ // "Maybe": Required({ type: String({ minLength: 1 }) }),
1296
+ // "Tools": Required({ type: String({ minLength: 1 }) }),
1297
+ // "Quality": Required({ type: String({ minLength: 1 }) }),
1298
+ // "Failed Check": Required({ type: String({ minLength: 1 }) }),
1299
+ // "Critical Success": Required({ type: String({ minLength: 1 }) }),
1300
+ // "Botch": Required({ type: String({ minLength: 1 }) }),
1301
+ // "Improvement Cost": Required({ type: String({ minLength: 1 }) }),
1302
+ // "Front Cover Inside": Required({ type: String({ minLength: 1 }) }),
1303
+ // "Back Cover Inside": Required({ type: String({ minLength: 1 }) }),
1304
+ // "since the {0}. printing": Required({ type: IncludeIdentifier(PluralizationCategories) }),
1305
+ // "removed in {0}. printing": Required({ type: IncludeIdentifier(PluralizationCategories) }),
1306
+ // }),
1307
+ // }),
1308
+ }),
1309
+ });
1310
+ export const NestedLocaleMap = (MemberDeclCreator, name, type) => MemberDeclCreator({
1311
+ comment: "All translations for the entry, identified by IETF language tag (BCP47).",
1312
+ type: NestedEntityMap({
1313
+ name,
1314
+ secondaryEntity: Locale,
1315
+ type,
1316
+ }),
1317
+ });