@optolith/database-schema 0.87.0 → 0.89.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.
- package/CHANGELOG.md +21 -0
- package/gen/types.d.ts +77 -7
- package/lib/main.js +1 -0
- package/lib/types/Culture.d.ts +1 -0
- package/lib/types/Culture.js +25 -3
- package/lib/types/Profession.d.ts +3 -2
- package/lib/types/Profession.js +11 -2
- package/lib/types/_Identifier.d.ts +1 -0
- package/lib/types/_Identifier.js +2 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +1 -0
- package/lib/types/specialAbility/BlessedTradition.d.ts +1 -0
- package/lib/types/specialAbility/BlessedTradition.js +5 -1
- package/lib/types/specialAbility/sub/BlessedTraditionGroup.d.ts +7 -0
- package/lib/types/specialAbility/sub/BlessedTraditionGroup.js +25 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,27 @@
|
|
|
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.89.0](https://github.com/Optolith/database-schema/compare/v0.88.0...v0.89.0) (2026-10-09)
|
|
6
|
+
|
|
7
|
+
### ⚠ BREAKING CHANGES
|
|
8
|
+
|
|
9
|
+
* blessed tradition groups in cultures
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* blessed tradition groups in cultures ([6a1cc80](https://github.com/Optolith/database-schema/commit/6a1cc805a8f32c32e993fcc6a1226a3aa16daa30))
|
|
14
|
+
* name of people in culture ([1b9fbcf](https://github.com/Optolith/database-schema/commit/1b9fbcfbfbf24a46f73ac8c14959d5c57bc9f317))
|
|
15
|
+
|
|
16
|
+
## [0.88.0](https://github.com/Optolith/database-schema/compare/v0.87.0...v0.88.0) (2026-10-08)
|
|
17
|
+
|
|
18
|
+
### ⚠ BREAKING CHANGES
|
|
19
|
+
|
|
20
|
+
* separate religious profession group
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* separate religious profession group ([5058757](https://github.com/Optolith/database-schema/commit/50587570cb9bf4418b80048c604dac83adf2431f))
|
|
25
|
+
|
|
5
26
|
## [0.87.0](https://github.com/Optolith/database-schema/compare/v0.86.0...v0.87.0) (2026-10-07)
|
|
6
27
|
|
|
7
28
|
### ⚠ BREAKING CHANGES
|
package/gen/types.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export type EntityMap = {
|
|
|
30
30
|
Beutelzauber: Beutelzauber
|
|
31
31
|
Biome: Biome
|
|
32
32
|
BlessedTradition: BlessedTradition
|
|
33
|
+
BlessedTraditionGroup: BlessedTraditionGroup
|
|
33
34
|
Blessing: Blessing
|
|
34
35
|
Book: Book
|
|
35
36
|
BotanicRegion: BotanicRegion
|
|
@@ -563,6 +564,7 @@ export type TypeAliasMap = {
|
|
|
563
564
|
BindingCostMapOptionValue: BindingCostMapOptionValue
|
|
564
565
|
BindingCostPerLevel: BindingCostPerLevel
|
|
565
566
|
BlessedTraditionConstraint: BlessedTraditionConstraint
|
|
567
|
+
BlessedTraditionGroupConstraint: BlessedTraditionGroupConstraint
|
|
566
568
|
BlessedTraditionPrerequisite: BlessedTraditionPrerequisite
|
|
567
569
|
BlessedTraditionsSelectOptionCategory: BlessedTraditionsSelectOptionCategory
|
|
568
570
|
BlessingPerformanceParameters: BlessingPerformanceParameters
|
|
@@ -883,6 +885,7 @@ export type TypeAliasMap = {
|
|
|
883
885
|
ReferenceListNode: ReferenceListNode
|
|
884
886
|
ReferenceListNodeImprovementCostSource: ReferenceListNodeImprovementCostSource
|
|
885
887
|
ReferenceNode: ReferenceNode
|
|
888
|
+
ReligiousProfessionGroup: ReligiousProfessionGroup
|
|
886
889
|
ReloadTime: ReloadTime
|
|
887
890
|
ReplacementDisplayOption: ReplacementDisplayOption
|
|
888
891
|
RequiredMinimumSkillsToBeOnSkillRating: RequiredMinimumSkillsToBeOnSkillRating
|
|
@@ -7854,6 +7857,11 @@ export interface LiturgyTraditionWithAspects {
|
|
|
7854
7857
|
}
|
|
7855
7858
|
|
|
7856
7859
|
export interface BlessedTradition {
|
|
7860
|
+
/**
|
|
7861
|
+
* The group of traditions this tradition belongs to.
|
|
7862
|
+
*/
|
|
7863
|
+
group: BlessedTraditionGroup_ID
|
|
7864
|
+
|
|
7857
7865
|
/**
|
|
7858
7866
|
* Definitions for possible options for the activatable entry, derived from entry categories.
|
|
7859
7867
|
*
|
|
@@ -7972,6 +7980,32 @@ export interface BlessedTraditionTranslation {
|
|
|
7972
7980
|
errata?: Errata
|
|
7973
7981
|
}
|
|
7974
7982
|
|
|
7983
|
+
export interface BlessedTraditionGroup {
|
|
7984
|
+
/**
|
|
7985
|
+
* All translations for the entry, identified by IETF language tag (BCP47).
|
|
7986
|
+
*/
|
|
7987
|
+
translations: {
|
|
7988
|
+
[localeId: string]: BlessedTraditionGroupTranslation
|
|
7989
|
+
}
|
|
7990
|
+
}
|
|
7991
|
+
|
|
7992
|
+
/**
|
|
7993
|
+
* The entity’s identifier. A UUID or a locale code if it is registered as the locale entity.
|
|
7994
|
+
*/
|
|
7995
|
+
export type BlessedTraditionGroup_ID = string
|
|
7996
|
+
|
|
7997
|
+
export interface BlessedTraditionGroupTranslation {
|
|
7998
|
+
/**
|
|
7999
|
+
* The name of the group.
|
|
8000
|
+
*/
|
|
8001
|
+
name: string
|
|
8002
|
+
|
|
8003
|
+
/**
|
|
8004
|
+
* The text to use when all Blessed Ones of this group are recommended for a culture.
|
|
8005
|
+
*/
|
|
8006
|
+
nameInCulture: string
|
|
8007
|
+
}
|
|
8008
|
+
|
|
7975
8009
|
export interface Blessing {
|
|
7976
8010
|
/**
|
|
7977
8011
|
* Measurable parameters of a blessing.
|
|
@@ -8912,6 +8946,10 @@ export type ProfessionGroup =
|
|
|
8912
8946
|
| {
|
|
8913
8947
|
kind: "Blessed"
|
|
8914
8948
|
}
|
|
8949
|
+
| {
|
|
8950
|
+
kind: "Religious"
|
|
8951
|
+
Religious: ReligiousProfessionGroup
|
|
8952
|
+
}
|
|
8915
8953
|
|
|
8916
8954
|
export type MundaneProfessionGroup =
|
|
8917
8955
|
| {
|
|
@@ -8920,9 +8958,6 @@ export type MundaneProfessionGroup =
|
|
|
8920
8958
|
| {
|
|
8921
8959
|
kind: "Fighter"
|
|
8922
8960
|
}
|
|
8923
|
-
| {
|
|
8924
|
-
kind: "Religious"
|
|
8925
|
-
}
|
|
8926
8961
|
|
|
8927
8962
|
export interface MagicalProfessionGroup {
|
|
8928
8963
|
/**
|
|
@@ -9518,6 +9553,13 @@ export interface SpellworkAdjustmentWithBase {
|
|
|
9518
9553
|
tradition?: MagicalTradition_ID
|
|
9519
9554
|
}
|
|
9520
9555
|
|
|
9556
|
+
export interface ReligiousProfessionGroup {
|
|
9557
|
+
/**
|
|
9558
|
+
* The associated blessed tradition (religion).
|
|
9559
|
+
*/
|
|
9560
|
+
associatedTradition?: BlessedTradition_ID
|
|
9561
|
+
}
|
|
9562
|
+
|
|
9521
9563
|
export interface ProfessionVersion {
|
|
9522
9564
|
/**
|
|
9523
9565
|
* The associated profession.
|
|
@@ -9856,6 +9898,11 @@ export interface CultureTranslation {
|
|
|
9856
9898
|
*/
|
|
9857
9899
|
nameInPrerequisites?: string
|
|
9858
9900
|
|
|
9901
|
+
/**
|
|
9902
|
+
* The name for people of this culture, if different from the normal culture’s name.
|
|
9903
|
+
*/
|
|
9904
|
+
nameOfPeople?: string
|
|
9905
|
+
|
|
9859
9906
|
/**
|
|
9860
9907
|
* The description of the area knowledge.
|
|
9861
9908
|
*/
|
|
@@ -10067,10 +10114,6 @@ export type MundaneCommonProfessionConstraint =
|
|
|
10067
10114
|
kind: "Profession"
|
|
10068
10115
|
Profession: ProfessionConstraint
|
|
10069
10116
|
}
|
|
10070
|
-
| {
|
|
10071
|
-
kind: "Group"
|
|
10072
|
-
Group: MundaneProfessionGroup
|
|
10073
|
-
}
|
|
10074
10117
|
|
|
10075
10118
|
export interface ProfessionConstraint {
|
|
10076
10119
|
/**
|
|
@@ -10114,6 +10157,9 @@ export type CommonnessWeight =
|
|
|
10114
10157
|
| {
|
|
10115
10158
|
kind: "Only"
|
|
10116
10159
|
}
|
|
10160
|
+
| {
|
|
10161
|
+
kind: "ExceptFor"
|
|
10162
|
+
}
|
|
10117
10163
|
|
|
10118
10164
|
export interface ProfessionVariant {
|
|
10119
10165
|
/**
|
|
@@ -21232,6 +21278,13 @@ export type BlessedCommonProfessionConstraint =
|
|
|
21232
21278
|
kind: "Profession"
|
|
21233
21279
|
Profession: ProfessionConstraint
|
|
21234
21280
|
}
|
|
21281
|
+
| {
|
|
21282
|
+
kind: "Group"
|
|
21283
|
+
Group: BlessedTraditionGroupConstraint
|
|
21284
|
+
}
|
|
21285
|
+
| {
|
|
21286
|
+
kind: "Religious"
|
|
21287
|
+
}
|
|
21235
21288
|
|
|
21236
21289
|
export interface BlessedTraditionConstraint {
|
|
21237
21290
|
/**
|
|
@@ -21250,6 +21303,23 @@ export interface BlessedTraditionConstraint {
|
|
|
21250
21303
|
rarity?: Rarity
|
|
21251
21304
|
}
|
|
21252
21305
|
|
|
21306
|
+
export interface BlessedTraditionGroupConstraint {
|
|
21307
|
+
/**
|
|
21308
|
+
* The blessed tradition group’s identifier.
|
|
21309
|
+
*/
|
|
21310
|
+
id: BlessedTraditionGroup_ID
|
|
21311
|
+
|
|
21312
|
+
/**
|
|
21313
|
+
* Some traditions are more common than others. There may be cultures where some traditions are not represented at all.
|
|
21314
|
+
*/
|
|
21315
|
+
weighted_professions?: Weighted<BlessedTradition_ID>
|
|
21316
|
+
|
|
21317
|
+
/**
|
|
21318
|
+
* Some traditions may be found in a culture, but are not that common.
|
|
21319
|
+
*/
|
|
21320
|
+
rarity?: Rarity
|
|
21321
|
+
}
|
|
21322
|
+
|
|
21253
21323
|
/**
|
|
21254
21324
|
* Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.
|
|
21255
21325
|
*/
|
package/lib/main.js
CHANGED
package/lib/types/Culture.d.ts
CHANGED
|
@@ -243,6 +243,7 @@ export declare const Culture: DB.Entity<"Culture", {
|
|
|
243
243
|
translations: DB.MemberDecl<DB.NestedEntityMap<"CultureTranslation", {
|
|
244
244
|
name: DB.MemberDecl<DB.String, true>;
|
|
245
245
|
nameInPrerequisites: DB.MemberDecl<DB.String, false>;
|
|
246
|
+
nameOfPeople: DB.MemberDecl<DB.String, false>;
|
|
246
247
|
area_knowledge: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"AreaKnowledgeTranslation", DB.Object<{
|
|
247
248
|
description: DB.MemberDecl<DB.String, true>;
|
|
248
249
|
abbreviated: DB.MemberDecl<DB.String, true>;
|
package/lib/types/Culture.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
2
|
import { CommonnessRatedAdvantageDisadvantage } from "./_CommonnessRatedAdvantageDisadvantage.js";
|
|
3
|
-
import { AdvantageIdentifier, BlessedTraditionIdentifier, DisadvantageIdentifier, LanguageIdentifier, LanguageSpecializationIdentifier, MagicalTraditionIdentifier, ProfessionIdentifier, ProfessionVariantIdentifier, ScriptIdentifier, SkillIdentifier, SocialStatusIdentifier, } from "./_Identifier.js";
|
|
3
|
+
import { AdvantageIdentifier, BlessedTraditionGroupIdentifier, BlessedTraditionIdentifier, DisadvantageIdentifier, LanguageIdentifier, LanguageSpecializationIdentifier, MagicalTraditionIdentifier, ProfessionIdentifier, ProfessionVariantIdentifier, ScriptIdentifier, SkillIdentifier, SocialStatusIdentifier, } from "./_Identifier.js";
|
|
4
4
|
import { BinarySex } from "./_Sex.js";
|
|
5
5
|
import { NestedTranslationMap } from "./Locale.js";
|
|
6
|
-
import { MundaneProfessionGroup } from "./Profession.js";
|
|
7
6
|
import { Errata } from "./source/_Erratum.js";
|
|
8
7
|
import { src } from "./source/_PublicationRef.js";
|
|
9
8
|
export const Culture = DB.Entity(import.meta.url, {
|
|
@@ -68,6 +67,10 @@ export const Culture = DB.Entity(import.meta.url, {
|
|
|
68
67
|
comment: "The culture’s name in prerequisites, if different from the normal culture’s name.",
|
|
69
68
|
type: DB.String({ minLength: 1 }),
|
|
70
69
|
}),
|
|
70
|
+
nameOfPeople: DB.Optional({
|
|
71
|
+
comment: "The name for people of this culture, if different from the normal culture’s name.",
|
|
72
|
+
type: DB.String({ minLength: 1 }),
|
|
73
|
+
}),
|
|
71
74
|
area_knowledge: DB.Required({
|
|
72
75
|
comment: "The description of the area knowledge.",
|
|
73
76
|
type: DB.IncludeIdentifier(AreaKnowledgeTranslation),
|
|
@@ -145,6 +148,7 @@ const CommonnessWeight = DB.Enum(import.meta.url, {
|
|
|
145
148
|
values: () => ({
|
|
146
149
|
Mostly: DB.EnumCase({ type: null }),
|
|
147
150
|
Only: DB.EnumCase({ type: null }),
|
|
151
|
+
ExceptFor: DB.EnumCase({ type: null }),
|
|
148
152
|
}),
|
|
149
153
|
});
|
|
150
154
|
const Weighted = DB.GenTypeAlias(import.meta.url, {
|
|
@@ -244,11 +248,27 @@ const BlessedTraditionConstraint = DB.TypeAlias(import.meta.url, {
|
|
|
244
248
|
}),
|
|
245
249
|
}),
|
|
246
250
|
});
|
|
251
|
+
const BlessedTraditionGroupConstraint = DB.TypeAlias(import.meta.url, {
|
|
252
|
+
name: "BlessedTraditionGroupConstraint",
|
|
253
|
+
type: () => DB.Object({
|
|
254
|
+
id: DB.Required({
|
|
255
|
+
comment: "The blessed tradition group’s identifier.",
|
|
256
|
+
type: BlessedTraditionGroupIdentifier(),
|
|
257
|
+
}),
|
|
258
|
+
weighted_professions: DB.Optional({
|
|
259
|
+
comment: "Some traditions are more common than others. There may be cultures where some traditions are not represented at all.",
|
|
260
|
+
type: DB.GenIncludeIdentifier(Weighted, [BlessedTraditionIdentifier()]),
|
|
261
|
+
}),
|
|
262
|
+
rarity: DB.Optional({
|
|
263
|
+
comment: "Some traditions may be found in a culture, but are not that common.",
|
|
264
|
+
type: DB.IncludeIdentifier(Rarity),
|
|
265
|
+
}),
|
|
266
|
+
}),
|
|
267
|
+
});
|
|
247
268
|
const MundaneCommonProfessionConstraint = DB.Enum(import.meta.url, {
|
|
248
269
|
name: "MundaneCommonProfessionConstraint",
|
|
249
270
|
values: () => ({
|
|
250
271
|
Profession: DB.EnumCase({ type: DB.IncludeIdentifier(ProfessionConstraint) }),
|
|
251
|
-
Group: DB.EnumCase({ type: DB.IncludeIdentifier(MundaneProfessionGroup) }),
|
|
252
272
|
}),
|
|
253
273
|
});
|
|
254
274
|
const MagicCommonProfessionConstraint = DB.Enum(import.meta.url, {
|
|
@@ -264,6 +284,8 @@ const BlessedCommonProfessionConstraint = DB.Enum(import.meta.url, {
|
|
|
264
284
|
values: () => ({
|
|
265
285
|
Tradition: DB.EnumCase({ type: DB.IncludeIdentifier(BlessedTraditionConstraint) }),
|
|
266
286
|
Profession: DB.EnumCase({ type: DB.IncludeIdentifier(ProfessionConstraint) }),
|
|
287
|
+
Group: DB.EnumCase({ type: DB.IncludeIdentifier(BlessedTraditionGroupConstraint) }),
|
|
288
|
+
Religious: DB.EnumCase({ type: null }),
|
|
267
289
|
}),
|
|
268
290
|
});
|
|
269
291
|
const PlainCommonProfessions = DB.TypeAlias(import.meta.url, {
|
|
@@ -4,13 +4,15 @@ export declare const Profession: DB.Entity<"Profession", {
|
|
|
4
4
|
Mundane: DB.EnumCase<DB.IncludeIdentifier<[], DB.Enum<"MundaneProfessionGroup", {
|
|
5
5
|
Profane: DB.EnumCase<null>;
|
|
6
6
|
Fighter: DB.EnumCase<null>;
|
|
7
|
-
Religious: DB.EnumCase<null>;
|
|
8
7
|
}, []>>>;
|
|
9
8
|
Magical: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"MagicalProfessionGroup", DB.Object<{
|
|
10
9
|
curriculum: DB.MemberDecl<DB.ReferenceIdentifier, false>;
|
|
11
10
|
subgroup: DB.MemberDecl<DB.ReferenceIdentifier, false>;
|
|
12
11
|
}>, []>>>;
|
|
13
12
|
Blessed: DB.EnumCase<null>;
|
|
13
|
+
Religious: DB.EnumCase<DB.IncludeIdentifier<[], DB.TypeAlias<"ReligiousProfessionGroup", DB.Object<{
|
|
14
|
+
associatedTradition: DB.MemberDecl<DB.ReferenceIdentifier, false>;
|
|
15
|
+
}>, []>>>;
|
|
14
16
|
}, []>>, true>;
|
|
15
17
|
versions: DB.MemberDecl<DB.ChildEntities<DB.Entity<"ProfessionVersion", {
|
|
16
18
|
profession: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
@@ -878,7 +880,6 @@ export declare const Profession: DB.Entity<"Profession", {
|
|
|
878
880
|
export declare const MundaneProfessionGroup: DB.Enum<"MundaneProfessionGroup", {
|
|
879
881
|
Profane: DB.EnumCase<null>;
|
|
880
882
|
Fighter: DB.EnumCase<null>;
|
|
881
|
-
Religious: DB.EnumCase<null>;
|
|
882
883
|
}, []>;
|
|
883
884
|
export declare const ProfessionVersion: DB.Entity<"ProfessionVersion", {
|
|
884
885
|
profession: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
package/lib/types/Profession.js
CHANGED
|
@@ -2,7 +2,7 @@ import { isNotNullish } from "@elyukai/utils/nullable";
|
|
|
2
2
|
import * as DB from "tsondb/schema/dsl";
|
|
3
3
|
import { verifyOptionsForActivatableEntry } from "./_ActivatableSelectOptions.js";
|
|
4
4
|
import { CommonnessRatedAdvantageDisadvantage } from "./_CommonnessRatedAdvantageDisadvantage.js";
|
|
5
|
-
import { AdvantageIdentifier, BannzeichenOptionIdentifier, CantripIdentifier, CurriculumIdentifier, DisadvantageIdentifier, ExperienceLevelIdentifier, MagicalTraditionIdentifier, ProfessionIdentifier, ProfessionPackageIdentifier, ProfessionVersionIdentifier, SkillGroupIdentifier, SkillIdentifier, } from "./_Identifier.js";
|
|
5
|
+
import { AdvantageIdentifier, BannzeichenOptionIdentifier, BlessedTraditionIdentifier, CantripIdentifier, CurriculumIdentifier, DisadvantageIdentifier, ExperienceLevelIdentifier, MagicalTraditionIdentifier, ProfessionIdentifier, ProfessionPackageIdentifier, ProfessionVersionIdentifier, SkillGroupIdentifier, SkillIdentifier, } from "./_Identifier.js";
|
|
6
6
|
import { CombatTechniqueIdentifier, LiturgyIdentifier, MagicalActionIdentifier, ProfessionSpecialAbilityIdentifier, RequirableSelectOptionIdentifier, SpecialAbilityIdentifier, SpellworkIdentifier, } from "./_IdentifierGroup.js";
|
|
7
7
|
import { ProfessionPrerequisites, ProfessionVariantPrerequisites } from "./_Prerequisite.js";
|
|
8
8
|
import { NestedTranslationMap } from "./Locale.js";
|
|
@@ -47,6 +47,7 @@ const ProfessionGroup = DB.Enum(import.meta.url, {
|
|
|
47
47
|
Mundane: DB.EnumCase({ type: DB.IncludeIdentifier(MundaneProfessionGroup) }),
|
|
48
48
|
Magical: DB.EnumCase({ type: DB.IncludeIdentifier(MagicalProfessionGroup) }),
|
|
49
49
|
Blessed: DB.EnumCase({ type: null }),
|
|
50
|
+
Religious: DB.EnumCase({ type: DB.IncludeIdentifier(ReligiousProfessionGroup) }),
|
|
50
51
|
}),
|
|
51
52
|
});
|
|
52
53
|
export const MundaneProfessionGroup = DB.Enum(import.meta.url, {
|
|
@@ -54,7 +55,6 @@ export const MundaneProfessionGroup = DB.Enum(import.meta.url, {
|
|
|
54
55
|
values: () => ({
|
|
55
56
|
Profane: DB.EnumCase({ type: null }),
|
|
56
57
|
Fighter: DB.EnumCase({ type: null }),
|
|
57
|
-
Religious: DB.EnumCase({ type: null }),
|
|
58
58
|
}),
|
|
59
59
|
});
|
|
60
60
|
const MagicalProfessionGroup = DB.TypeAlias(import.meta.url, {
|
|
@@ -70,6 +70,15 @@ const MagicalProfessionGroup = DB.TypeAlias(import.meta.url, {
|
|
|
70
70
|
}),
|
|
71
71
|
}),
|
|
72
72
|
});
|
|
73
|
+
const ReligiousProfessionGroup = DB.TypeAlias(import.meta.url, {
|
|
74
|
+
name: "ReligiousProfessionGroup",
|
|
75
|
+
type: () => DB.Object({
|
|
76
|
+
associatedTradition: DB.Optional({
|
|
77
|
+
comment: "The associated blessed tradition (religion).",
|
|
78
|
+
type: BlessedTraditionIdentifier(),
|
|
79
|
+
}),
|
|
80
|
+
}),
|
|
81
|
+
});
|
|
73
82
|
export const ProfessionVersion = DB.Entity(import.meta.url, {
|
|
74
83
|
name: "ProfessionVersion",
|
|
75
84
|
namePlural: "ProfessionVersions",
|
|
@@ -27,6 +27,7 @@ export declare const BannzeichenOptionIdentifier: () => R;
|
|
|
27
27
|
export declare const BeutelzauberIdentifier: () => R;
|
|
28
28
|
export declare const BiomeIdentifier: () => R;
|
|
29
29
|
export declare const BlessedTraditionIdentifier: () => R;
|
|
30
|
+
export declare const BlessedTraditionGroupIdentifier: () => R;
|
|
30
31
|
export declare const BlessingIdentifier: () => R;
|
|
31
32
|
export declare const BookIdentifier: () => R;
|
|
32
33
|
export declare const BowlEnchantmentIdentifier: () => R;
|
package/lib/types/_Identifier.js
CHANGED
|
@@ -128,6 +128,7 @@ import { Sermon } from "./specialAbility/Sermon.js";
|
|
|
128
128
|
import { SexSpecialAbility } from "./specialAbility/SexSpecialAbility.js";
|
|
129
129
|
import { SikaryanDrainSpecialAbility } from "./specialAbility/SikaryanDrainSpecialAbility.js";
|
|
130
130
|
import { SkillStyleSpecialAbility } from "./specialAbility/SkillStyleSpecialAbility.js";
|
|
131
|
+
import { BlessedTraditionGroup } from "./specialAbility/sub/BlessedTraditionGroup.js";
|
|
131
132
|
import { CeremonialItemSpecialAbilityGroup } from "./specialAbility/sub/CeremonialItemSpecialAbilityGroup.js";
|
|
132
133
|
import { Language, LanguageSpecialization } from "./specialAbility/sub/Language.js";
|
|
133
134
|
import { MagicalTraditionSubgroup } from "./specialAbility/sub/MagicalTraditionSubgroup.js";
|
|
@@ -194,6 +195,7 @@ export const BannzeichenOptionIdentifier = () => R(BannzeichenOption);
|
|
|
194
195
|
export const BeutelzauberIdentifier = () => R(Beutelzauber);
|
|
195
196
|
export const BiomeIdentifier = () => R(Biome);
|
|
196
197
|
export const BlessedTraditionIdentifier = () => R(BlessedTradition);
|
|
198
|
+
export const BlessedTraditionGroupIdentifier = () => R(BlessedTraditionGroup);
|
|
197
199
|
export const BlessingIdentifier = () => R(Blessing);
|
|
198
200
|
export const BookIdentifier = () => R(Book);
|
|
199
201
|
export const BowlEnchantmentIdentifier = () => R(BowlEnchantment);
|
package/lib/types/index.d.ts
CHANGED
|
@@ -132,6 +132,7 @@ export { Sermon } from "./specialAbility/Sermon.js";
|
|
|
132
132
|
export { SexSpecialAbility } from "./specialAbility/SexSpecialAbility.js";
|
|
133
133
|
export { SikaryanDrainSpecialAbility } from "./specialAbility/SikaryanDrainSpecialAbility.js";
|
|
134
134
|
export { SkillStyleSpecialAbility } from "./specialAbility/SkillStyleSpecialAbility.js";
|
|
135
|
+
export { BlessedTraditionGroup } from "./specialAbility/sub/BlessedTraditionGroup.ts";
|
|
135
136
|
export { CeremonialItemSpecialAbilityGroup } from "./specialAbility/sub/CeremonialItemSpecialAbilityGroup.js";
|
|
136
137
|
export { Language } from "./specialAbility/sub/Language.js";
|
|
137
138
|
export { MagicalTraditionSubgroup } from "./specialAbility/sub/MagicalTraditionSubgroup.ts";
|
package/lib/types/index.js
CHANGED
|
@@ -132,6 +132,7 @@ export { Sermon } from "./specialAbility/Sermon.js";
|
|
|
132
132
|
export { SexSpecialAbility } from "./specialAbility/SexSpecialAbility.js";
|
|
133
133
|
export { SikaryanDrainSpecialAbility } from "./specialAbility/SikaryanDrainSpecialAbility.js";
|
|
134
134
|
export { SkillStyleSpecialAbility } from "./specialAbility/SkillStyleSpecialAbility.js";
|
|
135
|
+
export { BlessedTraditionGroup } from "./specialAbility/sub/BlessedTraditionGroup.js";
|
|
135
136
|
export { CeremonialItemSpecialAbilityGroup } from "./specialAbility/sub/CeremonialItemSpecialAbilityGroup.js";
|
|
136
137
|
export { Language } from "./specialAbility/sub/Language.js";
|
|
137
138
|
export { MagicalTraditionSubgroup } from "./specialAbility/sub/MagicalTraditionSubgroup.js";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
2
|
export declare const BlessedTradition: DB.Entity<"BlessedTradition", {
|
|
3
|
+
group: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
3
4
|
select_options: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptions", DB.Object<{
|
|
4
5
|
derived: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionCategory", {
|
|
5
6
|
Blessings: DB.EnumCase<null>;
|
|
@@ -4,7 +4,7 @@ import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventu
|
|
|
4
4
|
import { activatableDisplayNameCustomizer } from "../_ActivatableNames.js";
|
|
5
5
|
import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
|
|
6
6
|
import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
|
|
7
|
-
import { AspectIdentifier, AttributeIdentifier, BlessingIdentifier, GeneralIdentifier, SkillIdentifier, } from "../_Identifier.js";
|
|
7
|
+
import { AspectIdentifier, AttributeIdentifier, BlessedTraditionGroupIdentifier, BlessingIdentifier, GeneralIdentifier, SkillIdentifier, } from "../_Identifier.js";
|
|
8
8
|
import { CombatTechniqueIdentifier } from "../_IdentifierGroup.js";
|
|
9
9
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
10
10
|
import { NestedTranslationMap } from "../Locale.js";
|
|
@@ -15,6 +15,10 @@ export const BlessedTradition = DB.Entity(import.meta.url, {
|
|
|
15
15
|
name: "BlessedTradition",
|
|
16
16
|
namePlural: "BlessedTraditions",
|
|
17
17
|
type: () => DB.Object({
|
|
18
|
+
group: DB.Required({
|
|
19
|
+
comment: "The group of traditions this tradition belongs to.",
|
|
20
|
+
type: BlessedTraditionGroupIdentifier(),
|
|
21
|
+
}),
|
|
18
22
|
select_options,
|
|
19
23
|
explicit_select_options,
|
|
20
24
|
skill_applications,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as DB from "tsondb/schema/dsl";
|
|
2
|
+
export declare const BlessedTraditionGroup: DB.Entity<"BlessedTraditionGroup", {
|
|
3
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"BlessedTraditionGroupTranslation", {
|
|
4
|
+
name: DB.MemberDecl<DB.String, true>;
|
|
5
|
+
nameInCulture: DB.MemberDecl<DB.String, true>;
|
|
6
|
+
}>, true>;
|
|
7
|
+
}, undefined>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as DB from "tsondb/schema/dsl";
|
|
2
|
+
import { NestedTranslationMap } from "../../Locale.js";
|
|
3
|
+
export const BlessedTraditionGroup = DB.Entity(import.meta.url, {
|
|
4
|
+
name: "BlessedTraditionGroup",
|
|
5
|
+
namePlural: "BlessedTraditionGroup",
|
|
6
|
+
type: () => DB.Object({
|
|
7
|
+
translations: NestedTranslationMap(DB.Required, "BlessedTraditionGroup", DB.Object({
|
|
8
|
+
name: DB.Required({
|
|
9
|
+
comment: "The name of the group.",
|
|
10
|
+
type: DB.String({ minLength: 1 }),
|
|
11
|
+
}),
|
|
12
|
+
nameInCulture: DB.Required({
|
|
13
|
+
comment: "The text to use when all Blessed Ones of this group are recommended for a culture.",
|
|
14
|
+
type: DB.String({ minLength: 1 }),
|
|
15
|
+
}),
|
|
16
|
+
})),
|
|
17
|
+
}),
|
|
18
|
+
instanceDisplayName: {},
|
|
19
|
+
uniqueConstraints: [
|
|
20
|
+
{
|
|
21
|
+
entityMapKeyPath: "translations",
|
|
22
|
+
keyPathInEntityMap: "name",
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optolith/database-schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.89.0",
|
|
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",
|