optolith-database-schema 0.34.9 → 0.34.11

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,20 @@
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.34.11](https://github.com/elyukai/optolith-database-schema/compare/v0.34.10...v0.34.11) (2026-03-10)
6
+
7
+
8
+ ### Features
9
+
10
+ * working supernatural creature entity ([f8a174e](https://github.com/elyukai/optolith-database-schema/commit/f8a174efad6dc46e83efd9d6e33155de435e6569))
11
+
12
+ ## [0.34.10](https://github.com/elyukai/optolith-database-schema/compare/v0.34.9...v0.34.10) (2026-03-10)
13
+
14
+
15
+ ### Features
16
+
17
+ * poison cost depending on purchase or sale ([22e6dfd](https://github.com/elyukai/optolith-database-schema/commit/22e6dfda8b2e9425ab7b524fda0276ef549a685c))
18
+
5
19
  ## [0.34.9](https://github.com/elyukai/optolith-database-schema/compare/v0.34.8...v0.34.9) (2026-03-09)
6
20
 
7
21
 
package/gen/types.d.ts CHANGED
@@ -174,6 +174,7 @@ export type EntityMap = {
174
174
  Weapon: Weapon
175
175
  WeaponAccessory: WeaponAccessory
176
176
  WeaponEnchantment: WeaponEnchantment
177
+ WorkingSupernaturalCreature: WorkingSupernaturalCreature
177
178
  ZibiljaRitual: ZibiljaRitual
178
179
  }
179
180
 
@@ -525,6 +526,7 @@ export type TypeAliasMap = {
525
526
  DefaultRangedDamage: DefaultRangedDamage
526
527
  DefiniteBookCostVariant: DefiniteBookCostVariant
527
528
  DemonicPoison: DemonicPoison
529
+ DependingOnPurchaseOrSalePoisonCost: DependingOnPurchaseOrSalePoisonCost
528
530
  Deprecation: Deprecation
529
531
  DerivedCharacteristicBase: DerivedCharacteristicBase
530
532
  DerivedCharacteristicBuyBack: DerivedCharacteristicBuyBack
@@ -21430,6 +21432,10 @@ export type EquipmentIdentifier =
21430
21432
  kind: "WeaponAccessory"
21431
21433
  WeaponAccessory: WeaponAccessory_ID
21432
21434
  }
21435
+ | {
21436
+ kind: "WorkingSupernaturalCreature"
21437
+ WorkingSupernaturalCreature: WorkingSupernaturalCreature_ID
21438
+ }
21433
21439
 
21434
21440
  export interface GemOrPreciousStone {
21435
21441
  /**
@@ -22735,6 +22741,10 @@ export type PoisonCost =
22735
22741
  kind: "Indefinite"
22736
22742
  Indefinite: IndefinitePoisonCost
22737
22743
  }
22744
+ | {
22745
+ kind: "DependingOnPurchaseOrSale"
22746
+ DependingOnPurchaseOrSale: DependingOnPurchaseOrSalePoisonCost
22747
+ }
22738
22748
 
22739
22749
  export interface NoPoisonCost {
22740
22750
  /**
@@ -22768,6 +22778,21 @@ export interface IndefinitePoisonCostTranslation {
22768
22778
  description: string
22769
22779
  }
22770
22780
 
22781
+ /**
22782
+ * The cost depends on whether the poison is being purchased or sold.
22783
+ */
22784
+ export interface DependingOnPurchaseOrSalePoisonCost {
22785
+ /**
22786
+ * The cost when purchasing the poison.
22787
+ */
22788
+ purchase: number
22789
+
22790
+ /**
22791
+ * The cost when selling the poison.
22792
+ */
22793
+ sale: number
22794
+ }
22795
+
22771
22796
  export interface RopeOrChain {
22772
22797
  /**
22773
22798
  * The cost in silverthalers.
@@ -23229,6 +23254,54 @@ export interface WeaponAccessoryTranslation {
23229
23254
  errata?: Errata
23230
23255
  }
23231
23256
 
23257
+ export interface WorkingSupernaturalCreature {
23258
+ /**
23259
+ * The cost in silverthalers.
23260
+ */
23261
+ cost: Cost
23262
+
23263
+ /**
23264
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
23265
+ */
23266
+ src: PublicationRefs
23267
+
23268
+ /**
23269
+ * All translations for the entry, identified by IETF language tag (BCP47).
23270
+ */
23271
+ translations: {
23272
+ [localeId: string]: WorkingSupernaturalCreatureTranslation
23273
+ }
23274
+ }
23275
+
23276
+ /**
23277
+ * The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
23278
+ */
23279
+ export type WorkingSupernaturalCreature_ID = string
23280
+
23281
+ export interface WorkingSupernaturalCreatureTranslation {
23282
+ /**
23283
+ * The working creature’s name.
23284
+ */
23285
+ name: string
23286
+
23287
+ /**
23288
+ * The working creature’s appearance.
23289
+ */
23290
+ appearance: string
23291
+
23292
+ /**
23293
+ * The working creature’s components.
23294
+ */
23295
+ components: string
23296
+
23297
+ /**
23298
+ * The working creature’s use.
23299
+ */
23300
+ use: string
23301
+
23302
+ errata?: Errata
23303
+ }
23304
+
23232
23305
  export interface FamiliarsTrick {
23233
23306
  /**
23234
23307
  * The animal types this trick is available to. Either it is available to all or only a list of specific animal types.
package/lib/main.js CHANGED
@@ -158,6 +158,7 @@ export const schema = new Schema([
158
158
  Types.Weapon,
159
159
  Types.WeaponAccessory,
160
160
  Types.WeaponEnchantment,
161
+ Types.WorkingSupernaturalCreature,
161
162
  Types.ZibiljaRitual,
162
163
  ], Types.Locale);
163
164
  // /**
@@ -163,4 +163,5 @@ export declare const WandEnchantmentIdentifier: () => R;
163
163
  export declare const WeaponAccessoryIdentifier: () => R;
164
164
  export declare const WeaponEnchantmentIdentifier: () => R;
165
165
  export declare const WeaponIdentifier: () => R;
166
+ export declare const WorkingSupernaturalCreatureIdentifier: () => R;
166
167
  export declare const ZibiljaRitualIdentifier: () => R;
@@ -52,6 +52,7 @@ import { TravelGearOrTool } from "./equipment/item/TravelGearOrTool.js";
52
52
  import { Vehicle } from "./equipment/item/Vehicle.js";
53
53
  import { Weapon } from "./equipment/item/Weapon.js";
54
54
  import { WeaponAccessory } from "./equipment/item/WeaponAccessory.js";
55
+ import { WorkingSupernaturalCreature } from "./equipment/item/WorkingSupernaturalCreature.js";
55
56
  import { ExperienceLevel } from "./ExperienceLevel.js";
56
57
  import { EyeColor } from "./EyeColor.js";
57
58
  import { HairColor } from "./HairColor.js";
@@ -314,4 +315,5 @@ export const WandEnchantmentIdentifier = () => R(WandEnchantment);
314
315
  export const WeaponAccessoryIdentifier = () => R(WeaponAccessory);
315
316
  export const WeaponEnchantmentIdentifier = () => R(WeaponEnchantment);
316
317
  export const WeaponIdentifier = () => R(Weapon);
318
+ export const WorkingSupernaturalCreatureIdentifier = () => R(WorkingSupernaturalCreature);
317
319
  export const ZibiljaRitualIdentifier = () => R(ZibiljaRitual);
@@ -345,6 +345,7 @@ export declare const EquipmentIdentifier: DB.Enum<"EquipmentIdentifier", {
345
345
  Vehicle: DB.EnumCase<DB.ReferenceIdentifier>;
346
346
  Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
347
347
  WeaponAccessory: DB.EnumCase<DB.ReferenceIdentifier>;
348
+ WorkingSupernaturalCreature: DB.EnumCase<DB.ReferenceIdentifier>;
348
349
  }, []>;
349
350
  export declare const AdvancedSkillStyleSpecialAbilityIdentifier: DB.Enum<"AdvancedSkillStyleSpecialAbilityIdentifier", {
350
351
  AdvancedCombatSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
@@ -1,5 +1,5 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
- import { AdvancedCombatSpecialAbilityIdentifier, AdvancedKarmaSpecialAbilityIdentifier, AdvancedMagicalSpecialAbilityIdentifier, AdvancedSkillSpecialAbilityIdentifier, AdvantageIdentifier, AmmunitionIdentifier, AncestorGlyphIdentifier, AnimalCareIdentifier, AnimalIdentifier, AnimalShapeIdentifier, AnimalShapeSizeIdentifier, AnimistPowerIdentifier, ArcaneBardTraditionIdentifier, ArcaneDancerTraditionIdentifier, ArcaneOrbEnchantmentIdentifier, ArmorIdentifier, AspectIdentifier, AttireEnchantmentIdentifier, AttributeIdentifier, BandageOrRemedyIdentifier, BeutelzauberIdentifier, 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, HaubenzauberIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillOrSupplyIdentifier, InstrumentEnchantmentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, 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";
2
+ import { AdvancedCombatSpecialAbilityIdentifier, AdvancedKarmaSpecialAbilityIdentifier, AdvancedMagicalSpecialAbilityIdentifier, AdvancedSkillSpecialAbilityIdentifier, AdvantageIdentifier, AmmunitionIdentifier, AncestorGlyphIdentifier, AnimalCareIdentifier, AnimalIdentifier, AnimalShapeIdentifier, AnimalShapeSizeIdentifier, AnimistPowerIdentifier, ArcaneBardTraditionIdentifier, ArcaneDancerTraditionIdentifier, ArcaneOrbEnchantmentIdentifier, ArmorIdentifier, AspectIdentifier, AttireEnchantmentIdentifier, AttributeIdentifier, BandageOrRemedyIdentifier, BeutelzauberIdentifier, 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, HaubenzauberIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillOrSupplyIdentifier, InstrumentEnchantmentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, 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, WorkingSupernaturalCreatureIdentifier, ZibiljaRitualIdentifier, } from "./_Identifier.js";
3
3
  export const ActivatableIdentifier = DB.Enum(import.meta.url, {
4
4
  name: "ActivatableIdentifier",
5
5
  values: () => ({
@@ -305,6 +305,7 @@ export const EquipmentIdentifier = DB.Enum(import.meta.url, {
305
305
  Vehicle: DB.EnumCase({ type: VehicleIdentifier() }),
306
306
  Weapon: DB.EnumCase({ type: WeaponIdentifier() }),
307
307
  WeaponAccessory: DB.EnumCase({ type: WeaponAccessoryIdentifier() }),
308
+ WorkingSupernaturalCreature: DB.EnumCase({ type: WorkingSupernaturalCreatureIdentifier() }),
308
309
  }),
309
310
  });
310
311
  export const AdvancedSkillStyleSpecialAbilityIdentifier = DB.Enum(import.meta.url, {
@@ -34,6 +34,7 @@ export declare const EquipmentPackage: DB.Entity<"EquipmentPackage", {
34
34
  Vehicle: DB.EnumCase<DB.ReferenceIdentifier>;
35
35
  Weapon: DB.EnumCase<DB.ReferenceIdentifier>;
36
36
  WeaponAccessory: DB.EnumCase<DB.ReferenceIdentifier>;
37
+ WorkingSupernaturalCreature: DB.EnumCase<DB.ReferenceIdentifier>;
37
38
  }, []>>, true>;
38
39
  number: DB.MemberDecl<DB.Integer, false>;
39
40
  }>, []>>>, false>;
@@ -254,6 +254,10 @@ export declare const Poison: DB.Entity<"Poison", {
254
254
  description: DB.MemberDecl<DB.String, true>;
255
255
  }>, true>;
256
256
  }>, []>>>;
257
+ DependingOnPurchaseOrSale: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"DependingOnPurchaseOrSalePoisonCost", DB.Object<{
258
+ purchase: DB.MemberDecl<DB.Float, true>;
259
+ sale: DB.MemberDecl<DB.Float, true>;
260
+ }>, []>>>;
257
261
  }, []>>, false>;
258
262
  src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
259
263
  id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
@@ -111,6 +111,10 @@ const PoisonCost = DB.Enum(import.meta.url, {
111
111
  None: DB.EnumCase({ type: DB.IncludeIdentifier(NoPoisonCost) }),
112
112
  Constant: DB.EnumCase({ type: DB.Float({ minimum: { value: 0, isExclusive: true } }) }),
113
113
  Indefinite: DB.EnumCase({ type: DB.IncludeIdentifier(IndefinitePoisonCost) }),
114
+ DependingOnPurchaseOrSale: DB.EnumCase({
115
+ comment: "The cost depends on whether the poison is being purchased or sold.",
116
+ type: DB.IncludeIdentifier(DependingOnPurchaseOrSalePoisonCost),
117
+ }),
114
118
  }),
115
119
  });
116
120
  export const NoPoisonCost = DB.TypeAlias(import.meta.url, {
@@ -135,6 +139,20 @@ export const IndefinitePoisonCost = DB.TypeAlias(import.meta.url, {
135
139
  })),
136
140
  }),
137
141
  });
142
+ const DependingOnPurchaseOrSalePoisonCost = DB.TypeAlias(import.meta.url, {
143
+ name: "DependingOnPurchaseOrSalePoisonCost",
144
+ comment: "The cost depends on whether the poison is being purchased or sold.",
145
+ type: () => DB.Object({
146
+ purchase: DB.Required({
147
+ comment: "The cost when purchasing the poison.",
148
+ type: DB.Float({ minimum: { value: 0, isExclusive: true } }),
149
+ }),
150
+ sale: DB.Required({
151
+ comment: "The cost when selling the poison.",
152
+ type: DB.Float({ minimum: { value: 0, isExclusive: true } }),
153
+ }),
154
+ }),
155
+ });
138
156
  export const ConstantPoisonTime = DB.TypeAlias(import.meta.url, {
139
157
  name: "ConstantPoisonTime",
140
158
  type: () => DB.Object({
@@ -0,0 +1,72 @@
1
+ import * as DB from "tsondb/schema/dsl";
2
+ export declare const WorkingSupernaturalCreature: DB.Entity<"WorkingSupernaturalCreature", {
3
+ cost: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Cost", {
4
+ Free: DB.EnumCase<null>;
5
+ Various: DB.EnumCase<null>;
6
+ Invaluable: DB.EnumCase<null>;
7
+ Fixed: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"FixedCost", DB.Object<{
8
+ value: DB.MemberDecl<DB.Float, true>;
9
+ translations: DB.MemberDecl<DB.NestedEntityMap<"FixedCostTranslation", {
10
+ wrap_in_text: DB.MemberDecl<DB.String, true>;
11
+ }>, false>;
12
+ }>, []>>>;
13
+ Range: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"CostRange", DB.Object<{
14
+ from: DB.MemberDecl<DB.Float, true>;
15
+ to: DB.MemberDecl<DB.Float, true>;
16
+ translations: DB.MemberDecl<DB.NestedEntityMap<"CostRangeTranslation", {
17
+ wrap_in_text: DB.MemberDecl<DB.String, true>;
18
+ }>, false>;
19
+ }>, []>>>;
20
+ }, []>>, true>;
21
+ src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
22
+ id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
23
+ occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
24
+ initial: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"InitialOccurrence", DB.Object<{
25
+ printing: DB.MemberDecl<DB.Integer, false>;
26
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
27
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
28
+ InsideCoverFront: DB.EnumCase<null>;
29
+ InsideCoverBack: DB.EnumCase<null>;
30
+ Numbered: DB.EnumCase<DB.Integer>;
31
+ }, []>>, true>;
32
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
33
+ InsideCoverFront: DB.EnumCase<null>;
34
+ InsideCoverBack: DB.EnumCase<null>;
35
+ Numbered: DB.EnumCase<DB.Integer>;
36
+ }, []>>, false>;
37
+ }>, []>>>, true>;
38
+ isRemoved: DB.MemberDecl<DB.Boolean, false>;
39
+ }>, []>>, true>;
40
+ revisions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"Revision", {
41
+ Since: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Since", DB.Object<{
42
+ printing: DB.MemberDecl<DB.Integer, true>;
43
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
44
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
45
+ InsideCoverFront: DB.EnumCase<null>;
46
+ InsideCoverBack: DB.EnumCase<null>;
47
+ Numbered: DB.EnumCase<DB.Integer>;
48
+ }, []>>, true>;
49
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
50
+ InsideCoverFront: DB.EnumCase<null>;
51
+ InsideCoverBack: DB.EnumCase<null>;
52
+ Numbered: DB.EnumCase<DB.Integer>;
53
+ }, []>>, false>;
54
+ }>, []>>>, true>;
55
+ }>, []>>>;
56
+ Deprecated: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Deprecation", DB.Object<{
57
+ printing: DB.MemberDecl<DB.Integer, true>;
58
+ }>, []>>>;
59
+ }, []>>>, false>;
60
+ }>, true>;
61
+ }>, []>>>, []>>, true>;
62
+ translations: DB.MemberDecl<DB.NestedEntityMap<"WorkingSupernaturalCreatureTranslation", {
63
+ name: DB.MemberDecl<DB.String, true>;
64
+ appearance: DB.MemberDecl<DB.String, true>;
65
+ components: DB.MemberDecl<DB.String, true>;
66
+ use: DB.MemberDecl<DB.String, true>;
67
+ errata: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"Errata", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"Erratum", DB.Object<{
68
+ date: DB.MemberDecl<DB.Date, true>;
69
+ description: DB.MemberDecl<DB.String, true>;
70
+ }>, []>>>, []>>, false>;
71
+ }>, true>;
72
+ }, undefined>;
@@ -0,0 +1,44 @@
1
+ import * as DB from "tsondb/schema/dsl";
2
+ import { NestedTranslationMap } from "../../Locale.js";
3
+ import { Errata } from "../../source/_Erratum.js";
4
+ import { src } from "../../source/_PublicationRef.js";
5
+ import { Cost } from "./_Item.js";
6
+ export const WorkingSupernaturalCreature = DB.Entity(import.meta.url, {
7
+ name: "WorkingSupernaturalCreature",
8
+ namePlural: "WorkingSupernaturalCreatures",
9
+ type: () => DB.Object({
10
+ cost: DB.Required({
11
+ comment: "The cost in silverthalers.",
12
+ type: DB.IncludeIdentifier(Cost),
13
+ }),
14
+ src,
15
+ translations: NestedTranslationMap(DB.Required, "WorkingSupernaturalCreature", DB.Object({
16
+ name: DB.Required({
17
+ comment: "The working creature’s name.",
18
+ type: DB.String({ minLength: 1 }),
19
+ }),
20
+ appearance: DB.Required({
21
+ comment: "The working creature’s appearance.",
22
+ type: DB.String({ minLength: 1 }),
23
+ }),
24
+ components: DB.Required({
25
+ comment: "The working creature’s components.",
26
+ type: DB.String({ minLength: 1 }),
27
+ }),
28
+ use: DB.Required({
29
+ comment: "The working creature’s use.",
30
+ type: DB.String({ minLength: 1 }),
31
+ }),
32
+ errata: DB.Optional({
33
+ type: DB.IncludeIdentifier(Errata),
34
+ }),
35
+ })),
36
+ }),
37
+ instanceDisplayName: {},
38
+ uniqueConstraints: [
39
+ {
40
+ entityMapKeyPath: "translations",
41
+ keyPathInEntityMap: "name",
42
+ },
43
+ ],
44
+ });
@@ -51,10 +51,12 @@ export { TravelGearOrTool } from "./equipment/item/TravelGearOrTool.js";
51
51
  export { Vehicle } from "./equipment/item/Vehicle.js";
52
52
  export { Weapon } from "./equipment/item/Weapon.js";
53
53
  export { WeaponAccessory } from "./equipment/item/WeaponAccessory.js";
54
+ export { WorkingSupernaturalCreature } from "./equipment/item/WorkingSupernaturalCreature.ts";
54
55
  export { ExperienceLevel } from "./ExperienceLevel.js";
55
56
  export { EyeColor } from "./EyeColor.js";
56
57
  export { FamiliarsTrick } from "./FamiliarsTrick.js";
57
58
  export { HairColor } from "./HairColor.js";
59
+ export { HomunculusType } from "./HomunculusType.js";
58
60
  export { Curriculum, Guideline, LessonPackage } from "./Lessons.js";
59
61
  export { LiturgicalChant } from "./LiturgicalChant.js";
60
62
  export { Locale } from "./Locale.js";
@@ -71,7 +73,6 @@ export { MagicalRune } from "./magicalActions/MagicalRune.js";
71
73
  export { ZibiljaRitual } from "./magicalActions/ZibiljaRitual.js";
72
74
  export { MetaCondition } from "./MetaCondition.js";
73
75
  export { PactCategory } from "./PactCategory.js";
74
- export { HomunculusType } from "./HomunculusType.js";
75
76
  export { Patron } from "./Patron.js";
76
77
  export { PatronCategory } from "./PatronCategory.js";
77
78
  export { PersonalityTrait } from "./PersonalityTrait.js";
@@ -51,10 +51,12 @@ export { TravelGearOrTool } from "./equipment/item/TravelGearOrTool.js";
51
51
  export { Vehicle } from "./equipment/item/Vehicle.js";
52
52
  export { Weapon } from "./equipment/item/Weapon.js";
53
53
  export { WeaponAccessory } from "./equipment/item/WeaponAccessory.js";
54
+ export { WorkingSupernaturalCreature } from "./equipment/item/WorkingSupernaturalCreature.js";
54
55
  export { ExperienceLevel } from "./ExperienceLevel.js";
55
56
  export { EyeColor } from "./EyeColor.js";
56
57
  export { FamiliarsTrick } from "./FamiliarsTrick.js";
57
58
  export { HairColor } from "./HairColor.js";
59
+ export { HomunculusType } from "./HomunculusType.js";
58
60
  export { Curriculum, Guideline, LessonPackage } from "./Lessons.js";
59
61
  export { LiturgicalChant } from "./LiturgicalChant.js";
60
62
  export { Locale } from "./Locale.js";
@@ -71,7 +73,6 @@ export { MagicalRune } from "./magicalActions/MagicalRune.js";
71
73
  export { ZibiljaRitual } from "./magicalActions/ZibiljaRitual.js";
72
74
  export { MetaCondition } from "./MetaCondition.js";
73
75
  export { PactCategory } from "./PactCategory.js";
74
- export { HomunculusType } from "./HomunculusType.js";
75
76
  export { Patron } from "./Patron.js";
76
77
  export { PatronCategory } from "./PatronCategory.js";
77
78
  export { PersonalityTrait } from "./PersonalityTrait.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.34.9",
3
+ "version": "0.34.11",
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",