optolith-database-schema 0.20.0 → 0.20.2

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [0.20.2](https://github.com/elyukai/optolith-database-schema/compare/v0.20.1...v0.20.2) (2025-11-13)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * wrong newspaper translation name ([278f214](https://github.com/elyukai/optolith-database-schema/commit/278f21449836143440d485ba350a8e60748fc3f1))
11
+
12
+ ## [0.20.1](https://github.com/elyukai/optolith-database-schema/compare/v0.20.0...v0.20.1) (2025-11-13)
13
+
14
+
15
+ ### Features
16
+
17
+ * add "various" case to armor complexity ([23d4294](https://github.com/elyukai/optolith-database-schema/commit/23d429466ac6eb34c8086c63abde93bfec5d354d)), closes [#21](https://github.com/elyukai/optolith-database-schema/issues/21)
18
+ * add newspaper entity ([6503ac1](https://github.com/elyukai/optolith-database-schema/commit/6503ac161b00c980695ea94a87d27ebbfcef7674)), closes [#40](https://github.com/elyukai/optolith-database-schema/issues/40)
19
+ * add supplemental content option to magical traditions to enable trailing tables ([2348130](https://github.com/elyukai/optolith-database-schema/commit/2348130ce28e6ddde64ff6304ae04d01a00573c8)), closes [elyukai/optolith-data#791](https://github.com/elyukai/optolith-data/issues/791)
20
+ * animal poison level may depend on the subtype of animal ([a2fb493](https://github.com/elyukai/optolith-database-schema/commit/a2fb493d251d733c13b1d22034c9b8e917e67d68)), closes [#38](https://github.com/elyukai/optolith-database-schema/issues/38)
21
+
5
22
  ## [0.20.0](https://github.com/elyukai/optolith-database-schema/compare/v0.19.1...v0.20.0) (2025-11-02)
6
23
 
7
24
 
package/lib/main.js CHANGED
@@ -1,308 +1,161 @@
1
1
  import { Schema } from "tsondb/schema";
2
- import { Advantage } from "./types/Advantage.js";
3
- import { AnimalDisease } from "./types/AnimalDisease.js";
4
- import { AnimalType } from "./types/AnimalType.js";
5
- import { ArcaneBardTradition } from "./types/ArcaneBardTradition.js";
6
- import { ArcaneDancerTradition } from "./types/ArcaneDancerTradition.js";
7
- import { Aspect } from "./types/Aspect.js";
8
- import { Attribute } from "./types/Attribute.js";
9
- import { Blessing } from "./types/Blessing.js";
10
- import { Cantrip } from "./types/Cantrip.js";
11
- import { Ceremony } from "./types/Ceremony.js";
12
- import { CloseCombatTechnique, RangedCombatTechnique } from "./types/CombatTechnique.js";
13
- import { Condition } from "./types/Condition.js";
14
- import { Continent } from "./types/Continent.js";
15
- import { Culture } from "./types/Culture.js";
16
- import { DerivedCharacteristic } from "./types/DerivedCharacteristic.js";
17
- import { Disadvantage } from "./types/Disadvantage.js";
18
- import { Disease } from "./types/Disease.js";
19
- import { Element } from "./types/Element.js";
20
- import { ExperienceLevel } from "./types/ExperienceLevel.js";
21
- import { EyeColor } from "./types/EyeColor.js";
22
- import { FamiliarsTrick } from "./types/FamiliarsTrick.js";
23
- import { HairColor } from "./types/HairColor.js";
24
- import { Curriculum, Guideline } from "./types/Lessons.js";
25
- import { LiturgicalChant } from "./types/LiturgicalChant.js";
26
- import { Locale } from "./types/Locale.js";
27
- import { MetaCondition } from "./types/MetaCondition.js";
28
- import { PactCategory } from "./types/PactCategory.js";
29
- import { Patron } from "./types/Patron.js";
30
- import { PatronCategory } from "./types/PatronCategory.js";
31
- import { PersonalityTrait } from "./types/PersonalityTrait.js";
32
- import { Profession } from "./types/Profession.js";
33
- import { Property } from "./types/Property.js";
34
- import { Race } from "./types/Race.js";
35
- import { Region } from "./types/Region.js";
36
- import { Ritual } from "./types/Ritual.js";
37
- import { Service } from "./types/Service.js";
38
- import { SexPractice } from "./types/SexPractice.js";
39
- import { Skill } from "./types/Skill.js";
40
- import { SkillGroup } from "./types/SkillGroup.js";
41
- import { SkillModificationLevel } from "./types/SkillModificationLevel.js";
42
- import { SocialStatus } from "./types/SocialStatus.js";
43
- import { Spell } from "./types/Spell.js";
44
- import { State } from "./types/State.js";
45
- import { Talisman } from "./types/Talisman.js";
46
- import { TargetCategory } from "./types/TargetCategory.js";
47
- import { EquipmentPackage } from "./types/equipment/EquipmentPackage.js";
48
- import { Ammunition } from "./types/equipment/item/Ammunition.js";
49
- import { Animal } from "./types/equipment/item/Animal.js";
50
- import { AnimalCare } from "./types/equipment/item/AnimalCare.js";
51
- import { Armor } from "./types/equipment/item/Armor.js";
52
- import { BandageOrRemedy } from "./types/equipment/item/BandageOrRemedy.js";
53
- import { Book } from "./types/equipment/item/Book.js";
54
- import { CeremonialItem } from "./types/equipment/item/CeremonialItem.js";
55
- import { Clothes } from "./types/equipment/item/Clothes.js";
56
- import { Container } from "./types/equipment/item/Container.js";
57
- import { Elixir } from "./types/equipment/item/Elixir.js";
58
- import { EquipmentOfBlessedOnes } from "./types/equipment/item/EquipmentOfBlessedOnes.js";
59
- import { GemOrPreciousStone } from "./types/equipment/item/GemOrPreciousStone.js";
60
- import { IlluminationLightSource } from "./types/equipment/item/IlluminationLightSource.js";
61
- import { IlluminationRefillOrSupply } from "./types/equipment/item/IlluminationRefillOrSupply.js";
62
- import { Jewelry } from "./types/equipment/item/Jewelry.js";
63
- import { Liebesspielzeug } from "./types/equipment/item/Liebesspielzeug.js";
64
- import { LuxuryGood } from "./types/equipment/item/LuxuryGood.js";
65
- import { MagicalArtifact } from "./types/equipment/item/MagicalArtifact.js";
66
- import { MusicalInstrument } from "./types/equipment/item/MusicalInstrument.js";
67
- import { OrienteeringAid } from "./types/equipment/item/OrienteeringAid.js";
68
- import { Poison } from "./types/equipment/item/Poison.js";
69
- import { RopeOrChain } from "./types/equipment/item/RopeOrChain.js";
70
- import { Stationery } from "./types/equipment/item/Stationery.js";
71
- import { ThievesTool } from "./types/equipment/item/ThievesTool.js";
72
- import { ToolOfTheTrade } from "./types/equipment/item/ToolOfTheTrade.js";
73
- import { TravelGearOrTool } from "./types/equipment/item/TravelGearOrTool.js";
74
- import { Vehicle } from "./types/equipment/item/Vehicle.js";
75
- import { Weapon } from "./types/equipment/item/Weapon.js";
76
- import { WeaponAccessory } from "./types/equipment/item/WeaponAccessory.js";
77
- import { ArmorType } from "./types/equipment/item/sub/ArmorType.js";
78
- import { Reach } from "./types/equipment/item/sub/Reach.js";
79
- import { AlternativeRule, ClothingPackage, Laboratory, PlayerType } from "./types/index.js";
80
- import { AnimistPower } from "./types/magicalActions/AnimistPower.js";
81
- import { Tribe } from "./types/magicalActions/AnimistPower_Tribe.js";
82
- import { Curse } from "./types/magicalActions/Curse.js";
83
- import { DominationRitual } from "./types/magicalActions/DominationRitual.js";
84
- import { ElvenMagicalSong } from "./types/magicalActions/ElvenMagicalSong.js";
85
- import { GeodeRitual } from "./types/magicalActions/GeodeRitual.js";
86
- import { JesterTrick } from "./types/magicalActions/JesterTrick.js";
87
- import { MagicalDance } from "./types/magicalActions/MagicalDance.js";
88
- import { MagicalMelody } from "./types/magicalActions/MagicalMelody.js";
89
- import { MagicalRune } from "./types/magicalActions/MagicalRune.js";
90
- import { ZibiljaRitual } from "./types/magicalActions/ZibiljaRitual.js";
91
- import { CoreRule } from "./types/rule/CoreRule.js";
92
- import { FocusRule } from "./types/rule/FocusRule.js";
93
- import { Subject } from "./types/rule/FocusRule_Subject.js";
94
- import { OptionalRule } from "./types/rule/OptionalRule.js";
95
- import { Publication } from "./types/source/Publication.js";
96
- import { AdvancedCombatSpecialAbility } from "./types/specialAbility/AdvancedCombatSpecialAbility.js";
97
- import { AdvancedKarmaSpecialAbility } from "./types/specialAbility/AdvancedKarmaSpecialAbility.js";
98
- import { AdvancedMagicalSpecialAbility } from "./types/specialAbility/AdvancedMagicalSpecialAbility.js";
99
- import { AdvancedSkillSpecialAbility } from "./types/specialAbility/AdvancedSkillSpecialAbility.js";
100
- import { AncestorGlyph } from "./types/specialAbility/AncestorGlyph.js";
101
- import { BlessedTradition } from "./types/specialAbility/BlessedTradition.js";
102
- import { BrawlingSpecialAbility } from "./types/specialAbility/BrawlingSpecialAbility.js";
103
- import { CeremonialItemSpecialAbility } from "./types/specialAbility/CeremonialItemSpecialAbility.js";
104
- import { CombatSpecialAbility } from "./types/specialAbility/CombatSpecialAbility.js";
105
- import { CombatStyleSpecialAbility } from "./types/specialAbility/CombatStyleSpecialAbility.js";
106
- import { CommandSpecialAbility } from "./types/specialAbility/CommandSpecialAbility.js";
107
- import { FamiliarSpecialAbility } from "./types/specialAbility/FamiliarSpecialAbility.js";
108
- import { FatePointSexSpecialAbility } from "./types/specialAbility/FatePointSexSpecialAbility.js";
109
- import { FatePointSpecialAbility } from "./types/specialAbility/FatePointSpecialAbility.js";
110
- import { GeneralSpecialAbility } from "./types/specialAbility/GeneralSpecialAbility.js";
111
- import { KarmaSpecialAbility } from "./types/specialAbility/KarmaSpecialAbility.js";
112
- import { LiturgicalStyleSpecialAbility } from "./types/specialAbility/LiturgicalStyleSpecialAbility.js";
113
- import { LycantropicGift } from "./types/specialAbility/LycantropicGift.js";
114
- import { MagicStyleSpecialAbility } from "./types/specialAbility/MagicStyleSpecialAbility.js";
115
- import { MagicalSign } from "./types/specialAbility/MagicalSign.js";
116
- import { MagicalSpecialAbility } from "./types/specialAbility/MagicalSpecialAbility.js";
117
- import { MagicalTradition } from "./types/specialAbility/MagicalTradition.js";
118
- import { PactGift } from "./types/specialAbility/PactGift.js";
119
- import { ProtectiveWardingCircleSpecialAbility } from "./types/specialAbility/ProtectiveWardingCircleSpecialAbility.js";
120
- import { Sermon } from "./types/specialAbility/Sermon.js";
121
- import { SexSpecialAbility } from "./types/specialAbility/SexSpecialAbility.js";
122
- import { SikaryanDrainSpecialAbility } from "./types/specialAbility/SikaryanDrainSpecialAbility.js";
123
- import { SkillStyleSpecialAbility } from "./types/specialAbility/SkillStyleSpecialAbility.js";
124
- import { VampiricGift } from "./types/specialAbility/VampiricGift.js";
125
- import { Vision } from "./types/specialAbility/Vision.js";
126
- import { Language } from "./types/specialAbility/sub/Language.js";
127
- import { Script } from "./types/specialAbility/sub/Script.js";
128
- import { TradeSecret } from "./types/specialAbility/sub/TradeSecret.js";
129
- import { ArcaneOrbEnchantment } from "./types/traditionArtifacts/ArcaneOrbEnchantment.js";
130
- import { AttireEnchantment } from "./types/traditionArtifacts/AttireEnchantment.js";
131
- import { BowlEnchantment } from "./types/traditionArtifacts/BowlEnchantment.js";
132
- import { CauldronEnchantment } from "./types/traditionArtifacts/CauldronEnchantment.js";
133
- import { ChronicleEnchantment } from "./types/traditionArtifacts/ChronicleEnchantment.js";
134
- import { DaggerRitual } from "./types/traditionArtifacts/DaggerRitual.js";
135
- import { FoolsHatEnchantment } from "./types/traditionArtifacts/FoolsHatEnchantment.js";
136
- import { InstrumentEnchantment } from "./types/traditionArtifacts/InstrumentEnchantment.js";
137
- import { Krallenkettenzauber } from "./types/traditionArtifacts/Krallenkettenzauber.js";
138
- import { OrbEnchantment } from "./types/traditionArtifacts/OrbEnchantment.js";
139
- import { RingEnchantment } from "./types/traditionArtifacts/RingEnchantment.js";
140
- import { SickleRitual } from "./types/traditionArtifacts/SickleRitual.js";
141
- import { SpellSwordEnchantment } from "./types/traditionArtifacts/SpellSwordEnchantment.js";
142
- import { StaffEnchantment } from "./types/traditionArtifacts/StaffEnchantment.js";
143
- import { ToyEnchantment } from "./types/traditionArtifacts/ToyEnchantment.js";
144
- import { Trinkhornzauber } from "./types/traditionArtifacts/Trinkhornzauber.js";
145
- import { WandEnchantment } from "./types/traditionArtifacts/WandEnchantment.js";
146
- import { WeaponEnchantment } from "./types/traditionArtifacts/WeaponEnchantment.js";
147
- import { AnimalShape } from "./types/traditionArtifacts/sub/AnimalShape.js";
148
- import { AnimalShapePath } from "./types/traditionArtifacts/sub/AnimalShapePath.js";
149
- import { AnimalShapeSize } from "./types/traditionArtifacts/sub/AnimalShapeSize.js";
150
- import { Brew } from "./types/traditionArtifacts/sub/Brew.js";
2
+ import * as Types from "./types/index.js";
151
3
  export const schema = Schema([
152
- AdvancedCombatSpecialAbility,
153
- AdvancedKarmaSpecialAbility,
154
- AdvancedMagicalSpecialAbility,
155
- AdvancedSkillSpecialAbility,
156
- Advantage,
157
- AlternativeRule,
158
- Ammunition,
159
- AncestorGlyph,
160
- AnimalCare,
161
- AnimalDisease,
162
- Animal,
163
- AnimalShapePath,
164
- AnimalShape,
165
- AnimalShapeSize,
166
- AnimalType,
167
- AnimistPower,
168
- Tribe,
169
- ArcaneBardTradition,
170
- ArcaneDancerTradition,
171
- ArcaneOrbEnchantment,
172
- Armor,
173
- ArmorType,
174
- Aspect,
175
- AttireEnchantment,
176
- Attribute,
177
- BandageOrRemedy,
178
- BlessedTradition,
179
- Blessing,
180
- Book,
181
- BowlEnchantment,
182
- BrawlingSpecialAbility,
183
- Brew,
184
- Cantrip,
185
- CauldronEnchantment,
186
- CeremonialItem,
187
- CeremonialItemSpecialAbility,
188
- Ceremony,
189
- ChronicleEnchantment,
190
- CloseCombatTechnique,
191
- Clothes,
192
- ClothingPackage,
193
- CombatSpecialAbility,
194
- CombatStyleSpecialAbility,
195
- CommandSpecialAbility,
196
- Condition,
197
- Container,
198
- Continent,
199
- CoreRule,
200
- Culture,
201
- Curse,
202
- DaggerRitual,
203
- DerivedCharacteristic,
204
- Disadvantage,
205
- Disease,
206
- DominationRitual,
207
- Element,
208
- Elixir,
209
- ElvenMagicalSong,
210
- EquipmentOfBlessedOnes,
211
- EquipmentPackage,
212
- ExperienceLevel,
213
- EyeColor,
214
- FamiliarSpecialAbility,
215
- FamiliarsTrick,
216
- FatePointSexSpecialAbility,
217
- FatePointSpecialAbility,
218
- FocusRule,
219
- Subject,
220
- FoolsHatEnchantment,
221
- GemOrPreciousStone,
222
- GeneralSpecialAbility,
223
- GeodeRitual,
224
- HairColor,
225
- IlluminationLightSource,
226
- IlluminationRefillOrSupply,
227
- InstrumentEnchantment,
228
- JesterTrick,
229
- Jewelry,
230
- KarmaSpecialAbility,
231
- Krallenkettenzauber,
232
- Language,
233
- Curriculum,
234
- Guideline,
235
- Laboratory,
236
- Liebesspielzeug,
237
- LiturgicalChant,
238
- LiturgicalStyleSpecialAbility,
239
- LuxuryGood,
240
- LycantropicGift,
241
- MagicalArtifact,
242
- MagicalDance,
243
- MagicalMelody,
244
- MagicalRune,
245
- MagicalSign,
246
- MagicalSpecialAbility,
247
- MagicalTradition,
248
- MagicStyleSpecialAbility,
249
- MetaCondition,
250
- MusicalInstrument,
251
- OptionalRule,
252
- OrbEnchantment,
253
- OrienteeringAid,
254
- PactCategory,
255
- PactGift,
256
- PatronCategory,
257
- Patron,
258
- PersonalityTrait,
259
- PlayerType,
260
- Poison,
261
- Profession,
262
- Property,
263
- ProtectiveWardingCircleSpecialAbility,
264
- Publication,
265
- Race,
266
- RangedCombatTechnique,
267
- Reach,
268
- Region,
269
- RingEnchantment,
270
- Ritual,
271
- RopeOrChain,
272
- Script,
273
- Sermon,
274
- Service,
275
- SexPractice,
276
- SexSpecialAbility,
277
- SickleRitual,
278
- SikaryanDrainSpecialAbility,
279
- SkillGroup,
280
- SkillModificationLevel,
281
- Skill,
282
- SkillStyleSpecialAbility,
283
- SocialStatus,
284
- Spell,
285
- SpellSwordEnchantment,
286
- StaffEnchantment,
287
- State,
288
- Stationery,
289
- Talisman,
290
- TargetCategory,
291
- ThievesTool,
292
- ToolOfTheTrade,
293
- ToyEnchantment,
294
- TradeSecret,
295
- TravelGearOrTool,
296
- Trinkhornzauber,
297
- VampiricGift,
298
- Vehicle,
299
- Vision,
300
- WandEnchantment,
301
- WeaponAccessory,
302
- WeaponEnchantment,
303
- Weapon,
304
- ZibiljaRitual,
305
- ], Locale);
4
+ Types.AdvancedCombatSpecialAbility,
5
+ Types.AdvancedKarmaSpecialAbility,
6
+ Types.AdvancedMagicalSpecialAbility,
7
+ Types.AdvancedSkillSpecialAbility,
8
+ Types.Advantage,
9
+ Types.AlternativeRule,
10
+ Types.Ammunition,
11
+ Types.AncestorGlyph,
12
+ Types.AnimalCare,
13
+ Types.AnimalDisease,
14
+ Types.Animal,
15
+ Types.AnimalShapePath,
16
+ Types.AnimalShape,
17
+ Types.AnimalShapeSize,
18
+ Types.AnimalType,
19
+ Types.AnimistPower,
20
+ Types.Tribe,
21
+ Types.ArcaneBardTradition,
22
+ Types.ArcaneDancerTradition,
23
+ Types.ArcaneOrbEnchantment,
24
+ Types.Armor,
25
+ Types.ArmorType,
26
+ Types.Aspect,
27
+ Types.AttireEnchantment,
28
+ Types.Attribute,
29
+ Types.BandageOrRemedy,
30
+ Types.BlessedTradition,
31
+ Types.Blessing,
32
+ Types.Book,
33
+ Types.BowlEnchantment,
34
+ Types.BrawlingSpecialAbility,
35
+ Types.Brew,
36
+ Types.Cantrip,
37
+ Types.CauldronEnchantment,
38
+ Types.CeremonialItem,
39
+ Types.CeremonialItemSpecialAbility,
40
+ Types.Ceremony,
41
+ Types.ChronicleEnchantment,
42
+ Types.CloseCombatTechnique,
43
+ Types.Clothes,
44
+ Types.ClothingPackage,
45
+ Types.CombatSpecialAbility,
46
+ Types.CombatStyleSpecialAbility,
47
+ Types.CommandSpecialAbility,
48
+ Types.Condition,
49
+ Types.Container,
50
+ Types.Continent,
51
+ Types.CoreRule,
52
+ Types.Culture,
53
+ Types.Curse,
54
+ Types.DaggerRitual,
55
+ Types.DerivedCharacteristic,
56
+ Types.Disadvantage,
57
+ Types.Disease,
58
+ Types.DominationRitual,
59
+ Types.Element,
60
+ Types.Elixir,
61
+ Types.ElvenMagicalSong,
62
+ Types.EquipmentOfBlessedOnes,
63
+ Types.EquipmentPackage,
64
+ Types.ExperienceLevel,
65
+ Types.EyeColor,
66
+ Types.FamiliarSpecialAbility,
67
+ Types.FamiliarsTrick,
68
+ Types.FatePointSexSpecialAbility,
69
+ Types.FatePointSpecialAbility,
70
+ Types.FocusRule,
71
+ Types.Subject,
72
+ Types.FoolsHatEnchantment,
73
+ Types.GemOrPreciousStone,
74
+ Types.GeneralSpecialAbility,
75
+ Types.GeodeRitual,
76
+ Types.HairColor,
77
+ Types.IlluminationLightSource,
78
+ Types.IlluminationRefillOrSupply,
79
+ Types.InstrumentEnchantment,
80
+ Types.JesterTrick,
81
+ Types.Jewelry,
82
+ Types.KarmaSpecialAbility,
83
+ Types.Krallenkettenzauber,
84
+ Types.Language,
85
+ Types.Curriculum,
86
+ Types.Guideline,
87
+ Types.Laboratory,
88
+ Types.Liebesspielzeug,
89
+ Types.LiturgicalChant,
90
+ Types.LiturgicalStyleSpecialAbility,
91
+ Types.LuxuryGood,
92
+ Types.LycantropicGift,
93
+ Types.MagicalArtifact,
94
+ Types.MagicalDance,
95
+ Types.MagicalMelody,
96
+ Types.MagicalRune,
97
+ Types.MagicalSign,
98
+ Types.MagicalSpecialAbility,
99
+ Types.MagicalTradition,
100
+ Types.MagicStyleSpecialAbility,
101
+ Types.MetaCondition,
102
+ Types.MusicalInstrument,
103
+ Types.Newspaper,
104
+ Types.OptionalRule,
105
+ Types.OrbEnchantment,
106
+ Types.OrienteeringAid,
107
+ Types.PactCategory,
108
+ Types.PactGift,
109
+ Types.PatronCategory,
110
+ Types.Patron,
111
+ Types.PersonalityTrait,
112
+ Types.PlayerType,
113
+ Types.Poison,
114
+ Types.Profession,
115
+ Types.Property,
116
+ Types.ProtectiveWardingCircleSpecialAbility,
117
+ Types.Publication,
118
+ Types.Race,
119
+ Types.RangedCombatTechnique,
120
+ Types.Reach,
121
+ Types.Region,
122
+ Types.RingEnchantment,
123
+ Types.Ritual,
124
+ Types.RopeOrChain,
125
+ Types.Script,
126
+ Types.Sermon,
127
+ Types.Service,
128
+ Types.SexPractice,
129
+ Types.SexSpecialAbility,
130
+ Types.SickleRitual,
131
+ Types.SikaryanDrainSpecialAbility,
132
+ Types.SkillGroup,
133
+ Types.SkillModificationLevel,
134
+ Types.Skill,
135
+ Types.SkillStyleSpecialAbility,
136
+ Types.SocialStatus,
137
+ Types.Spell,
138
+ Types.SpellSwordEnchantment,
139
+ Types.StaffEnchantment,
140
+ Types.State,
141
+ Types.Stationery,
142
+ Types.Talisman,
143
+ Types.TargetCategory,
144
+ Types.ThievesTool,
145
+ Types.ToolOfTheTrade,
146
+ Types.ToyEnchantment,
147
+ Types.TradeSecret,
148
+ Types.TravelGearOrTool,
149
+ Types.Trinkhornzauber,
150
+ Types.VampiricGift,
151
+ Types.Vehicle,
152
+ Types.Vision,
153
+ Types.WandEnchantment,
154
+ Types.WeaponAccessory,
155
+ Types.WeaponEnchantment,
156
+ Types.Weapon,
157
+ Types.ZibiljaRitual,
158
+ ], Types.Locale);
306
159
  // /**
307
160
  // * A dictionary of cache types and their associated location.
308
161
  // */
@@ -98,6 +98,7 @@ export declare const MagicalSpecialAbilityIdentifier: () => R;
98
98
  export declare const MagicalTraditionIdentifier: () => R;
99
99
  export declare const MagicStyleSpecialAbilityIdentifier: () => R;
100
100
  export declare const MusicalInstrumentIdentifier: () => R;
101
+ export declare const NewspaperIdentifier: () => R;
101
102
  export declare const OptionalRuleIdentifier: () => R;
102
103
  export declare const OrbEnchantmentIdentifier: () => R;
103
104
  export declare const OrienteeringAidIdentifier: () => R;
@@ -39,6 +39,7 @@ import { Liebesspielzeug } from "./equipment/item/Liebesspielzeug.js";
39
39
  import { LuxuryGood } from "./equipment/item/LuxuryGood.js";
40
40
  import { MagicalArtifact } from "./equipment/item/MagicalArtifact.js";
41
41
  import { MusicalInstrument } from "./equipment/item/MusicalInstrument.js";
42
+ import { Newspaper } from "./equipment/item/Newspaper.js";
42
43
  import { OrienteeringAid } from "./equipment/item/OrienteeringAid.js";
43
44
  import { Poison } from "./equipment/item/Poison.js";
44
45
  import { RopeOrChain } from "./equipment/item/RopeOrChain.js";
@@ -244,6 +245,7 @@ export const MagicalSpecialAbilityIdentifier = () => R(MagicalSpecialAbility);
244
245
  export const MagicalTraditionIdentifier = () => R(MagicalTradition);
245
246
  export const MagicStyleSpecialAbilityIdentifier = () => R(MagicStyleSpecialAbility);
246
247
  export const MusicalInstrumentIdentifier = () => R(MusicalInstrument);
248
+ export const NewspaperIdentifier = () => R(Newspaper);
247
249
  export const OptionalRuleIdentifier = () => R(OptionalRule);
248
250
  export const OrbEnchantmentIdentifier = () => R(OrbEnchantment);
249
251
  export const OrienteeringAidIdentifier = () => R(OrienteeringAid);
@@ -321,6 +321,7 @@ export declare const EquipmentIdentifier: Enum<"EquipmentIdentifier", {
321
321
  LuxuryGood: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
322
322
  MagicalArtifact: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
323
323
  MusicalInstrument: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
324
+ Newspaper: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
324
325
  OrienteeringAid: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
325
326
  Poison: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
326
327
  RopeOrChain: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
@@ -1,5 +1,5 @@
1
1
  import { Enum, EnumCase } from "tsondb/schema/def";
2
- import { AdvancedCombatSpecialAbilityIdentifier, AdvancedKarmaSpecialAbilityIdentifier, AdvancedMagicalSpecialAbilityIdentifier, AdvancedSkillSpecialAbilityIdentifier, AdvantageIdentifier, AmmunitionIdentifier, AncestorGlyphIdentifier, AnimalCareIdentifier, AnimalIdentifier, AnimalShapeIdentifier, AnimalShapeSizeIdentifier, AnimistPowerIdentifier, ArcaneBardTraditionIdentifier, ArcaneDancerTraditionIdentifier, ArcaneOrbEnchantmentIdentifier, ArmorIdentifier, AspectIdentifier, AttireEnchantmentIdentifier, AttributeIdentifier, BandageOrRemedyIdentifier, BlessedTraditionIdentifier, BlessingIdentifier, BookIdentifier, BowlEnchantmentIdentifier, BrawlingSpecialAbilityIdentifier, CantripIdentifier, CauldronEnchantmentIdentifier, CeremonialItemIdentifier, CeremonialItemSpecialAbilityIdentifier, CeremonyIdentifier, ChronicleEnchantmentIdentifier, CloseCombatTechniqueIdentifier, ClothesIdentifier, ClothingPackageIdentifier, CombatSpecialAbilityIdentifier, CombatStyleSpecialAbilityIdentifier, CommandSpecialAbilityIdentifier, ContainerIdentifier, CultureIdentifier, CurseIdentifier, DaggerRitualIdentifier, DisadvantageIdentifier, DiseaseIdentifier, DominationRitualIdentifier, ElementIdentifier, ElixirIdentifier, ElvenMagicalSongIdentifier, EquipmentOfBlessedOnesIdentifier, FamiliarSpecialAbilityIdentifier, FatePointSexSpecialAbilityIdentifier, FatePointSpecialAbilityIdentifier, FocusRuleIdentifier, FoolsHatEnchantmentIdentifier, GemOrPreciousStoneIdentifier, GeneralIdentifier, GeneralSpecialAbilityIdentifier, GeodeRitualIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillsOrSuppliesIdentifier, InstrumentEnchantmentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, KrallenkettenzauberIdentifier, LaboratoryIdentifier, LanguageIdentifier, LiebesspielzeugIdentifier, LiturgicalChantIdentifier, LiturgicalStyleSpecialAbilityIdentifier, LuxuryGoodIdentifier, LycantropicGiftIdentifier, MagicalArtifactIdentifier, MagicalDanceIdentifier, MagicalMelodyIdentifier, MagicalRuneIdentifier, MagicalSignIdentifier, MagicalSpecialAbilityIdentifier, MagicalTraditionIdentifier, MagicStyleSpecialAbilityIdentifier, MusicalInstrumentIdentifier, OptionalRuleIdentifier, OrbEnchantmentIdentifier, OrienteeringAidIdentifier, PactGiftIdentifier, PatronIdentifier, PoisonIdentifier, PropertyIdentifier, ProtectiveWardingCircleSpecialAbilityIdentifier, RaceIdentifier, RangedCombatTechniqueIdentifier, RingEnchantmentIdentifier, RitualIdentifier, RopeOrChainIdentifier, ScriptIdentifier, SermonIdentifier, SexPracticeIdentifier, SexSpecialAbilityIdentifier, SickleRitualIdentifier, SikaryanDrainSpecialAbilityIdentifier, SkillApplicationIdentifier, SkillIdentifier, SkillStyleSpecialAbilityIdentifier, SpellIdentifier, SpellSwordEnchantmentIdentifier, StaffEnchantmentIdentifier, StationeryIdentifier, TargetCategoryIdentifier, ThievesToolIdentifier, ToolOfTheTradeIdentifier, ToyEnchantmentIdentifier, TradeSecretIdentifier, TravelGearOrToolIdentifier, TrinkhornzauberIdentifier, VampiricGiftIdentifier, VehicleIdentifier, VisionIdentifier, WandEnchantmentIdentifier, WeaponAccessoryIdentifier, WeaponEnchantmentIdentifier, WeaponIdentifier, ZibiljaRitualIdentifier, } from "./_Identifier.js";
2
+ import { AdvancedCombatSpecialAbilityIdentifier, AdvancedKarmaSpecialAbilityIdentifier, AdvancedMagicalSpecialAbilityIdentifier, AdvancedSkillSpecialAbilityIdentifier, AdvantageIdentifier, AmmunitionIdentifier, AncestorGlyphIdentifier, AnimalCareIdentifier, AnimalIdentifier, AnimalShapeIdentifier, AnimalShapeSizeIdentifier, AnimistPowerIdentifier, ArcaneBardTraditionIdentifier, ArcaneDancerTraditionIdentifier, ArcaneOrbEnchantmentIdentifier, ArmorIdentifier, AspectIdentifier, AttireEnchantmentIdentifier, AttributeIdentifier, BandageOrRemedyIdentifier, BlessedTraditionIdentifier, BlessingIdentifier, BookIdentifier, BowlEnchantmentIdentifier, BrawlingSpecialAbilityIdentifier, CantripIdentifier, CauldronEnchantmentIdentifier, CeremonialItemIdentifier, CeremonialItemSpecialAbilityIdentifier, CeremonyIdentifier, ChronicleEnchantmentIdentifier, CloseCombatTechniqueIdentifier, ClothesIdentifier, ClothingPackageIdentifier, CombatSpecialAbilityIdentifier, CombatStyleSpecialAbilityIdentifier, CommandSpecialAbilityIdentifier, ContainerIdentifier, CultureIdentifier, CurseIdentifier, DaggerRitualIdentifier, DisadvantageIdentifier, DiseaseIdentifier, DominationRitualIdentifier, ElementIdentifier, ElixirIdentifier, ElvenMagicalSongIdentifier, EquipmentOfBlessedOnesIdentifier, FamiliarSpecialAbilityIdentifier, FatePointSexSpecialAbilityIdentifier, FatePointSpecialAbilityIdentifier, FocusRuleIdentifier, FoolsHatEnchantmentIdentifier, GemOrPreciousStoneIdentifier, GeneralIdentifier, GeneralSpecialAbilityIdentifier, GeodeRitualIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillsOrSuppliesIdentifier, InstrumentEnchantmentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, KrallenkettenzauberIdentifier, LaboratoryIdentifier, LanguageIdentifier, LiebesspielzeugIdentifier, LiturgicalChantIdentifier, LiturgicalStyleSpecialAbilityIdentifier, LuxuryGoodIdentifier, LycantropicGiftIdentifier, MagicalArtifactIdentifier, MagicalDanceIdentifier, MagicalMelodyIdentifier, MagicalRuneIdentifier, MagicalSignIdentifier, MagicalSpecialAbilityIdentifier, MagicalTraditionIdentifier, MagicStyleSpecialAbilityIdentifier, MusicalInstrumentIdentifier, NewspaperIdentifier, OptionalRuleIdentifier, OrbEnchantmentIdentifier, OrienteeringAidIdentifier, PactGiftIdentifier, PatronIdentifier, PoisonIdentifier, PropertyIdentifier, ProtectiveWardingCircleSpecialAbilityIdentifier, RaceIdentifier, RangedCombatTechniqueIdentifier, RingEnchantmentIdentifier, RitualIdentifier, RopeOrChainIdentifier, ScriptIdentifier, SermonIdentifier, SexPracticeIdentifier, SexSpecialAbilityIdentifier, SickleRitualIdentifier, SikaryanDrainSpecialAbilityIdentifier, SkillApplicationIdentifier, SkillIdentifier, SkillStyleSpecialAbilityIdentifier, SpellIdentifier, SpellSwordEnchantmentIdentifier, StaffEnchantmentIdentifier, StationeryIdentifier, TargetCategoryIdentifier, ThievesToolIdentifier, ToolOfTheTradeIdentifier, ToyEnchantmentIdentifier, TradeSecretIdentifier, TravelGearOrToolIdentifier, TrinkhornzauberIdentifier, VampiricGiftIdentifier, VehicleIdentifier, VisionIdentifier, WandEnchantmentIdentifier, WeaponAccessoryIdentifier, WeaponEnchantmentIdentifier, WeaponIdentifier, ZibiljaRitualIdentifier, } from "./_Identifier.js";
3
3
  export const ActivatableIdentifier = Enum(import.meta.url, {
4
4
  name: "ActivatableIdentifier",
5
5
  values: () => ({
@@ -387,6 +387,7 @@ export const EquipmentIdentifier = Enum(import.meta.url, {
387
387
  LuxuryGood: EnumCase({ type: LuxuryGoodIdentifier() }),
388
388
  MagicalArtifact: EnumCase({ type: MagicalArtifactIdentifier() }),
389
389
  MusicalInstrument: EnumCase({ type: MusicalInstrumentIdentifier() }),
390
+ Newspaper: EnumCase({ type: NewspaperIdentifier() }),
390
391
  OrienteeringAid: EnumCase({ type: OrienteeringAidIdentifier() }),
391
392
  Poison: EnumCase({ type: PoisonIdentifier() }),
392
393
  RopeOrChain: EnumCase({ type: RopeOrChainIdentifier() }),
@@ -23,6 +23,7 @@ export declare const EquipmentPackage: Entity<"EquipmentPackage", {
23
23
  LuxuryGood: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
24
24
  MagicalArtifact: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
25
25
  MusicalInstrument: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
26
+ Newspaper: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
26
27
  OrienteeringAid: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
27
28
  Poison: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
28
29
  RopeOrChain: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").ReferenceIdentifierType>;
@@ -19,12 +19,13 @@ export declare const Armor: Entity<"Armor", {
19
19
  }>, []>>>;
20
20
  }, []>>, true>;
21
21
  weight: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Weight", import("tsondb/schema/def").FloatType, []>>, true>;
22
- complexity: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"Complexity", {
22
+ complexity: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"ArmorComplexity", {
23
23
  Primitive: EnumCase<null>;
24
24
  Simple: EnumCase<null>;
25
25
  Complex: EnumCase<IncludeIdentifier<[], TypeAlias<"ComplexComplexity", Object<{
26
26
  ap_value: import("tsondb/schema/def").MemberDecl<Integer, true>;
27
27
  }>, []>>>;
28
+ Various: EnumCase<null>;
28
29
  }, []>>, false>;
29
30
  protection: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Protection", Integer, []>>, true>;
30
31
  encumbrance: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Encumbrance", Integer, []>>, true>;
@@ -3,7 +3,7 @@ import { ArmorIdentifier, ArmorTypeIdentifier } from "../../_Identifier.js";
3
3
  import { NestedTranslationMap } from "../../Locale.js";
4
4
  import { Errata } from "../../source/_Erratum.js";
5
5
  import { src } from "../../source/_PublicationRef.js";
6
- import { Complexity, Cost, Weight } from "./_Item.js";
6
+ import { ComplexComplexity, Cost, Weight } from "./_Item.js";
7
7
  export const Armor = Entity(import.meta.url, {
8
8
  name: "Armor",
9
9
  namePlural: "Armor",
@@ -18,7 +18,7 @@ export const Armor = Entity(import.meta.url, {
18
18
  }),
19
19
  complexity: Optional({
20
20
  comment: "The complexity of crafting the item.",
21
- type: IncludeIdentifier(Complexity),
21
+ type: IncludeIdentifier(ArmorComplexity),
22
22
  }),
23
23
  protection: Required({
24
24
  comment: "The PRO value.",
@@ -108,6 +108,16 @@ export const SecondaryArmor = TypeAlias(import.meta.url, {
108
108
  }, { minProperties: 1 })),
109
109
  }),
110
110
  });
111
+ const ArmorComplexity = Enum(import.meta.url, {
112
+ name: "ArmorComplexity",
113
+ comment: "The complexity of crafting the armor.",
114
+ values: () => ({
115
+ Primitive: EnumCase({ type: null }),
116
+ Simple: EnumCase({ type: null }),
117
+ Complex: EnumCase({ type: IncludeIdentifier(ComplexComplexity) }),
118
+ Various: EnumCase({ type: null }),
119
+ }),
120
+ });
111
121
  export const Protection = TypeAlias(import.meta.url, {
112
122
  name: "Protection",
113
123
  comment: "The PRO value.",
@@ -0,0 +1,66 @@
1
+ import { Array, Entity, IncludeIdentifier, Object, String } from "tsondb/schema/def";
2
+ export declare const Newspaper: Entity<"Newspaper", {
3
+ cost: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Cost", {
4
+ Free: import("tsondb/schema/def").EnumCaseDecl<null>;
5
+ Various: import("tsondb/schema/def").EnumCaseDecl<null>;
6
+ Invaluable: import("tsondb/schema/def").EnumCaseDecl<null>;
7
+ Fixed: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"FixedCost", Object<{
8
+ value: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").FloatType, true>;
9
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"FixedCostTranslation", {
10
+ wrap_in_text: import("tsondb/schema/def").MemberDecl<String, true>;
11
+ }>, false>;
12
+ }>, []>>>;
13
+ Range: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"CostRange", Object<{
14
+ from: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").FloatType, true>;
15
+ to: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").FloatType, true>;
16
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"CostRangeTranslation", {
17
+ wrap_in_text: import("tsondb/schema/def").MemberDecl<String, true>;
18
+ }>, false>;
19
+ }>, []>>>;
20
+ }, []>>, true>;
21
+ src: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRefs", Array<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRef", Object<{
22
+ id: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
23
+ occurrences: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
24
+ initial: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"InitialOccurrence", Object<{
25
+ printing: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, false>;
26
+ pages: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PageRange", Object<{
27
+ first_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
28
+ InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
29
+ InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
30
+ Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
31
+ }, []>>, true>;
32
+ last_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
33
+ InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
34
+ InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
35
+ Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
36
+ }, []>>, false>;
37
+ }>, []>>>, true>;
38
+ }>, []>>, true>;
39
+ revisions: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Revision", {
40
+ Since: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Since", Object<{
41
+ printing: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
42
+ pages: import("tsondb/schema/def").MemberDecl<Array<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PageRange", Object<{
43
+ first_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
44
+ InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
45
+ InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
46
+ Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
47
+ }, []>>, true>;
48
+ last_page: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"Page", {
49
+ InsideCoverFront: import("tsondb/schema/def").EnumCaseDecl<null>;
50
+ InsideCoverBack: import("tsondb/schema/def").EnumCaseDecl<null>;
51
+ Numbered: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").IntegerType>;
52
+ }, []>>, false>;
53
+ }>, []>>>, true>;
54
+ }>, []>>>;
55
+ Deprecated: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"Deprecation", Object<{
56
+ printing: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").IntegerType, true>;
57
+ }>, []>>>;
58
+ }, []>>>, false>;
59
+ }>, true>;
60
+ }>, []>>>, []>>, true>;
61
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"NewspaperTranslation", {
62
+ name: import("tsondb/schema/def").MemberDecl<String, true>;
63
+ topics: import("tsondb/schema/def").MemberDecl<Array<String>, true>;
64
+ placeOfPublication: import("tsondb/schema/def").MemberDecl<String, true>;
65
+ }>, true>;
66
+ }, undefined>;
@@ -0,0 +1,30 @@
1
+ import { Array, Entity, IncludeIdentifier, Object, Required, String } from "tsondb/schema/def";
2
+ import { NestedTranslationMap } from "../../Locale.js";
3
+ import { src } from "../../source/_PublicationRef.js";
4
+ import { Cost } from "./_Item.js";
5
+ export const Newspaper = Entity(import.meta.url, {
6
+ name: "Newspaper",
7
+ namePlural: "Newspapers",
8
+ type: () => Object({
9
+ cost: Required({
10
+ comment: "The cost in silverthalers.",
11
+ type: IncludeIdentifier(Cost),
12
+ }),
13
+ src,
14
+ translations: NestedTranslationMap(Required, "Newspaper", Object({
15
+ name: Required({
16
+ comment: "The newspaper’s name.",
17
+ type: String({ minLength: 1 }),
18
+ }),
19
+ topics: Required({
20
+ comment: "The topics covered by the newspaper.",
21
+ type: Array(String({ minLength: 1 }), { minItems: 1, uniqueItems: true }),
22
+ }),
23
+ placeOfPublication: Required({
24
+ comment: "The place the newspaper is published.",
25
+ type: String({ minLength: 1 }),
26
+ }),
27
+ })),
28
+ }),
29
+ displayName: {},
30
+ });
@@ -11,6 +11,12 @@ export declare const Poison: Entity<"Poison", {
11
11
  level: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"AnimalVenomLevel", {
12
12
  QualityLevel: EnumCase<null>;
13
13
  Constant: EnumCase<Integer>;
14
+ BySubtype: EnumCase<IncludeIdentifier<[], TypeAlias<"AnimalVenomLevelBySubType", Array<Object<{
15
+ value: import("tsondb/schema/def").MemberDecl<Integer, true>;
16
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"AnimalVenomLevelBySubTypeTranslation", {
17
+ name: import("tsondb/schema/def").MemberDecl<String, true>;
18
+ }>, true>;
19
+ }>>, []>>>;
14
20
  }, []>>, true>;
15
21
  is_extractable: import("tsondb/schema/def").MemberDecl<Boolean, true>;
16
22
  }>, []>>>;
@@ -296,6 +302,12 @@ export declare const AnimalVenom: TypeAlias<"AnimalVenom", Object<{
296
302
  level: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"AnimalVenomLevel", {
297
303
  QualityLevel: EnumCase<null>;
298
304
  Constant: EnumCase<Integer>;
305
+ BySubtype: EnumCase<IncludeIdentifier<[], TypeAlias<"AnimalVenomLevelBySubType", Array<Object<{
306
+ value: import("tsondb/schema/def").MemberDecl<Integer, true>;
307
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"AnimalVenomLevelBySubTypeTranslation", {
308
+ name: import("tsondb/schema/def").MemberDecl<String, true>;
309
+ }>, true>;
310
+ }>>, []>>>;
299
311
  }, []>>, true>;
300
312
  is_extractable: import("tsondb/schema/def").MemberDecl<Boolean, true>;
301
313
  }>, []>;
@@ -195,8 +195,24 @@ const AnimalVenomLevel = Enum(import.meta.url, {
195
195
  values: () => ({
196
196
  QualityLevel: EnumCase({ type: null }),
197
197
  Constant: EnumCase({ type: Integer({ minimum: 1, maximum: 6 }) }),
198
+ BySubtype: EnumCase({ type: IncludeIdentifier(AnimalVenomLevelBySubType) }),
198
199
  }),
199
200
  });
201
+ const AnimalVenomLevelBySubType = TypeAlias(import.meta.url, {
202
+ name: "AnimalVenomLevelBySubType",
203
+ type: () => Array(Object({
204
+ value: Required({
205
+ comment: "The poison’s level.",
206
+ type: Integer({ minimum: 1, maximum: 6 }),
207
+ }),
208
+ translations: NestedTranslationMap(Required, "AnimalVenomLevelBySubType", Object({
209
+ name: Required({
210
+ comment: "The subtype name. If there are multiple subtypes with the same level, specify them separately.",
211
+ type: String({ minLength: 1 }),
212
+ }),
213
+ })),
214
+ }), { minItems: 1 }),
215
+ });
200
216
  export const AlchemicalPoison = TypeAlias(import.meta.url, {
201
217
  name: "AlchemicalPoison",
202
218
  type: () => Object({
@@ -315,3 +315,6 @@ export declare const Complexity: Enum<"Complexity", {
315
315
  ap_value: import("tsondb/schema/def").MemberDecl<Integer, true>;
316
316
  }>, []>>>;
317
317
  }, []>;
318
+ export declare const ComplexComplexity: TypeAlias<"ComplexComplexity", Object<{
319
+ ap_value: import("tsondb/schema/def").MemberDecl<Integer, true>;
320
+ }>, []>;
@@ -133,7 +133,7 @@ export const Complexity = Enum(import.meta.url, {
133
133
  Complex: EnumCase({ type: IncludeIdentifier(ComplexComplexity) }),
134
134
  }),
135
135
  });
136
- const ComplexComplexity = TypeAlias(import.meta.url, {
136
+ export const ComplexComplexity = TypeAlias(import.meta.url, {
137
137
  name: "ComplexComplexity",
138
138
  type: () => Object({
139
139
  ap_value: Required({
@@ -38,6 +38,7 @@ export { Liebesspielzeug } from "./equipment/item/Liebesspielzeug.js";
38
38
  export { LuxuryGood } from "./equipment/item/LuxuryGood.js";
39
39
  export { MagicalArtifact } from "./equipment/item/MagicalArtifact.js";
40
40
  export { MusicalInstrument } from "./equipment/item/MusicalInstrument.js";
41
+ export { Newspaper } from "./equipment/item/Newspaper.js";
41
42
  export { OrienteeringAid } from "./equipment/item/OrienteeringAid.js";
42
43
  export { Poison } from "./equipment/item/Poison.js";
43
44
  export { RopeOrChain } from "./equipment/item/RopeOrChain.js";
@@ -38,6 +38,7 @@ export { Liebesspielzeug } from "./equipment/item/Liebesspielzeug.js";
38
38
  export { LuxuryGood } from "./equipment/item/LuxuryGood.js";
39
39
  export { MagicalArtifact } from "./equipment/item/MagicalArtifact.js";
40
40
  export { MusicalInstrument } from "./equipment/item/MusicalInstrument.js";
41
+ export { Newspaper } from "./equipment/item/Newspaper.js";
41
42
  export { OrienteeringAid } from "./equipment/item/OrienteeringAid.js";
42
43
  export { Poison } from "./equipment/item/Poison.js";
43
44
  export { RopeOrChain } from "./equipment/item/RopeOrChain.js";
@@ -982,6 +982,7 @@ export declare const MagicalTradition: Entity<"MagicalTradition", {
982
982
  label: import("tsondb/schema/def").MemberDecl<String, false>;
983
983
  text: import("tsondb/schema/def").MemberDecl<String, true>;
984
984
  }>, []>>>, true>;
985
+ supplemental_content: import("tsondb/schema/def").MemberDecl<String, false>;
985
986
  ap_value_append: import("tsondb/schema/def").MemberDecl<String, false>;
986
987
  ap_value: import("tsondb/schema/def").MemberDecl<String, false>;
987
988
  errata: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], TypeAlias<"Errata", Array<IncludeIdentifier<[], TypeAlias<"Erratum", Object<{
@@ -74,6 +74,10 @@ export const MagicalTradition = Entity(import.meta.url, {
74
74
  comment: "The special rules of the tradition. They should be sorted like they are in the book.",
75
75
  type: Array(IncludeIdentifier(SpecialRule), { minItems: 1 }),
76
76
  }),
77
+ supplemental_content: Optional({
78
+ comment: "Supplemental content for the tradition, such as additional information or clarifications.",
79
+ type: String({ minLength: 1, isMarkdown: true }),
80
+ }),
77
81
  ap_value_append,
78
82
  ap_value: ap_value_l10n,
79
83
  errata: Optional({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.20.0",
3
+ "version": "0.20.2",
4
4
  "description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
5
5
  "keywords": [
6
6
  "tde",