@optolith/database-schema 0.77.0 → 0.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/gen/types.d.ts +299 -3
  3. package/lib/cache/activatableSelectOptions.d.ts +2 -2
  4. package/lib/cache/activatableSelectOptions.js +2 -58
  5. package/lib/main.js +2 -0
  6. package/lib/types/Attribute.js +1 -3
  7. package/lib/types/Culture.d.ts +1 -0
  8. package/lib/types/Culture.js +5 -1
  9. package/lib/types/DerivedCharacteristic.js +1 -3
  10. package/lib/types/Locale.d.ts +10 -0
  11. package/lib/types/Locale.js +11 -0
  12. package/lib/types/Profession.d.ts +178 -154
  13. package/lib/types/Profession.js +40 -1
  14. package/lib/types/Race.d.ts +1 -0
  15. package/lib/types/Race.js +10 -0
  16. package/lib/types/SkillGroup.js +1 -3
  17. package/lib/types/SocialStatus.js +1 -0
  18. package/lib/types/Talisman.js +1 -1
  19. package/lib/types/_ActivatableSelectOptions.d.ts +10 -0
  20. package/lib/types/_ActivatableSelectOptions.js +40 -0
  21. package/lib/types/_Identifier.d.ts +2 -0
  22. package/lib/types/_Identifier.js +4 -0
  23. package/lib/types/equipment/item/BandageOrRemedy.js +1 -1
  24. package/lib/types/equipment/item/CeremonialItem.js +1 -1
  25. package/lib/types/equipment/item/Clothes.js +1 -1
  26. package/lib/types/equipment/item/Container.js +1 -1
  27. package/lib/types/equipment/item/EquipmentCategory.d.ts +121 -0
  28. package/lib/types/equipment/item/EquipmentCategory.js +131 -0
  29. package/lib/types/equipment/item/EquipmentOfBlessedOnes.js +1 -1
  30. package/lib/types/equipment/item/IlluminationLightSource.js +1 -1
  31. package/lib/types/equipment/item/IlluminationRefillOrSupply.js +1 -1
  32. package/lib/types/equipment/item/Item.d.ts +287 -0
  33. package/lib/types/equipment/item/Item.js +167 -0
  34. package/lib/types/equipment/item/Liebesspielzeug.js +1 -1
  35. package/lib/types/equipment/item/LuxuryGood.js +1 -1
  36. package/lib/types/equipment/item/MagicalArtifact.js +1 -1
  37. package/lib/types/equipment/item/MusicalInstrument.js +1 -1
  38. package/lib/types/equipment/item/TravelGearOrTool.js +1 -1
  39. package/lib/types/equipment/item/Weapon.js +1 -1
  40. package/lib/types/equipment/item/WeaponAccessory.js +1 -1
  41. package/lib/types/equipment/item/_Item.js +1 -1
  42. package/lib/types/equipment/item/_Weapon.d.ts +2 -2
  43. package/lib/types/equipment/item/_Weapon.js +7 -4
  44. package/lib/types/equipment/item/sub/Reach.js +1 -3
  45. package/lib/types/index.d.ts +2 -0
  46. package/lib/types/index.js +2 -0
  47. package/lib/types/prerequisites/single/ActivatablePrerequisite.js +2 -0
  48. package/package.json +9 -9
@@ -912,6 +912,9 @@ export const Locale = DB.Entity(import.meta.url, {
912
912
  "Animist Powers": null,
913
913
  "Geode Rituals": null,
914
914
  "Zibilja Rituals": null,
915
+ "Bannzeichen": null,
916
+ "Goblin Rituals": null,
917
+ "Magical Runes": null,
915
918
  "Mod": null,
916
919
  "Check Modifier": null,
917
920
  "spells.traditions.general": null,
@@ -1618,6 +1621,11 @@ export const Locale = DB.Entity(import.meta.url, {
1618
1621
  ".input {$count :number} {{check required every {$count}. application in the same month}}": null,
1619
1622
  "see {$link}": null,
1620
1623
  "CoD": null,
1624
+ // plants
1625
+ "Search Difficulty": null,
1626
+ "Identification Difficulty": null,
1627
+ "Plant Applications": null,
1628
+ "Remedies and Traditions": null,
1621
1629
  // books
1622
1630
  "Romance Novel": null,
1623
1631
  "Poetry": null,
@@ -1719,6 +1727,8 @@ export const Locale = DB.Entity(import.meta.url, {
1719
1727
  "Variants": null,
1720
1728
  "Languages and Literacy totaling {$apValue} AP": null,
1721
1729
  "no Languages and Literacy totaling {$apValue} AP": null,
1730
+ "Languages totaling {$apValue} AP": null,
1731
+ "no Languages totaling {$apValue} AP": null,
1722
1732
  "Skill Specialization {$possibleSkills}": null,
1723
1733
  "no Skill Specialization {$possibleSkills}": null,
1724
1734
  "Skill Specialization for a {$skillOfGroup}": null,
@@ -1745,6 +1755,7 @@ export const Locale = DB.Entity(import.meta.url, {
1745
1755
  "except for {$list :list type=conjunction}": null,
1746
1756
  "depends on selected tradition": null,
1747
1757
  "Additional Prerequisites": null,
1758
+ "no changes": null,
1748
1759
  // Enhancements
1749
1760
  "Enhancements": null,
1750
1761
  "SR {$value}": null,
@@ -49,6 +49,7 @@ export declare const Profession: DB.Entity<"Profession", {
49
49
  Group: DB.EnumCase<DB.ReferenceIdentifier>;
50
50
  }, []>>, false>;
51
51
  languages_scripts: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"LanguagesScriptsOptions", DB.Object<{
52
+ includeScripts: DB.MemberDecl<DB.Boolean, true>;
52
53
  ap_value: DB.MemberDecl<DB.Integer, true>;
53
54
  }>, []>>, false>;
54
55
  combat_techniques: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CombatTechniquesOptions", DB.Object<{
@@ -149,31 +150,34 @@ export declare const Profession: DB.Entity<"Profession", {
149
150
  Vision: DB.EnumCase<DB.ReferenceIdentifier>;
150
151
  }, []>>, true>;
151
152
  level: DB.MemberDecl<DB.Integer, false>;
152
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
153
- General: DB.EnumCase<DB.ReferenceIdentifier>;
154
- Race: DB.EnumCase<DB.ReferenceIdentifier>;
155
- Skill: DB.EnumCase<DB.ReferenceIdentifier>;
156
- SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
157
- CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
158
- RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
159
- Property: DB.EnumCase<DB.ReferenceIdentifier>;
160
- Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
161
- Disease: DB.EnumCase<DB.ReferenceIdentifier>;
162
- Poison: DB.EnumCase<DB.ReferenceIdentifier>;
163
- Language: DB.EnumCase<DB.ReferenceIdentifier>;
164
- AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
165
- LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
166
- Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
167
- Spell: DB.EnumCase<DB.ReferenceIdentifier>;
168
- Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
169
- TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
170
- ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
171
- ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
172
- Element: DB.EnumCase<DB.ReferenceIdentifier>;
153
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityOption", {
154
+ Identifier: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
155
+ General: DB.EnumCase<DB.ReferenceIdentifier>;
156
+ Race: DB.EnumCase<DB.ReferenceIdentifier>;
157
+ Skill: DB.EnumCase<DB.ReferenceIdentifier>;
158
+ SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
159
+ CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
160
+ RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
161
+ Property: DB.EnumCase<DB.ReferenceIdentifier>;
162
+ Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
163
+ Disease: DB.EnumCase<DB.ReferenceIdentifier>;
164
+ Poison: DB.EnumCase<DB.ReferenceIdentifier>;
165
+ Language: DB.EnumCase<DB.ReferenceIdentifier>;
166
+ AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
167
+ LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
168
+ Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
169
+ Spell: DB.EnumCase<DB.ReferenceIdentifier>;
170
+ Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
171
+ TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
172
+ ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
173
+ ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
174
+ Element: DB.EnumCase<DB.ReferenceIdentifier>;
175
+ }, []>>>;
176
+ Select: DB.EnumCase<null>;
173
177
  }, []>>>, false>;
174
178
  }>, []>>>;
175
179
  Selection: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelection", DB.Object<{
176
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ConstantProfessionSpecialAbility", DB.Object<{
180
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelectionItem", DB.Object<{
177
181
  id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityIdentifier", {
178
182
  Enhancement: DB.EnumCase<DB.ReferenceIdentifier>;
179
183
  ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
@@ -416,31 +420,34 @@ export declare const Profession: DB.Entity<"Profession", {
416
420
  Vision: DB.EnumCase<DB.ReferenceIdentifier>;
417
421
  }, []>>, true>;
418
422
  level: DB.MemberDecl<DB.Integer, false>;
419
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
420
- General: DB.EnumCase<DB.ReferenceIdentifier>;
421
- Race: DB.EnumCase<DB.ReferenceIdentifier>;
422
- Skill: DB.EnumCase<DB.ReferenceIdentifier>;
423
- SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
424
- CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
425
- RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
426
- Property: DB.EnumCase<DB.ReferenceIdentifier>;
427
- Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
428
- Disease: DB.EnumCase<DB.ReferenceIdentifier>;
429
- Poison: DB.EnumCase<DB.ReferenceIdentifier>;
430
- Language: DB.EnumCase<DB.ReferenceIdentifier>;
431
- AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
432
- LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
433
- Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
434
- Spell: DB.EnumCase<DB.ReferenceIdentifier>;
435
- Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
436
- TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
437
- ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
438
- ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
439
- Element: DB.EnumCase<DB.ReferenceIdentifier>;
423
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityOption", {
424
+ Identifier: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
425
+ General: DB.EnumCase<DB.ReferenceIdentifier>;
426
+ Race: DB.EnumCase<DB.ReferenceIdentifier>;
427
+ Skill: DB.EnumCase<DB.ReferenceIdentifier>;
428
+ SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
429
+ CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
430
+ RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
431
+ Property: DB.EnumCase<DB.ReferenceIdentifier>;
432
+ Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
433
+ Disease: DB.EnumCase<DB.ReferenceIdentifier>;
434
+ Poison: DB.EnumCase<DB.ReferenceIdentifier>;
435
+ Language: DB.EnumCase<DB.ReferenceIdentifier>;
436
+ AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
437
+ LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
438
+ Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
439
+ Spell: DB.EnumCase<DB.ReferenceIdentifier>;
440
+ Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
441
+ TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
442
+ ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
443
+ ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
444
+ Element: DB.EnumCase<DB.ReferenceIdentifier>;
445
+ }, []>>>;
446
+ Select: DB.EnumCase<null>;
440
447
  }, []>>>, false>;
441
448
  }>, []>>>;
442
449
  Selection: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelection", DB.Object<{
443
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ConstantProfessionSpecialAbility", DB.Object<{
450
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelectionItem", DB.Object<{
444
451
  id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityIdentifier", {
445
452
  Enhancement: DB.EnumCase<DB.ReferenceIdentifier>;
446
453
  ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
@@ -837,6 +844,7 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
837
844
  Group: DB.EnumCase<DB.ReferenceIdentifier>;
838
845
  }, []>>, false>;
839
846
  languages_scripts: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"LanguagesScriptsOptions", DB.Object<{
847
+ includeScripts: DB.MemberDecl<DB.Boolean, true>;
840
848
  ap_value: DB.MemberDecl<DB.Integer, true>;
841
849
  }>, []>>, false>;
842
850
  combat_techniques: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CombatTechniquesOptions", DB.Object<{
@@ -937,31 +945,34 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
937
945
  Vision: DB.EnumCase<DB.ReferenceIdentifier>;
938
946
  }, []>>, true>;
939
947
  level: DB.MemberDecl<DB.Integer, false>;
940
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
941
- General: DB.EnumCase<DB.ReferenceIdentifier>;
942
- Race: DB.EnumCase<DB.ReferenceIdentifier>;
943
- Skill: DB.EnumCase<DB.ReferenceIdentifier>;
944
- SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
945
- CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
946
- RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
947
- Property: DB.EnumCase<DB.ReferenceIdentifier>;
948
- Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
949
- Disease: DB.EnumCase<DB.ReferenceIdentifier>;
950
- Poison: DB.EnumCase<DB.ReferenceIdentifier>;
951
- Language: DB.EnumCase<DB.ReferenceIdentifier>;
952
- AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
953
- LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
954
- Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
955
- Spell: DB.EnumCase<DB.ReferenceIdentifier>;
956
- Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
957
- TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
958
- ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
959
- ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
960
- Element: DB.EnumCase<DB.ReferenceIdentifier>;
948
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityOption", {
949
+ Identifier: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
950
+ General: DB.EnumCase<DB.ReferenceIdentifier>;
951
+ Race: DB.EnumCase<DB.ReferenceIdentifier>;
952
+ Skill: DB.EnumCase<DB.ReferenceIdentifier>;
953
+ SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
954
+ CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
955
+ RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
956
+ Property: DB.EnumCase<DB.ReferenceIdentifier>;
957
+ Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
958
+ Disease: DB.EnumCase<DB.ReferenceIdentifier>;
959
+ Poison: DB.EnumCase<DB.ReferenceIdentifier>;
960
+ Language: DB.EnumCase<DB.ReferenceIdentifier>;
961
+ AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
962
+ LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
963
+ Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
964
+ Spell: DB.EnumCase<DB.ReferenceIdentifier>;
965
+ Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
966
+ TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
967
+ ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
968
+ ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
969
+ Element: DB.EnumCase<DB.ReferenceIdentifier>;
970
+ }, []>>>;
971
+ Select: DB.EnumCase<null>;
961
972
  }, []>>>, false>;
962
973
  }>, []>>>;
963
974
  Selection: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelection", DB.Object<{
964
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ConstantProfessionSpecialAbility", DB.Object<{
975
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelectionItem", DB.Object<{
965
976
  id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityIdentifier", {
966
977
  Enhancement: DB.EnumCase<DB.ReferenceIdentifier>;
967
978
  ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
@@ -1204,31 +1215,34 @@ export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
1204
1215
  Vision: DB.EnumCase<DB.ReferenceIdentifier>;
1205
1216
  }, []>>, true>;
1206
1217
  level: DB.MemberDecl<DB.Integer, false>;
1207
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
1208
- General: DB.EnumCase<DB.ReferenceIdentifier>;
1209
- Race: DB.EnumCase<DB.ReferenceIdentifier>;
1210
- Skill: DB.EnumCase<DB.ReferenceIdentifier>;
1211
- SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
1212
- CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1213
- RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1214
- Property: DB.EnumCase<DB.ReferenceIdentifier>;
1215
- Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
1216
- Disease: DB.EnumCase<DB.ReferenceIdentifier>;
1217
- Poison: DB.EnumCase<DB.ReferenceIdentifier>;
1218
- Language: DB.EnumCase<DB.ReferenceIdentifier>;
1219
- AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
1220
- LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
1221
- Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
1222
- Spell: DB.EnumCase<DB.ReferenceIdentifier>;
1223
- Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
1224
- TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
1225
- ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
1226
- ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
1227
- Element: DB.EnumCase<DB.ReferenceIdentifier>;
1218
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityOption", {
1219
+ Identifier: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
1220
+ General: DB.EnumCase<DB.ReferenceIdentifier>;
1221
+ Race: DB.EnumCase<DB.ReferenceIdentifier>;
1222
+ Skill: DB.EnumCase<DB.ReferenceIdentifier>;
1223
+ SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
1224
+ CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1225
+ RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1226
+ Property: DB.EnumCase<DB.ReferenceIdentifier>;
1227
+ Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
1228
+ Disease: DB.EnumCase<DB.ReferenceIdentifier>;
1229
+ Poison: DB.EnumCase<DB.ReferenceIdentifier>;
1230
+ Language: DB.EnumCase<DB.ReferenceIdentifier>;
1231
+ AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
1232
+ LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
1233
+ Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
1234
+ Spell: DB.EnumCase<DB.ReferenceIdentifier>;
1235
+ Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
1236
+ TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
1237
+ ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
1238
+ ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
1239
+ Element: DB.EnumCase<DB.ReferenceIdentifier>;
1240
+ }, []>>>;
1241
+ Select: DB.EnumCase<null>;
1228
1242
  }, []>>>, false>;
1229
1243
  }>, []>>>;
1230
1244
  Selection: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelection", DB.Object<{
1231
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ConstantProfessionSpecialAbility", DB.Object<{
1245
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelectionItem", DB.Object<{
1232
1246
  id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityIdentifier", {
1233
1247
  Enhancement: DB.EnumCase<DB.ReferenceIdentifier>;
1234
1248
  ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
@@ -1617,6 +1631,7 @@ export declare const ProfessionPackage: DB.Entity<"ProfessionPackage", {
1617
1631
  Group: DB.EnumCase<DB.ReferenceIdentifier>;
1618
1632
  }, []>>, false>;
1619
1633
  languages_scripts: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"LanguagesScriptsOptions", DB.Object<{
1634
+ includeScripts: DB.MemberDecl<DB.Boolean, true>;
1620
1635
  ap_value: DB.MemberDecl<DB.Integer, true>;
1621
1636
  }>, []>>, false>;
1622
1637
  combat_techniques: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"CombatTechniquesOptions", DB.Object<{
@@ -1717,31 +1732,34 @@ export declare const ProfessionPackage: DB.Entity<"ProfessionPackage", {
1717
1732
  Vision: DB.EnumCase<DB.ReferenceIdentifier>;
1718
1733
  }, []>>, true>;
1719
1734
  level: DB.MemberDecl<DB.Integer, false>;
1720
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
1721
- General: DB.EnumCase<DB.ReferenceIdentifier>;
1722
- Race: DB.EnumCase<DB.ReferenceIdentifier>;
1723
- Skill: DB.EnumCase<DB.ReferenceIdentifier>;
1724
- SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
1725
- CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1726
- RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1727
- Property: DB.EnumCase<DB.ReferenceIdentifier>;
1728
- Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
1729
- Disease: DB.EnumCase<DB.ReferenceIdentifier>;
1730
- Poison: DB.EnumCase<DB.ReferenceIdentifier>;
1731
- Language: DB.EnumCase<DB.ReferenceIdentifier>;
1732
- AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
1733
- LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
1734
- Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
1735
- Spell: DB.EnumCase<DB.ReferenceIdentifier>;
1736
- Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
1737
- TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
1738
- ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
1739
- ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
1740
- Element: DB.EnumCase<DB.ReferenceIdentifier>;
1735
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityOption", {
1736
+ Identifier: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
1737
+ General: DB.EnumCase<DB.ReferenceIdentifier>;
1738
+ Race: DB.EnumCase<DB.ReferenceIdentifier>;
1739
+ Skill: DB.EnumCase<DB.ReferenceIdentifier>;
1740
+ SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
1741
+ CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1742
+ RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1743
+ Property: DB.EnumCase<DB.ReferenceIdentifier>;
1744
+ Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
1745
+ Disease: DB.EnumCase<DB.ReferenceIdentifier>;
1746
+ Poison: DB.EnumCase<DB.ReferenceIdentifier>;
1747
+ Language: DB.EnumCase<DB.ReferenceIdentifier>;
1748
+ AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
1749
+ LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
1750
+ Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
1751
+ Spell: DB.EnumCase<DB.ReferenceIdentifier>;
1752
+ Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
1753
+ TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
1754
+ ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
1755
+ ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
1756
+ Element: DB.EnumCase<DB.ReferenceIdentifier>;
1757
+ }, []>>>;
1758
+ Select: DB.EnumCase<null>;
1741
1759
  }, []>>>, false>;
1742
1760
  }>, []>>>;
1743
1761
  Selection: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelection", DB.Object<{
1744
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ConstantProfessionSpecialAbility", DB.Object<{
1762
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelectionItem", DB.Object<{
1745
1763
  id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityIdentifier", {
1746
1764
  Enhancement: DB.EnumCase<DB.ReferenceIdentifier>;
1747
1765
  ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
@@ -1984,31 +2002,34 @@ export declare const ProfessionPackage: DB.Entity<"ProfessionPackage", {
1984
2002
  Vision: DB.EnumCase<DB.ReferenceIdentifier>;
1985
2003
  }, []>>, true>;
1986
2004
  level: DB.MemberDecl<DB.Integer, false>;
1987
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
1988
- General: DB.EnumCase<DB.ReferenceIdentifier>;
1989
- Race: DB.EnumCase<DB.ReferenceIdentifier>;
1990
- Skill: DB.EnumCase<DB.ReferenceIdentifier>;
1991
- SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
1992
- CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1993
- RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
1994
- Property: DB.EnumCase<DB.ReferenceIdentifier>;
1995
- Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
1996
- Disease: DB.EnumCase<DB.ReferenceIdentifier>;
1997
- Poison: DB.EnumCase<DB.ReferenceIdentifier>;
1998
- Language: DB.EnumCase<DB.ReferenceIdentifier>;
1999
- AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
2000
- LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
2001
- Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
2002
- Spell: DB.EnumCase<DB.ReferenceIdentifier>;
2003
- Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
2004
- TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
2005
- ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
2006
- ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
2007
- Element: DB.EnumCase<DB.ReferenceIdentifier>;
2005
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityOption", {
2006
+ Identifier: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
2007
+ General: DB.EnumCase<DB.ReferenceIdentifier>;
2008
+ Race: DB.EnumCase<DB.ReferenceIdentifier>;
2009
+ Skill: DB.EnumCase<DB.ReferenceIdentifier>;
2010
+ SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
2011
+ CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
2012
+ RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
2013
+ Property: DB.EnumCase<DB.ReferenceIdentifier>;
2014
+ Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
2015
+ Disease: DB.EnumCase<DB.ReferenceIdentifier>;
2016
+ Poison: DB.EnumCase<DB.ReferenceIdentifier>;
2017
+ Language: DB.EnumCase<DB.ReferenceIdentifier>;
2018
+ AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
2019
+ LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
2020
+ Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
2021
+ Spell: DB.EnumCase<DB.ReferenceIdentifier>;
2022
+ Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
2023
+ TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
2024
+ ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
2025
+ ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
2026
+ Element: DB.EnumCase<DB.ReferenceIdentifier>;
2027
+ }, []>>>;
2028
+ Select: DB.EnumCase<null>;
2008
2029
  }, []>>>, false>;
2009
2030
  }>, []>>>;
2010
2031
  Selection: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelection", DB.Object<{
2011
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ConstantProfessionSpecialAbility", DB.Object<{
2032
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelectionItem", DB.Object<{
2012
2033
  id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityIdentifier", {
2013
2034
  Enhancement: DB.EnumCase<DB.ReferenceIdentifier>;
2014
2035
  ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
@@ -2261,31 +2282,34 @@ export declare const ProfessionVariant: DB.Entity<"ProfessionVariant", {
2261
2282
  Vision: DB.EnumCase<DB.ReferenceIdentifier>;
2262
2283
  }, []>>, true>;
2263
2284
  level: DB.MemberDecl<DB.Integer, false>;
2264
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
2265
- General: DB.EnumCase<DB.ReferenceIdentifier>;
2266
- Race: DB.EnumCase<DB.ReferenceIdentifier>;
2267
- Skill: DB.EnumCase<DB.ReferenceIdentifier>;
2268
- SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
2269
- CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
2270
- RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
2271
- Property: DB.EnumCase<DB.ReferenceIdentifier>;
2272
- Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
2273
- Disease: DB.EnumCase<DB.ReferenceIdentifier>;
2274
- Poison: DB.EnumCase<DB.ReferenceIdentifier>;
2275
- Language: DB.EnumCase<DB.ReferenceIdentifier>;
2276
- AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
2277
- LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
2278
- Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
2279
- Spell: DB.EnumCase<DB.ReferenceIdentifier>;
2280
- Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
2281
- TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
2282
- ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
2283
- ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
2284
- Element: DB.EnumCase<DB.ReferenceIdentifier>;
2285
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityOption", {
2286
+ Identifier: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"RequirableSelectOptionIdentifier", {
2287
+ General: DB.EnumCase<DB.ReferenceIdentifier>;
2288
+ Race: DB.EnumCase<DB.ReferenceIdentifier>;
2289
+ Skill: DB.EnumCase<DB.ReferenceIdentifier>;
2290
+ SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
2291
+ CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
2292
+ RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
2293
+ Property: DB.EnumCase<DB.ReferenceIdentifier>;
2294
+ Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
2295
+ Disease: DB.EnumCase<DB.ReferenceIdentifier>;
2296
+ Poison: DB.EnumCase<DB.ReferenceIdentifier>;
2297
+ Language: DB.EnumCase<DB.ReferenceIdentifier>;
2298
+ AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
2299
+ LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
2300
+ Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
2301
+ Spell: DB.EnumCase<DB.ReferenceIdentifier>;
2302
+ Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
2303
+ TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
2304
+ ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
2305
+ ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
2306
+ Element: DB.EnumCase<DB.ReferenceIdentifier>;
2307
+ }, []>>>;
2308
+ Select: DB.EnumCase<null>;
2285
2309
  }, []>>>, false>;
2286
2310
  }>, []>>>;
2287
2311
  Selection: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelection", DB.Object<{
2288
- options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ConstantProfessionSpecialAbility", DB.Object<{
2312
+ options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"ProfessionSpecialAbilitySelectionItem", DB.Object<{
2289
2313
  id: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"ProfessionSpecialAbilityIdentifier", {
2290
2314
  Enhancement: DB.EnumCase<DB.ReferenceIdentifier>;
2291
2315
  ArcaneOrbEnchantment: DB.EnumCase<DB.ReferenceIdentifier>;
@@ -1,5 +1,6 @@
1
1
  import { isNotNullish } from "@elyukai/utils/nullable";
2
2
  import * as DB from "tsondb/schema/dsl";
3
+ import { verifyOptionsForActivatableEntry } from "./_ActivatableSelectOptions.js";
3
4
  import { CommonnessRatedAdvantageDisadvantage } from "./_CommonnessRatedAdvantageDisadvantage.js";
4
5
  import { AdvantageIdentifier, BannzeichenOptionIdentifier, CantripIdentifier, CurriculumIdentifier, DisadvantageIdentifier, ExperienceLevelIdentifier, MagicalTraditionIdentifier, ProfessionIdentifier, ProfessionPackageIdentifier, ProfessionVersionIdentifier, SkillGroupIdentifier, SkillIdentifier, } from "./_Identifier.js";
5
6
  import { CombatTechniqueIdentifier, LiturgyIdentifier, MagicalActionIdentifier, ProfessionSpecialAbilityIdentifier, RequirableSelectOptionIdentifier, SpellworkIdentifier, } from "./_IdentifierGroup.js";
@@ -305,8 +306,39 @@ const ProfessionSpecialAbility = DB.Enum(import.meta.url, {
305
306
  Selection: DB.EnumCase({ type: DB.IncludeIdentifier(ProfessionSpecialAbilitySelection) }),
306
307
  }),
307
308
  });
309
+ const ProfessionSpecialAbilityOption = DB.Enum(import.meta.url, {
310
+ name: "ProfessionSpecialAbilityOption",
311
+ values: () => ({
312
+ Identifier: DB.EnumCase({
313
+ comment: "The option is defined by the profession.",
314
+ type: DB.IncludeIdentifier(RequirableSelectOptionIdentifier),
315
+ }),
316
+ Select: DB.EnumCase({
317
+ comment: "The option has to be chosen when applying the profession.",
318
+ type: null,
319
+ }),
320
+ }),
321
+ });
308
322
  const ConstantProfessionSpecialAbility = DB.TypeAlias(import.meta.url, {
309
323
  name: "ConstantProfessionSpecialAbility",
324
+ type: () => DB.Object({
325
+ id: DB.Required({
326
+ comment: "The identifier of the special ability to grant.",
327
+ type: DB.IncludeIdentifier(ProfessionSpecialAbilityIdentifier),
328
+ }),
329
+ level: DB.Optional({
330
+ comment: "The level of the received special ability. If not specified and the special ability has levels, level 1 is used automatically.",
331
+ type: DB.Integer({ minimum: 1 }),
332
+ }),
333
+ options: DB.Optional({
334
+ comment: "Received select options. Order is important. Typically, you only need the first array index, though.",
335
+ type: DB.Array(DB.IncludeIdentifier(ProfessionSpecialAbilityOption), { minItems: 1 }),
336
+ }),
337
+ }),
338
+ customConstraints: ({ instanceContent, getInstanceById, getAllChildInstancesForParent }) => verifyOptionsForActivatableEntry(instanceContent, getInstanceById, getAllChildInstancesForParent),
339
+ });
340
+ const ProfessionSpecialAbilitySelectionItem = DB.TypeAlias(import.meta.url, {
341
+ name: "ProfessionSpecialAbilitySelectionItem",
310
342
  type: () => DB.Object({
311
343
  id: DB.Required({
312
344
  comment: "The identifier of the special ability to grant.",
@@ -321,13 +353,16 @@ const ConstantProfessionSpecialAbility = DB.TypeAlias(import.meta.url, {
321
353
  type: DB.Array(DB.IncludeIdentifier(RequirableSelectOptionIdentifier), { minItems: 1 }),
322
354
  }),
323
355
  }),
356
+ customConstraints: ({ instanceContent, getInstanceById, getAllChildInstancesForParent }) => verifyOptionsForActivatableEntry(instanceContent, getInstanceById, getAllChildInstancesForParent),
324
357
  });
325
358
  const ProfessionSpecialAbilitySelection = DB.TypeAlias(import.meta.url, {
326
359
  name: "ProfessionSpecialAbilitySelection",
327
360
  type: () => DB.Object({
328
361
  options: DB.Required({
329
362
  comment: `The list of special abilities to choose from. Must contain at least two entries.`,
330
- type: DB.Array(DB.IncludeIdentifier(ConstantProfessionSpecialAbility), { minItems: 2 }),
363
+ type: DB.Array(DB.IncludeIdentifier(ProfessionSpecialAbilitySelectionItem), {
364
+ minItems: 2,
365
+ }),
331
366
  }),
332
367
  }),
333
368
  });
@@ -542,6 +577,10 @@ const LanguagesScriptsOptions = DB.TypeAlias(import.meta.url, {
542
577
  name: "LanguagesScriptsOptions",
543
578
  comment: `Buy languages and scripts for a specific amount of AP.`,
544
579
  type: () => DB.Object({
580
+ includeScripts: DB.Required({
581
+ comment: "If scripts are included in the selection.",
582
+ type: DB.Boolean(),
583
+ }),
545
584
  ap_value: DB.Required({
546
585
  comment: "The AP value you can buy languages and scripts for.",
547
586
  type: DB.Integer({ minimum: 2 }),
@@ -354,6 +354,7 @@ export declare const Race: DB.Entity<"Race", {
354
354
  }>, []>>>, []>>, true>;
355
355
  translations: DB.MemberDecl<DB.NestedEntityMap<"RaceTranslation", {
356
356
  name: DB.MemberDecl<DB.String, true>;
357
+ nameInPrerequisites: DB.MemberDecl<DB.String, false>;
357
358
  hairColorLabel: DB.MemberDecl<DB.String, false>;
358
359
  errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
359
360
  date: DB.MemberDecl<DB.Date, true>;
package/lib/types/Race.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { isNotNullish } from "@elyukai/utils/nullable";
2
2
  import * as DB from "tsondb/schema/dsl";
3
+ import { Case } from "tsondb/schema/gen";
4
+ import { verifyOptionsForActivatableEntry } from "./_ActivatableSelectOptions.js";
3
5
  import { CommonnessRatedAdvantageDisadvantage } from "./_CommonnessRatedAdvantageDisadvantage.js";
4
6
  import { Dice, DieType } from "./_Dice.js";
5
7
  import { AdvantageIdentifier, AttributeIdentifier, CultureIdentifier, DisadvantageIdentifier, EyeColorIdentifier, HairColorIdentifier, RaceIdentifier, } from "./_Identifier.js";
@@ -58,6 +60,10 @@ export const Race = DB.Entity(import.meta.url, {
58
60
  comment: "The race’s name.",
59
61
  type: DB.String({ minLength: 1 }),
60
62
  }),
63
+ nameInPrerequisites: DB.Optional({
64
+ comment: "The race’s name in prerequisites, if different from the normal race’s name.",
65
+ type: DB.String({ minLength: 1 }),
66
+ }),
61
67
  hairColorLabel: DB.Optional({
62
68
  comment: "The label for hair colors if it is not a hair color in that sense: Some races may have different labels for hair color such as scale color.",
63
69
  type: DB.String({ minLength: 1 }),
@@ -324,6 +330,10 @@ export const RaceVariant = DB.Entity(import.meta.url, {
324
330
  },
325
331
  ],
326
332
  ],
333
+ customConstraints: ({ instanceContent, getInstanceById, getAllChildInstancesForParent }) => [
334
+ ...(instanceContent.automatic_advantages?.flatMap(advantage => verifyOptionsForActivatableEntry({ ...advantage, id: Case("Advantage", advantage.id) }, getInstanceById, getAllChildInstancesForParent)) ?? []),
335
+ ...(instanceContent.automatic_disadvantages?.flatMap(disadvantage => verifyOptionsForActivatableEntry({ ...disadvantage, id: Case("Disadvantage", disadvantage.id) }, getInstanceById, getAllChildInstancesForParent)) ?? []),
336
+ ],
327
337
  });
328
338
  const RandomHeightGeneration = DB.TypeAlias(import.meta.url, {
329
339
  name: "RandomHeightGeneration",
@@ -30,9 +30,7 @@ export const SkillGroup = DB.Entity(import.meta.url, {
30
30
  })),
31
31
  }),
32
32
  instanceDisplayName: {},
33
- sortOrder: {
34
- keyPath: "position",
35
- },
33
+ sortOrder: { keyPath: "position", isIndex: true },
36
34
  uniqueConstraints: [
37
35
  {
38
36
  keyPath: "position",
@@ -16,6 +16,7 @@ export const SocialStatus = DB.Entity(import.meta.url, {
16
16
  })),
17
17
  }),
18
18
  instanceDisplayName: {},
19
+ sortOrder: { keyPath: "position", isIndex: true },
19
20
  uniqueConstraints: [
20
21
  { keyPath: "position" },
21
22
  {
@@ -81,7 +81,7 @@ export const Talisman = DB.Entity(import.meta.url, {
81
81
  instanceContent: instanceContent.combatUse,
82
82
  getDisplayNameAndId,
83
83
  getInstanceById,
84
- }, { secondary: true })
84
+ })
85
85
  : [],
86
86
  });
87
87
  const TalismanMeleeWeapon = DB.TypeAlias(import.meta.url, {