@optolith/database-schema 0.68.0 → 0.69.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 (38) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/gen/types.d.ts +16 -0
  3. package/lib/cache/index.d.ts +4 -1
  4. package/lib/cache/index.js +5 -2
  5. package/lib/cache/tradeSecrets.d.ts +23 -0
  6. package/lib/cache/tradeSecrets.js +126 -0
  7. package/lib/types/Disease.d.ts +41 -0
  8. package/lib/types/equipment/item/Armor.d.ts +41 -0
  9. package/lib/types/equipment/item/BandageOrRemedy.d.ts +41 -0
  10. package/lib/types/equipment/item/Book.d.ts +41 -0
  11. package/lib/types/equipment/item/CeremonialItem.d.ts +41 -0
  12. package/lib/types/equipment/item/Clothes.d.ts +41 -0
  13. package/lib/types/equipment/item/Container.d.ts +41 -0
  14. package/lib/types/equipment/item/Elixir.d.ts +41 -0
  15. package/lib/types/equipment/item/HerbalAid.d.ts +41 -0
  16. package/lib/types/equipment/item/IlluminationLightSource.d.ts +41 -0
  17. package/lib/types/equipment/item/IlluminationRefillOrSupply.d.ts +41 -0
  18. package/lib/types/equipment/item/Jewelry.d.ts +41 -0
  19. package/lib/types/equipment/item/Laboratory.d.ts +41 -0
  20. package/lib/types/equipment/item/Liebesspielzeug.d.ts +41 -0
  21. package/lib/types/equipment/item/LuxuryGood.d.ts +41 -0
  22. package/lib/types/equipment/item/MagicalArtifact.d.ts +41 -0
  23. package/lib/types/equipment/item/MusicalInstrument.d.ts +41 -0
  24. package/lib/types/equipment/item/OrienteeringAid.d.ts +41 -0
  25. package/lib/types/equipment/item/Poison.d.ts +164 -0
  26. package/lib/types/equipment/item/RopeOrChain.d.ts +41 -0
  27. package/lib/types/equipment/item/Stationery.d.ts +41 -0
  28. package/lib/types/equipment/item/ThievesTool.d.ts +41 -0
  29. package/lib/types/equipment/item/ToolOfTheTrade.d.ts +41 -0
  30. package/lib/types/equipment/item/TravelGearOrTool.d.ts +41 -0
  31. package/lib/types/equipment/item/Vehicle.d.ts +41 -0
  32. package/lib/types/equipment/item/Weapon.d.ts +41 -0
  33. package/lib/types/equipment/item/WeaponAccessory.d.ts +41 -0
  34. package/lib/types/equipment/item/_Herbary.d.ts +82 -0
  35. package/lib/types/equipment/item/_Herbary.js +3 -0
  36. package/lib/types/equipment/item/_Item.d.ts +123 -0
  37. package/lib/types/equipment/item/_Item.js +3 -1
  38. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
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.69.0](https://github.com/Optolith/database-schema/compare/v0.68.1...v0.69.0) (2026-09-27)
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * ancestor blood advantage cache name typo
10
+
11
+ ### Features
12
+
13
+ * derived trade secrets cache ([18e1ea8](https://github.com/Optolith/database-schema/commit/18e1ea889894108647f3b844c6f84f19beb8eac1))
14
+
15
+ ### Bug Fixes
16
+
17
+ * ancestor blood advantage cache name typo ([b7d2592](https://github.com/Optolith/database-schema/commit/b7d2592cf6f8542761fa0f46b76630f57011047e))
18
+ ## [0.68.1](https://github.com/Optolith/database-schema/compare/v0.68.0...v0.68.1) (2026-09-27)
19
+
20
+ ### Features
21
+
22
+ * optional separate sources for derived trade secrets ([9690ea4](https://github.com/Optolith/database-schema/commit/9690ea40f3fd2e6b26c54421ab9909b75036f409))
5
23
  ## [0.68.0](https://github.com/Optolith/database-schema/compare/v0.67.0...v0.68.0) (2026-09-27)
6
24
 
7
25
  ### ⚠ BREAKING CHANGES
package/gen/types.d.ts CHANGED
@@ -5500,6 +5500,9 @@ export interface CauseTranslation {
5500
5500
  note?: string
5501
5501
  }
5502
5502
 
5503
+ /**
5504
+ * A recipe’s trade secret inherits the source references from its recipe. Specifying source references here instead means none of the recipe’s source references are inherited.
5505
+ */
5503
5506
  export interface RecipeTradeSecret {
5504
5507
  /**
5505
5508
  * The AP value of the trade secret.
@@ -5510,6 +5513,11 @@ export interface RecipeTradeSecret {
5510
5513
  * The prerequisites of the trade secret, if any.
5511
5514
  */
5512
5515
  prerequisites?: PlainGeneralPrerequisites
5516
+
5517
+ /**
5518
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
5519
+ */
5520
+ src?: PublicationRefs
5513
5521
  }
5514
5522
 
5515
5523
  export type PlainGeneralPrerequisites = PlainPrerequisites<GeneralPrerequisiteGroup>
@@ -12328,11 +12336,19 @@ export type Complexity =
12328
12336
  Complex: ComplexComplexity
12329
12337
  }
12330
12338
 
12339
+ /**
12340
+ * A item’s trade secret inherits the source references from its item. Specifying source references here instead means none of the item’s source references are inherited.
12341
+ */
12331
12342
  export interface ComplexComplexity {
12332
12343
  /**
12333
12344
  * The AP value for the trade secret.
12334
12345
  */
12335
12346
  ap_value: number
12347
+
12348
+ /**
12349
+ * References to where in which publications this entry has been defined. Entries may also be added or removed in later printings.
12350
+ */
12351
+ src?: PublicationRefs
12336
12352
  }
12337
12353
 
12338
12354
  /**
@@ -4,11 +4,13 @@ import { type ActivatableSelectOptionsCache, type ResolvedSelectOption, type Res
4
4
  import { type AncestorBloodAdvantagesCache } from "./ancestorBloodAdvantages.ts";
5
5
  import { type MagicalAndBlessedAdvantagesAndDisadvantagesCache } from "./magicalAndBlessedAdvantagesAndDisadvantages.ts";
6
6
  import { type NewApplicationsAndUsesCache, type ResolvedNewSkillApplication, type ResolvedSkillUse } from "./newApplicationsAndUses.ts";
7
+ import { type DerivedTradeSecretsCache } from "./tradeSecrets.ts";
7
8
  /**
8
9
  * Identifiers of specific entries in the database that are used for creating the cache.
9
10
  */
10
11
  export type IdMap = {
11
12
  Advantage: Record<"Blessed" | "Spellcaster", string>;
13
+ GeneralSpecialAbility: Record<"Weaponsmith" | "Armorer", string>;
12
14
  MagicalSpecialAbility: Record<"PropertyKnowledge", string>;
13
15
  KarmaSpecialAbility: Record<"AspectKnowledge", string>;
14
16
  };
@@ -17,7 +19,8 @@ export type IdMap = {
17
19
  */
18
20
  export type Cache = {
19
21
  activatableSelectOptions: ActivatableSelectOptionsCache;
20
- sncestorBloodAdvantages: AncestorBloodAdvantagesCache;
22
+ ancestorBloodAdvantages: AncestorBloodAdvantagesCache;
23
+ derivedTradeSecrets: DerivedTradeSecretsCache;
21
24
  magicalAndBlessedAdvantagesAndDisadvantages: MagicalAndBlessedAdvantagesAndDisadvantagesCache;
22
25
  newApplicationsAndUses: NewApplicationsAndUsesCache;
23
26
  };
@@ -2,6 +2,7 @@ import { activatableSelectOptionsCacheBuilder, } from "./activatableSelectOption
2
2
  import { buildAncestorBloodAdvantagesCache, } from "./ancestorBloodAdvantages.js";
3
3
  import { buildMagicalAndBlessedAdvantagesAndDisadvantagesCache, } from "./magicalAndBlessedAdvantagesAndDisadvantages.js";
4
4
  import { buildNewApplicationsAndUsesCache, } from "./newApplicationsAndUses.js";
5
+ import { buildDerivedTradeSecretsCache } from "./tradeSecrets.js";
5
6
  /**
6
7
  * Creates the cache by precomputing all necessary data from the database.
7
8
  * @param db The TSONDB instance containing the database.
@@ -10,12 +11,14 @@ import { buildNewApplicationsAndUsesCache, } from "./newApplicationsAndUses.js";
10
11
  */
11
12
  export const createCache = (db, idMap) => {
12
13
  const activatableSelectOptions = activatableSelectOptionsCacheBuilder(db, idMap);
13
- const sncestorBloodAdvantages = buildAncestorBloodAdvantagesCache(db, idMap);
14
+ const ancestorBloodAdvantages = buildAncestorBloodAdvantagesCache(db, idMap);
15
+ const derivedTradeSecrets = buildDerivedTradeSecretsCache(db, idMap);
14
16
  const magicalAndBlessedAdvantagesAndDisadvantages = buildMagicalAndBlessedAdvantagesAndDisadvantagesCache(db, idMap);
15
17
  const newApplicationsAndUses = buildNewApplicationsAndUsesCache(db, idMap, activatableSelectOptions);
16
18
  return {
17
19
  activatableSelectOptions,
18
- sncestorBloodAdvantages,
20
+ ancestorBloodAdvantages,
21
+ derivedTradeSecrets,
19
22
  magicalAndBlessedAdvantagesAndDisadvantages,
20
23
  newApplicationsAndUses,
21
24
  };
@@ -0,0 +1,23 @@
1
+ import { Case } from "tsondb/schema/gen";
2
+ import type { ArmorComplexity, Complexity, EntityMap, EquipmentIdentifier, TradeSecret } from "../../gen/types.js";
3
+ import type { CacheBuilder } from "./internal.ts";
4
+ type EquipmentEntitiesWithComplexities = {
5
+ [K in EquipmentIdentifier["kind"]]: EntityMap[K] extends {
6
+ complexity?: Complexity | ArmorComplexity;
7
+ } ? K : never;
8
+ }[EquipmentIdentifier["kind"]];
9
+ type HerbaryEntitiesWithTradeSecrets = "Disease" | "Elixir" | "HerbalAid" | "Poison";
10
+ export type DerivedTradeSecretsCache = {
11
+ equipment: {
12
+ [K in EquipmentEntitiesWithComplexities]: Record<string, TradeSecret>;
13
+ };
14
+ herbary: {
15
+ [K in HerbaryEntitiesWithTradeSecrets]: Record<string, TradeSecret>;
16
+ };
17
+ all: {
18
+ id: Case<"TradeSecret" | EquipmentEntitiesWithComplexities | HerbaryEntitiesWithTradeSecrets, string>;
19
+ content: TradeSecret;
20
+ }[];
21
+ };
22
+ export declare const buildDerivedTradeSecretsCache: CacheBuilder<DerivedTradeSecretsCache>;
23
+ export {};
@@ -0,0 +1,126 @@
1
+ import { assertExhaustive } from "@elyukai/utils/typeSafety";
2
+ import { Case } from "tsondb/schema/gen";
3
+ const emptyDerivedEquipmentTradeSecretsCache = {
4
+ Armor: {},
5
+ BandageOrRemedy: {},
6
+ Book: {},
7
+ CeremonialItem: {},
8
+ Clothes: {},
9
+ Container: {},
10
+ IlluminationLightSource: {},
11
+ IlluminationRefillOrSupply: {},
12
+ Jewelry: {},
13
+ Laboratory: {},
14
+ Liebesspielzeug: {},
15
+ LuxuryGood: {},
16
+ MagicalArtifact: {},
17
+ MusicalInstrument: {},
18
+ OrienteeringAid: {},
19
+ RopeOrChain: {},
20
+ Stationery: {},
21
+ ThievesTool: {},
22
+ ToolOfTheTrade: {},
23
+ TravelGearOrTool: {},
24
+ Vehicle: {},
25
+ Weapon: {},
26
+ WeaponAccessory: {},
27
+ };
28
+ const emptyDerivedHerbaryTradeSecretsCache = {
29
+ Disease: {},
30
+ Elixir: {},
31
+ HerbalAid: {},
32
+ Poison: {},
33
+ };
34
+ export const buildDerivedTradeSecretsCache = (database, idMap) => {
35
+ const cache = {
36
+ equipment: emptyDerivedEquipmentTradeSecretsCache,
37
+ herbary: emptyDerivedHerbaryTradeSecretsCache,
38
+ all: database.getAllInstanceContainersOfEntity("TradeSecret").map(container => ({
39
+ id: Case("TradeSecret", container.id),
40
+ content: container.content,
41
+ })),
42
+ };
43
+ for (const entity of Object.keys(cache.equipment)) {
44
+ for (const container of database.getAllInstanceContainersOfEntity(entity)) {
45
+ if (container.content.complexity && container.content.complexity.kind === "Complex") {
46
+ const derivedTradeSecret = {
47
+ ap_value: Case("Fixed", container.content.complexity.Complex.ap_value),
48
+ is_secret_knowledge: false,
49
+ prerequisites: entity === "Weapon"
50
+ ? [
51
+ Case("Single", Case("Activatable", {
52
+ id: Case("GeneralSpecialAbility", idMap.GeneralSpecialAbility.Weaponsmith),
53
+ active: true,
54
+ })),
55
+ ]
56
+ : entity === "Armor"
57
+ ? [
58
+ Case("Single", Case("Activatable", {
59
+ id: Case("GeneralSpecialAbility", idMap.GeneralSpecialAbility.Armorer),
60
+ active: true,
61
+ })),
62
+ ]
63
+ : undefined,
64
+ src: container.content.complexity.Complex.src ?? container.content.src,
65
+ translations: Object.fromEntries(Object.entries(container.content.translations).map(([lang, translation]) => [
66
+ lang,
67
+ {
68
+ name: translation.name,
69
+ },
70
+ ])),
71
+ };
72
+ cache.equipment[entity][container.id] = derivedTradeSecret;
73
+ cache.all.push({
74
+ id: Case(entity, container.id),
75
+ content: derivedTradeSecret,
76
+ });
77
+ }
78
+ }
79
+ }
80
+ const addTradeSecretToHerbaryCache = (entity, container, tradeSecret) => {
81
+ const derivedTradeSecret = {
82
+ ap_value: Case("Fixed", tradeSecret.ap_value),
83
+ is_secret_knowledge: false,
84
+ prerequisites: tradeSecret.prerequisites,
85
+ src: tradeSecret.src ?? container.content.src,
86
+ translations: Object.fromEntries(Object.entries(container.content.translations).map(([lang, translation]) => [
87
+ lang,
88
+ {
89
+ name: translation.name,
90
+ },
91
+ ])),
92
+ };
93
+ cache.herbary[entity][container.id] = derivedTradeSecret;
94
+ cache.all.push({
95
+ id: Case(entity, container.id),
96
+ content: derivedTradeSecret,
97
+ });
98
+ };
99
+ for (const entity of Object.keys(emptyDerivedHerbaryTradeSecretsCache)) {
100
+ switch (entity) {
101
+ case "Disease":
102
+ case "Elixir":
103
+ case "HerbalAid":
104
+ for (const container of database.getAllInstanceContainersOfEntity(entity)) {
105
+ if (container.content.trade_secret) {
106
+ addTradeSecretToHerbaryCache(entity, container, container.content.trade_secret);
107
+ }
108
+ }
109
+ break;
110
+ case "Poison":
111
+ for (const container of database.getAllInstanceContainersOfEntity(entity)) {
112
+ if (container.content.source_type.kind === "AlchemicalPoison") {
113
+ addTradeSecretToHerbaryCache(entity, container, container.content.source_type.AlchemicalPoison.trade_secret);
114
+ }
115
+ else if (container.content.source_type.kind == "AnimalVenom" &&
116
+ container.content.source_type.AnimalVenom.complexity?.kind === "Complex") {
117
+ addTradeSecretToHerbaryCache(entity, container, container.content.source_type.AnimalVenom.complexity.Complex);
118
+ }
119
+ }
120
+ break;
121
+ default:
122
+ return assertExhaustive(entity);
123
+ }
124
+ }
125
+ return cache;
126
+ };
@@ -40,6 +40,47 @@ export declare const Disease: DB.Entity<"Disease", {
40
40
  }>, true>;
41
41
  }>, [T: DB.Param<"T", DB.Type>]>>>;
42
42
  }, [T: DB.Param<"T", DB.Type>]>>>, [T: DB.Param<"T", DB.Type>]>>, []>>, false>;
43
+ src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
44
+ id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
45
+ occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
46
+ initial: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"InitialOccurrence", DB.Object<{
47
+ printing: DB.MemberDecl<DB.Integer, false>;
48
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
49
+ first_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
+ }, []>>, true>;
54
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
55
+ InsideCoverFront: DB.EnumCase<null>;
56
+ InsideCoverBack: DB.EnumCase<null>;
57
+ Numbered: DB.EnumCase<DB.Integer>;
58
+ }, []>>, false>;
59
+ }>, []>>>, true>;
60
+ isRemoved: DB.MemberDecl<DB.Boolean, false>;
61
+ }>, []>>, true>;
62
+ revisions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"Revision", {
63
+ Since: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Since", DB.Object<{
64
+ printing: DB.MemberDecl<DB.Integer, true>;
65
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
66
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
67
+ InsideCoverFront: DB.EnumCase<null>;
68
+ InsideCoverBack: DB.EnumCase<null>;
69
+ Numbered: DB.EnumCase<DB.Integer>;
70
+ }, []>>, true>;
71
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
72
+ InsideCoverFront: DB.EnumCase<null>;
73
+ InsideCoverBack: DB.EnumCase<null>;
74
+ Numbered: DB.EnumCase<DB.Integer>;
75
+ }, []>>, false>;
76
+ }>, []>>>, true>;
77
+ }>, []>>>;
78
+ Deprecated: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Deprecation", DB.Object<{
79
+ printing: DB.MemberDecl<DB.Integer, true>;
80
+ }>, []>>>;
81
+ }, []>>>, false>;
82
+ }>, true>;
83
+ }>, []>>>, []>>, false>;
43
84
  }>, []>>, false>;
44
85
  isChildhoodDisease: DB.MemberDecl<DB.Boolean, true>;
45
86
  isMagicalDisease: DB.MemberDecl<DB.Boolean, true>;
@@ -24,6 +24,47 @@ export declare const Armor: DB.Entity<"Armor", {
24
24
  Simple: DB.EnumCase<null>;
25
25
  Complex: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ComplexComplexity", DB.Object<{
26
26
  ap_value: DB.MemberDecl<DB.Integer, true>;
27
+ src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
28
+ id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
29
+ occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
30
+ initial: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"InitialOccurrence", DB.Object<{
31
+ printing: DB.MemberDecl<DB.Integer, false>;
32
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
33
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
34
+ InsideCoverFront: DB.EnumCase<null>;
35
+ InsideCoverBack: DB.EnumCase<null>;
36
+ Numbered: DB.EnumCase<DB.Integer>;
37
+ }, []>>, true>;
38
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
39
+ InsideCoverFront: DB.EnumCase<null>;
40
+ InsideCoverBack: DB.EnumCase<null>;
41
+ Numbered: DB.EnumCase<DB.Integer>;
42
+ }, []>>, false>;
43
+ }>, []>>>, true>;
44
+ isRemoved: DB.MemberDecl<DB.Boolean, false>;
45
+ }>, []>>, true>;
46
+ revisions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"Revision", {
47
+ Since: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Since", DB.Object<{
48
+ printing: DB.MemberDecl<DB.Integer, true>;
49
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
50
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
51
+ InsideCoverFront: DB.EnumCase<null>;
52
+ InsideCoverBack: DB.EnumCase<null>;
53
+ Numbered: DB.EnumCase<DB.Integer>;
54
+ }, []>>, true>;
55
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
56
+ InsideCoverFront: DB.EnumCase<null>;
57
+ InsideCoverBack: DB.EnumCase<null>;
58
+ Numbered: DB.EnumCase<DB.Integer>;
59
+ }, []>>, false>;
60
+ }>, []>>>, true>;
61
+ }>, []>>>;
62
+ Deprecated: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Deprecation", DB.Object<{
63
+ printing: DB.MemberDecl<DB.Integer, true>;
64
+ }>, []>>>;
65
+ }, []>>>, false>;
66
+ }>, true>;
67
+ }>, []>>>, []>>, false>;
27
68
  }>, []>>>;
28
69
  Various: DB.EnumCase<null>;
29
70
  }, []>>, false>;
@@ -24,6 +24,47 @@ export declare const BandageOrRemedy: DB.Entity<"BandageOrRemedy", {
24
24
  Simple: DB.EnumCase<null>;
25
25
  Complex: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ComplexComplexity", DB.Object<{
26
26
  ap_value: DB.MemberDecl<DB.Integer, true>;
27
+ src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
28
+ id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
29
+ occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
30
+ initial: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"InitialOccurrence", DB.Object<{
31
+ printing: DB.MemberDecl<DB.Integer, false>;
32
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
33
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
34
+ InsideCoverFront: DB.EnumCase<null>;
35
+ InsideCoverBack: DB.EnumCase<null>;
36
+ Numbered: DB.EnumCase<DB.Integer>;
37
+ }, []>>, true>;
38
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
39
+ InsideCoverFront: DB.EnumCase<null>;
40
+ InsideCoverBack: DB.EnumCase<null>;
41
+ Numbered: DB.EnumCase<DB.Integer>;
42
+ }, []>>, false>;
43
+ }>, []>>>, true>;
44
+ isRemoved: DB.MemberDecl<DB.Boolean, false>;
45
+ }>, []>>, true>;
46
+ revisions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"Revision", {
47
+ Since: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Since", DB.Object<{
48
+ printing: DB.MemberDecl<DB.Integer, true>;
49
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
50
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
51
+ InsideCoverFront: DB.EnumCase<null>;
52
+ InsideCoverBack: DB.EnumCase<null>;
53
+ Numbered: DB.EnumCase<DB.Integer>;
54
+ }, []>>, true>;
55
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
56
+ InsideCoverFront: DB.EnumCase<null>;
57
+ InsideCoverBack: DB.EnumCase<null>;
58
+ Numbered: DB.EnumCase<DB.Integer>;
59
+ }, []>>, false>;
60
+ }>, []>>>, true>;
61
+ }>, []>>>;
62
+ Deprecated: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Deprecation", DB.Object<{
63
+ printing: DB.MemberDecl<DB.Integer, true>;
64
+ }>, []>>>;
65
+ }, []>>>, false>;
66
+ }>, true>;
67
+ }>, []>>>, []>>, false>;
27
68
  }>, []>>>;
28
69
  }, []>>, false>;
29
70
  structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
@@ -83,6 +83,47 @@ export declare const Book: DB.Entity<"Book", {
83
83
  Simple: DB.EnumCase<null>;
84
84
  Complex: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ComplexComplexity", DB.Object<{
85
85
  ap_value: DB.MemberDecl<DB.Integer, true>;
86
+ src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
87
+ id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
88
+ occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
89
+ initial: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"InitialOccurrence", DB.Object<{
90
+ printing: DB.MemberDecl<DB.Integer, false>;
91
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
92
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
93
+ InsideCoverFront: DB.EnumCase<null>;
94
+ InsideCoverBack: DB.EnumCase<null>;
95
+ Numbered: DB.EnumCase<DB.Integer>;
96
+ }, []>>, true>;
97
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
98
+ InsideCoverFront: DB.EnumCase<null>;
99
+ InsideCoverBack: DB.EnumCase<null>;
100
+ Numbered: DB.EnumCase<DB.Integer>;
101
+ }, []>>, false>;
102
+ }>, []>>>, true>;
103
+ isRemoved: DB.MemberDecl<DB.Boolean, false>;
104
+ }>, []>>, true>;
105
+ revisions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"Revision", {
106
+ Since: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Since", DB.Object<{
107
+ printing: DB.MemberDecl<DB.Integer, true>;
108
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
109
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
110
+ InsideCoverFront: DB.EnumCase<null>;
111
+ InsideCoverBack: DB.EnumCase<null>;
112
+ Numbered: DB.EnumCase<DB.Integer>;
113
+ }, []>>, true>;
114
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
115
+ InsideCoverFront: DB.EnumCase<null>;
116
+ InsideCoverBack: DB.EnumCase<null>;
117
+ Numbered: DB.EnumCase<DB.Integer>;
118
+ }, []>>, false>;
119
+ }>, []>>>, true>;
120
+ }>, []>>>;
121
+ Deprecated: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Deprecation", DB.Object<{
122
+ printing: DB.MemberDecl<DB.Integer, true>;
123
+ }>, []>>>;
124
+ }, []>>>, false>;
125
+ }>, true>;
126
+ }>, []>>>, []>>, false>;
86
127
  }>, []>>>;
87
128
  }, []>>, false>;
88
129
  structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
@@ -24,6 +24,47 @@ export declare const CeremonialItem: DB.Entity<"CeremonialItem", {
24
24
  Simple: DB.EnumCase<null>;
25
25
  Complex: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ComplexComplexity", DB.Object<{
26
26
  ap_value: DB.MemberDecl<DB.Integer, true>;
27
+ src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
28
+ id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
29
+ occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
30
+ initial: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"InitialOccurrence", DB.Object<{
31
+ printing: DB.MemberDecl<DB.Integer, false>;
32
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
33
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
34
+ InsideCoverFront: DB.EnumCase<null>;
35
+ InsideCoverBack: DB.EnumCase<null>;
36
+ Numbered: DB.EnumCase<DB.Integer>;
37
+ }, []>>, true>;
38
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
39
+ InsideCoverFront: DB.EnumCase<null>;
40
+ InsideCoverBack: DB.EnumCase<null>;
41
+ Numbered: DB.EnumCase<DB.Integer>;
42
+ }, []>>, false>;
43
+ }>, []>>>, true>;
44
+ isRemoved: DB.MemberDecl<DB.Boolean, false>;
45
+ }>, []>>, true>;
46
+ revisions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"Revision", {
47
+ Since: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Since", DB.Object<{
48
+ printing: DB.MemberDecl<DB.Integer, true>;
49
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
50
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
51
+ InsideCoverFront: DB.EnumCase<null>;
52
+ InsideCoverBack: DB.EnumCase<null>;
53
+ Numbered: DB.EnumCase<DB.Integer>;
54
+ }, []>>, true>;
55
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
56
+ InsideCoverFront: DB.EnumCase<null>;
57
+ InsideCoverBack: DB.EnumCase<null>;
58
+ Numbered: DB.EnumCase<DB.Integer>;
59
+ }, []>>, false>;
60
+ }>, []>>>, true>;
61
+ }>, []>>>;
62
+ Deprecated: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Deprecation", DB.Object<{
63
+ printing: DB.MemberDecl<DB.Integer, true>;
64
+ }>, []>>>;
65
+ }, []>>>, false>;
66
+ }>, true>;
67
+ }>, []>>>, []>>, false>;
27
68
  }>, []>>>;
28
69
  }, []>>, false>;
29
70
  structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
@@ -24,6 +24,47 @@ export declare const Clothes: DB.Entity<"Clothes", {
24
24
  Simple: DB.EnumCase<null>;
25
25
  Complex: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ComplexComplexity", DB.Object<{
26
26
  ap_value: DB.MemberDecl<DB.Integer, true>;
27
+ src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
28
+ id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
29
+ occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
30
+ initial: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"InitialOccurrence", DB.Object<{
31
+ printing: DB.MemberDecl<DB.Integer, false>;
32
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
33
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
34
+ InsideCoverFront: DB.EnumCase<null>;
35
+ InsideCoverBack: DB.EnumCase<null>;
36
+ Numbered: DB.EnumCase<DB.Integer>;
37
+ }, []>>, true>;
38
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
39
+ InsideCoverFront: DB.EnumCase<null>;
40
+ InsideCoverBack: DB.EnumCase<null>;
41
+ Numbered: DB.EnumCase<DB.Integer>;
42
+ }, []>>, false>;
43
+ }>, []>>>, true>;
44
+ isRemoved: DB.MemberDecl<DB.Boolean, false>;
45
+ }>, []>>, true>;
46
+ revisions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"Revision", {
47
+ Since: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Since", DB.Object<{
48
+ printing: DB.MemberDecl<DB.Integer, true>;
49
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
50
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
51
+ InsideCoverFront: DB.EnumCase<null>;
52
+ InsideCoverBack: DB.EnumCase<null>;
53
+ Numbered: DB.EnumCase<DB.Integer>;
54
+ }, []>>, true>;
55
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
56
+ InsideCoverFront: DB.EnumCase<null>;
57
+ InsideCoverBack: DB.EnumCase<null>;
58
+ Numbered: DB.EnumCase<DB.Integer>;
59
+ }, []>>, false>;
60
+ }>, []>>>, true>;
61
+ }>, []>>>;
62
+ Deprecated: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Deprecation", DB.Object<{
63
+ printing: DB.MemberDecl<DB.Integer, true>;
64
+ }>, []>>>;
65
+ }, []>>>, false>;
66
+ }>, true>;
67
+ }>, []>>>, []>>, false>;
27
68
  }>, []>>>;
28
69
  }, []>>, false>;
29
70
  structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{
@@ -24,6 +24,47 @@ export declare const Container: DB.Entity<"Container", {
24
24
  Simple: DB.EnumCase<null>;
25
25
  Complex: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ComplexComplexity", DB.Object<{
26
26
  ap_value: DB.MemberDecl<DB.Integer, true>;
27
+ src: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRefs", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PublicationRef", DB.Object<{
28
+ id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
29
+ occurrences: DB.MemberDecl<DB.NestedEntityMap<string, {
30
+ initial: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"InitialOccurrence", DB.Object<{
31
+ printing: DB.MemberDecl<DB.Integer, false>;
32
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
33
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
34
+ InsideCoverFront: DB.EnumCase<null>;
35
+ InsideCoverBack: DB.EnumCase<null>;
36
+ Numbered: DB.EnumCase<DB.Integer>;
37
+ }, []>>, true>;
38
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
39
+ InsideCoverFront: DB.EnumCase<null>;
40
+ InsideCoverBack: DB.EnumCase<null>;
41
+ Numbered: DB.EnumCase<DB.Integer>;
42
+ }, []>>, false>;
43
+ }>, []>>>, true>;
44
+ isRemoved: DB.MemberDecl<DB.Boolean, false>;
45
+ }>, []>>, true>;
46
+ revisions: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"Revision", {
47
+ Since: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Since", DB.Object<{
48
+ printing: DB.MemberDecl<DB.Integer, true>;
49
+ pages: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"PageRange", DB.Object<{
50
+ first_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
51
+ InsideCoverFront: DB.EnumCase<null>;
52
+ InsideCoverBack: DB.EnumCase<null>;
53
+ Numbered: DB.EnumCase<DB.Integer>;
54
+ }, []>>, true>;
55
+ last_page: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"Page", {
56
+ InsideCoverFront: DB.EnumCase<null>;
57
+ InsideCoverBack: DB.EnumCase<null>;
58
+ Numbered: DB.EnumCase<DB.Integer>;
59
+ }, []>>, false>;
60
+ }>, []>>>, true>;
61
+ }>, []>>>;
62
+ Deprecated: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"Deprecation", DB.Object<{
63
+ printing: DB.MemberDecl<DB.Integer, true>;
64
+ }>, []>>>;
65
+ }, []>>>, false>;
66
+ }>, true>;
67
+ }>, []>>>, []>>, false>;
27
68
  }>, []>>>;
28
69
  }, []>>, false>;
29
70
  structure_points: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePoints", DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<"StructurePointsComponent", DB.Object<{