Pathfinder 1e for Foundry VTT
    Preparing search index...

    Class ClassModel

    Hierarchy

    • any
      • ClassModel
    Index

    Constructors

    • Returns ClassModel

    Properties

    alignment: string
    armorProf: Set<string>
    bab: string
    babBase: undefined | number
    babFormula: string
    changeFlags: Set<string>
    changes: ItemChange[]
    classSkills: Set<string>
    contextNotes: ContextNote[]
    customHD: string
    description: { instructions: string; value: string }
    fc: {
        alt: { notes: string; value: number };
        hp: { value: number };
        skill: { value: number };
    }
    flags: { boolean: {}; dictionary: {} }
    hd: number
    hitDice: undefined | number
    hp: number
    languages: Set<string>
    level: number
    links: { children: LinkModel[]; classAssociations: LinkModel[] }
    mythicTier: undefined | number
    parent: ItemPF
    savingThrows: {
        fort: { custom: string; value: string };
        ref: { custom: string; value: string };
        will: { custom: string; value: string };
    }
    scriptCalls: ItemScriptCall[]
    skillsPerLevel: number
    subType: string
    tag: string
    wealth: string
    weaponProf: Set<string>

    Methods

    • Parameters

      • changed: object
      • context: object
      • user: User

      Returns Promise<void>

    • Returns {
          alignment: StringField<
              DefaultOptions,
              AssignmentType<DefaultOptions>,
              InitializedType<DefaultOptions>,
              InitializedType<DefaultOptions>,
          >;
          armorProf: SetField<
              StringField<
                  { blank: false },
                  AssignmentType<{ blank: false }>,
                  InitializedType<{ blank: false }>,
                  InitializedType<{ blank: false }>,
              >,
              { required: boolean },
              AssignmentType<{ blank: false }>,
              InitializedType<{ blank: false }>,
              AssignmentType<AssignmentType<{ blank: false }>, { required: boolean }>,
              InitializedType<InitializedType<{ blank: false }>, { required: boolean }>,
              InitializedType<{ blank: false }>,
              PersistedType<InitializedType<{ blank: false }>, { required: boolean }>,
          >;
          bab: StringField<
              { initial: "low" },
              AssignmentType<{ initial: "low" }>,
              InitializedType<{ initial: "low" }>,
              InitializedType<{ initial: "low" }>,
          >;
          babFormula: FormulaField;
          casting: SchemaField<
              {
                  ability: StringField<
                      { nullable: boolean; required: boolean },
                      AssignmentType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                  >;
                  cantrips: BooleanField<
                      { initial: true; required: false },
                      AssignmentType<
                          SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
                      >,
                      InitializedType<
                          SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
                      >,
                      InitializedType<
                          SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
                      >,
                  >;
                  domain: NumberField<
                      { integer: true; min: 0; required: false },
                      AssignmentType<{ integer: true; min: 0; required: false }>,
                      InitializedType<{ integer: true; min: 0; required: false }>,
                      InitializedType<{ integer: true; min: 0; required: false }>,
                  >;
                  offset: NumberField<
                      { integer: true; required: false },
                      AssignmentType<{ integer: true; required: false }>,
                      InitializedType<{ integer: true; required: false }>,
                      InitializedType<{ integer: true; required: false }>,
                  >;
                  progression: StringField<
                      { nullable: boolean; required: boolean },
                      AssignmentType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                  >;
                  spells: StringField<
                      { nullable: boolean; required: boolean },
                      AssignmentType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                  >;
                  type: StringField<
                      { nullable: boolean; required: boolean },
                      AssignmentType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                  >;
              },
              { required: boolean },
              AssignmentType<
                  {
                      ability: StringField<
                          { nullable: boolean; required: boolean },
                          AssignmentType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                      >;
                      cantrips: BooleanField<
                          { initial: true; required: false },
                          AssignmentType<
                              SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
                          >,
                          InitializedType<
                              SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
                          >,
                          InitializedType<
                              SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
                          >,
                      >;
                      domain: NumberField<
                          { integer: true; min: 0; required: false },
                          AssignmentType<{ integer: true; min: 0; required: false }>,
                          InitializedType<{ integer: true; min: 0; required: false }>,
                          InitializedType<{ integer: true; min: 0; required: false }>,
                      >;
                      offset: NumberField<
                          { integer: true; required: false },
                          AssignmentType<{ integer: true; required: false }>,
                          InitializedType<{ integer: true; required: false }>,
                          InitializedType<{ integer: true; required: false }>,
                      >;
                      progression: StringField<
                          { nullable: boolean; required: boolean },
                          AssignmentType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                      >;
                      spells: StringField<
                          { nullable: boolean; required: boolean },
                          AssignmentType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                      >;
                      type: StringField<
                          { nullable: boolean; required: boolean },
                          AssignmentType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                      >;
                  },
                  SimpleMerge<{ required: boolean }, DefaultOptions>,
              >,
              {
                  ability: InitializedType<{ nullable: boolean; required: boolean }>;
                  cantrips: InitializedType<
                      SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
                  >;
                  domain: InitializedType<{ integer: true; min: 0; required: false }>;
                  offset: InitializedType<{ integer: true; required: false }>;
                  progression: InitializedType<{ nullable: boolean; required: boolean }>;
                  spells: InitializedType<{ nullable: boolean; required: boolean }>;
                  type: InitializedType<{ nullable: boolean; required: boolean }>;
              },
              {
                  ability: InitializedType<{ nullable: boolean; required: boolean }>;
                  cantrips: InitializedType<
                      SimpleMerge<{ initial: true; required: false }, DefaultOptions>,
                  >;
                  domain: InitializedType<{ integer: true; min: 0; required: false }>;
                  offset: InitializedType<{ integer: true; required: false }>;
                  progression: InitializedType<{ nullable: boolean; required: boolean }>;
                  spells: InitializedType<{ nullable: boolean; required: boolean }>;
                  type: InitializedType<{ nullable: boolean; required: boolean }>;
              },
          >;
          changeFlags: TypedObjectField<
              BooleanField<
                  DefaultOptions,
                  AssignmentType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                  InitializedType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                  InitializedType<SimpleMerge<DefaultOptions, DefaultOptions>>,
              >,
              { required: boolean },
              AssignmentType<
                  BooleanField<
                      DefaultOptions,
                      AssignmentType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                      InitializedType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                      InitializedType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                  >,
                  { required: boolean },
              >,
              InitializedType<
                  BooleanField<
                      DefaultOptions,
                      AssignmentType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                      InitializedType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                      InitializedType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                  >,
                  { required: boolean },
              >,
              InitializedType<
                  BooleanField<
                      DefaultOptions,
                      AssignmentType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                      InitializedType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                      InitializedType<SimpleMerge<DefaultOptions, DefaultOptions>>,
                  >,
                  { required: boolean },
              >,
          >;
          changes: ArrayField<
              EmbeddedDataField<
                  AnyConstructor,
                  DefaultOptions,
                  AssignmentType<AnyConstructor, DefaultOptions>,
                  AnyDataModel,
                  {},
              >,
              { required: boolean },
              AssignmentType<AnyConstructor, DefaultOptions>,
              AnyDataModel,
              AssignmentType<
                  AssignmentType<AnyConstructor, DefaultOptions>,
                  { required: boolean },
              >,
              InitializedType<AnyDataModel, { required: boolean }>,
              {},
              PersistedType<{}, { required: boolean }>,
          >;
          classSkills: SetField<
              StringField<
                  { blank: false },
                  AssignmentType<{ blank: false }>,
                  InitializedType<{ blank: false }>,
                  InitializedType<{ blank: false }>,
              >,
              { required: boolean },
              AssignmentType<{ blank: false }>,
              InitializedType<{ blank: false }>,
              AssignmentType<AssignmentType<{ blank: false }>, { required: boolean }>,
              InitializedType<InitializedType<{ blank: false }>, { required: boolean }>,
              InitializedType<{ blank: false }>,
              PersistedType<InitializedType<{ blank: false }>, { required: boolean }>,
          >;
          contextNotes: ArrayField<
              EmbeddedDataField<
                  typeof ContextNote,
                  DefaultOptions,
                  AssignmentType<typeof ContextNote, DefaultOptions>,
                  ContextNote,
                  {
                      target: InitializedType<
                          { blank: true; initial: ""; nullable: false },
                      >;
                      text: InitializedType<{ blank: true; initial: ""; nullable: false }>;
                  },
              >,
              { required: boolean },
              AssignmentType<typeof ContextNote, DefaultOptions>,
              ContextNote,
              AssignmentType<
                  AssignmentType<typeof ContextNote, DefaultOptions>,
                  { required: boolean },
              >,
              InitializedType<ContextNote, { required: boolean }>,
              {
                  target: InitializedType<{ blank: true; initial: ""; nullable: false }>;
                  text: InitializedType<{ blank: true; initial: ""; nullable: false }>;
              },
              PersistedType<
                  {
                      target: InitializedType<
                          { blank: true; initial: ""; nullable: false },
                      >;
                      text: InitializedType<{ blank: true; initial: ""; nullable: false }>;
                  },
                  { required: boolean },
              >,
          >;
          creatureSubtypes: SetField<
              StringField<
                  DefaultOptions,
                  AssignmentType<DefaultOptions>,
                  InitializedType<DefaultOptions>,
                  InitializedType<DefaultOptions>,
              >,
              { required: boolean },
              AssignmentType<DefaultOptions>,
              InitializedType<DefaultOptions>,
              AssignmentType<AssignmentType<DefaultOptions>, { required: boolean }>,
              InitializedType<InitializedType<DefaultOptions>, { required: boolean }>,
              InitializedType<DefaultOptions>,
              PersistedType<InitializedType<DefaultOptions>, { required: boolean }>,
          >;
          creatureTypes: SetField<
              StringField<
                  DefaultOptions,
                  AssignmentType<DefaultOptions>,
                  InitializedType<DefaultOptions>,
                  InitializedType<DefaultOptions>,
              >,
              { required: boolean },
              AssignmentType<DefaultOptions>,
              InitializedType<DefaultOptions>,
              AssignmentType<AssignmentType<DefaultOptions>, { required: boolean }>,
              InitializedType<InitializedType<DefaultOptions>, { required: boolean }>,
              InitializedType<DefaultOptions>,
              PersistedType<InitializedType<DefaultOptions>, { required: boolean }>,
          >;
          customHD: FormulaField;
          description: SchemaField<
              {
                  instructions: HTMLField<
                      { nullable: boolean; required: boolean },
                      AssignmentType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                  >;
                  value: HTMLField<
                      { nullable: boolean; required: boolean },
                      AssignmentType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                      InitializedType<{ nullable: boolean; required: boolean }>,
                  >;
              },
              { required: boolean },
              AssignmentType<
                  {
                      instructions: HTMLField<
                          { nullable: boolean; required: boolean },
                          AssignmentType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                      >;
                      value: HTMLField<
                          { nullable: boolean; required: boolean },
                          AssignmentType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                          InitializedType<{ nullable: boolean; required: boolean }>,
                      >;
                  },
                  SimpleMerge<{ required: boolean }, DefaultOptions>,
              >,
              {
                  instructions: InitializedType<
                      { nullable: boolean; required: boolean },
                  >;
                  value: InitializedType<{ nullable: boolean; required: boolean }>;
              },
              {
                  instructions: InitializedType<
                      { nullable: boolean; required: boolean },
                  >;
                  value: InitializedType<{ nullable: boolean; required: boolean }>;
              },
          >;
          fc: SchemaField<
              {
                  alt: SchemaField<
                      {
                          notes: StringField<
                              DefaultOptions,
                              AssignmentType<DefaultOptions>,
                              InitializedType<DefaultOptions>,
                              InitializedType<DefaultOptions>,
                          >;
                          value: NumberField<
                              { initial: 0; integer: true; min: 0 },
                              AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                              InitializedType<{ initial: 0; integer: true; min: 0 }>,
                              InitializedType<{ initial: 0; integer: true; min: 0 }>,
                          >;
                      },
                      { required: boolean },
                      AssignmentType<
                          {
                              notes: StringField<
                                  DefaultOptions,
                                  AssignmentType<DefaultOptions>,
                                  InitializedType<DefaultOptions>,
                                  InitializedType<DefaultOptions>,
                              >;
                              value: NumberField<
                                  { initial: 0; integer: true; min: 0 },
                                  AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                              >;
                          },
                          SimpleMerge<{ required: boolean }, DefaultOptions>,
                      >,
                      {
                          notes: InitializedType<DefaultOptions>;
                          value: InitializedType<{ initial: 0; integer: true; min: 0 }>;
                      },
                      {
                          notes: InitializedType<DefaultOptions>;
                          value: InitializedType<{ initial: 0; integer: true; min: 0 }>;
                      },
                  >;
                  hp: SchemaField<
                      {
                          value: NumberField<
                              { initial: 0; integer: true; min: 0 },
                              AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                              InitializedType<{ initial: 0; integer: true; min: 0 }>,
                              InitializedType<{ initial: 0; integer: true; min: 0 }>,
                          >;
                      },
                      { required: boolean },
                      AssignmentType<
                          {
                              value: NumberField<
                                  { initial: 0; integer: true; min: 0 },
                                  AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                              >;
                          },
                          SimpleMerge<{ required: boolean }, DefaultOptions>,
                      >,
                      { value: InitializedType<{ initial: 0; integer: true; min: 0 }> },
                      { value: InitializedType<{ initial: 0; integer: true; min: 0 }> },
                  >;
                  skill: SchemaField<
                      {
                          value: NumberField<
                              { initial: 0; integer: true; min: 0 },
                              AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                              InitializedType<{ initial: 0; integer: true; min: 0 }>,
                              InitializedType<{ initial: 0; integer: true; min: 0 }>,
                          >;
                      },
                      { required: boolean },
                      AssignmentType<
                          {
                              value: NumberField<
                                  { initial: 0; integer: true; min: 0 },
                                  AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                              >;
                          },
                          SimpleMerge<{ required: boolean }, DefaultOptions>,
                      >,
                      { value: InitializedType<{ initial: 0; integer: true; min: 0 }> },
                      { value: InitializedType<{ initial: 0; integer: true; min: 0 }> },
                  >;
              },
              { required: boolean },
              AssignmentType<
                  {
                      alt: SchemaField<
                          {
                              notes: StringField<
                                  DefaultOptions,
                                  AssignmentType<DefaultOptions>,
                                  InitializedType<DefaultOptions>,
                                  InitializedType<DefaultOptions>,
                              >;
                              value: NumberField<
                                  { initial: 0; integer: true; min: 0 },
                                  AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                              >;
                          },
                          { required: boolean },
                          AssignmentType<
                              {
                                  notes: StringField<
                                      DefaultOptions,
                                      AssignmentType<DefaultOptions>,
                                      InitializedType<DefaultOptions>,
                                      InitializedType<DefaultOptions>,
                                  >;
                                  value: NumberField<
                                      { initial: 0; integer: true; min: 0 },
                                      AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                                      InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                      InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                  >;
                              },
                              SimpleMerge<{ required: boolean }, DefaultOptions>,
                          >,
                          {
                              notes: InitializedType<DefaultOptions>;
                              value: InitializedType<{ initial: 0; integer: true; min: 0 }>;
                          },
                          {
                              notes: InitializedType<DefaultOptions>;
                              value: InitializedType<{ initial: 0; integer: true; min: 0 }>;
                          },
                      >;
                      hp: SchemaField<
                          {
                              value: NumberField<
                                  { initial: 0; integer: true; min: 0 },
                                  AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                              >;
                          },
                          { required: boolean },
                          AssignmentType<
                              {
                                  value: NumberField<
                                      { initial: 0; integer: true; min: 0 },
                                      AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                                      InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                      InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                  >;
                              },
                              SimpleMerge<{ required: boolean }, DefaultOptions>,
                          >,
                          { value: InitializedType<{ initial: 0; integer: true; min: 0 }> },
                          { value: InitializedType<{ initial: 0; integer: true; min: 0 }> },
                      >;
                      skill: SchemaField<
                          {
                              value: NumberField<
                                  { initial: 0; integer: true; min: 0 },
                                  AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                  InitializedType<{ initial: 0; integer: true; min: 0 }>,
                              >;
                          },
                          { required: boolean },
                          AssignmentType<
                              {
                                  value: NumberField<
                                      { initial: 0; integer: true; min: 0 },
                                      AssignmentType<{ initial: 0; integer: true; min: 0 }>,
                                      InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                      InitializedType<{ initial: 0; integer: true; min: 0 }>,
                                  >;
                              },
                              SimpleMerge<{ required: boolean }, DefaultOptions>,
                          >,
                          { value: InitializedType<{ initial: 0; integer: true; min: 0 }> },
                          { value: InitializedType<{ initial: 0; integer: true; min: 0 }> },
                      >;
                  },
                  SimpleMerge<{ required: boolean }, DefaultOptions>,
              >,
              {
                  alt: {
                      notes: InitializedType<DefaultOptions>;
                      value: InitializedType<{ initial: 0; integer: true; min: 0 }>;
                  };
                  hp: { value: InitializedType<{ initial: 0; integer: true; min: 0 }> };
                  skill: { value: InitializedType<{ initial: 0; integer: true; min: 0 }> };
              },
              {
                  alt: {
                      notes: InitializedType<DefaultOptions>;
                      value: InitializedType<{ initial: 0; integer: true; min: 0 }>;
                  };
                  hp: { value: InitializedType<{ initial: 0; integer: true; min: 0 }> };
                  skill: { value: InitializedType<{ initial: 0; integer: true; min: 0 }> };
              },
          >;
          flags: SchemaField<
              {
                  boolean: ObjectField<
                      { required: boolean },
                      AssignmentType<{ required: boolean }>,
                      InitializedType<{ required: boolean }>,
                      InitializedType<{ required: boolean }>,
                  >;
                  dictionary: ObjectField<
                      { required: boolean },
                      AssignmentType<{ required: boolean }>,
                      InitializedType<{ required: boolean }>,
                      InitializedType<{ required: boolean }>,
                  >;
              },
              { required: boolean },
              AssignmentType<
                  {
                      boolean: ObjectField<
                          { required: boolean },
                          AssignmentType<{ required: boolean }>,
                          InitializedType<{ required: boolean }>,
                          InitializedType<{ required: boolean }>,
                      >;
                      dictionary: ObjectField<
                          { required: boolean },
                          AssignmentType<{ required: boolean }>,
                          InitializedType<{ required: boolean }>,
                          InitializedType<{ required: boolean }>,
                      >;
                  },
                  SimpleMerge<{ required: boolean }, DefaultOptions>,
              >,
              {
                  boolean: InitializedType<{ required: boolean }>;
                  dictionary: InitializedType<{ required: boolean }>;
              },
              {
                  boolean: InitializedType<{ required: boolean }>;
                  dictionary: InitializedType<{ required: boolean }>;
              },
          >;
          hd: NumberField<
              { initial: 8; integer: true; min: 0; nullable: false },
              AssignmentType<{ initial: 8; integer: true; min: 0; nullable: false }>,
              InitializedType<{ initial: 8; integer: true; min: 0; nullable: false }>,
              InitializedType<{ initial: 8; integer: true; min: 0; nullable: false }>,
          >;
          hp: NumberField<
              { integer: true; min: 0; nullable: false; required: false },
              AssignmentType<
                  { integer: true; min: 0; nullable: false; required: false },
              >,
              InitializedType<
                  { integer: true; min: 0; nullable: false; required: false },
              >,
              InitializedType<
                  { integer: true; min: 0; nullable: false; required: false },
              >,
          >;
          languages: SetField<
              StringField<
                  { blank: false },
                  AssignmentType<{ blank: false }>,
                  InitializedType<{ blank: false }>,
                  InitializedType<{ blank: false }>,
              >,
              { required: boolean },
              AssignmentType<{ blank: false }>,
              InitializedType<{ blank: false }>,
              AssignmentType<AssignmentType<{ blank: false }>, { required: boolean }>,
              InitializedType<InitializedType<{ blank: false }>, { required: boolean }>,
              InitializedType<{ blank: false }>,
              PersistedType<InitializedType<{ blank: false }>, { required: boolean }>,
          >;
          level: NumberField<
              { initial: 1; integer: true; min: 0; nullable: false },
              AssignmentType<{ initial: 1; integer: true; min: 0; nullable: false }>,
              InitializedType<{ initial: 1; integer: true; min: 0; nullable: false }>,
              InitializedType<{ initial: 1; integer: true; min: 0; nullable: false }>,
          >;
          links: SchemaField<
              {
                  children: ArrayField<
                      EmbeddedDataField<
                          AnyConstructor,
                          DefaultOptions,
                          AssignmentType<AnyConstructor, DefaultOptions>,
                          AnyDataModel,
                          {},
                      >,
                      { required: boolean },
                      AssignmentType<AnyConstructor, DefaultOptions>,
                      AnyDataModel,
                      AssignmentType<
                          AssignmentType<AnyConstructor, DefaultOptions>,
                          { required: boolean },
                      >,
                      InitializedType<AnyDataModel, { required: boolean }>,
                      {},
                      PersistedType<{}, { required: boolean }>,
                  >;
                  classAssociations: ArrayField<
                      EmbeddedDataField<
                          AnyConstructor,
                          DefaultOptions,
                          AssignmentType<AnyConstructor, DefaultOptions>,
                          AnyDataModel,
                          {},
                      >,
                      { required: boolean },
                      AssignmentType<AnyConstructor, DefaultOptions>,
                      AnyDataModel,
                      AssignmentType<
                          AssignmentType<AnyConstructor, DefaultOptions>,
                          { required: boolean },
                      >,
                      InitializedType<AnyDataModel, { required: boolean }>,
                      {},
                      PersistedType<{}, { required: boolean }>,
                  >;
                  supplements: ArrayField<
                      EmbeddedDataField<
                          AnyConstructor,
                          DefaultOptions,
                          AssignmentType<AnyConstructor, DefaultOptions>,
                          AnyDataModel,
                          {},
                      >,
                      { required: boolean },
                      AssignmentType<AnyConstructor, DefaultOptions>,
                      AnyDataModel,
                      AssignmentType<
                          AssignmentType<AnyConstructor, DefaultOptions>,
                          { required: boolean },
                      >,
                      InitializedType<AnyDataModel, { required: boolean }>,
                      {},
                      PersistedType<{}, { required: boolean }>,
                  >;
              },
              { required: boolean },
              AssignmentType<
                  {
                      children: ArrayField<
                          EmbeddedDataField<
                              AnyConstructor,
                              DefaultOptions,
                              AssignmentType<AnyConstructor, DefaultOptions>,
                              AnyDataModel,
                              {},
                          >,
                          { required: boolean },
                          AssignmentType<AnyConstructor, DefaultOptions>,
                          AnyDataModel,
                          AssignmentType<
                              AssignmentType<AnyConstructor, DefaultOptions>,
                              { required: boolean },
                          >,
                          InitializedType<AnyDataModel, { required: boolean }>,
                          {},
                          PersistedType<{}, { required: boolean }>,
                      >;
                      classAssociations: ArrayField<
                          EmbeddedDataField<
                              AnyConstructor,
                              DefaultOptions,
                              AssignmentType<AnyConstructor, DefaultOptions>,
                              AnyDataModel,
                              {},
                          >,
                          { required: boolean },
                          AssignmentType<AnyConstructor, DefaultOptions>,
                          AnyDataModel,
                          AssignmentType<
                              AssignmentType<AnyConstructor, DefaultOptions>,
                              { required: boolean },
                          >,
                          InitializedType<AnyDataModel, { required: boolean }>,
                          {},
                          PersistedType<{}, { required: boolean }>,
                      >;
                      supplements: ArrayField<
                          EmbeddedDataField<
                              AnyConstructor,
                              DefaultOptions,
                              AssignmentType<AnyConstructor, DefaultOptions>,
                              AnyDataModel,
                              {},
                          >,
                          { required: boolean },
                          AssignmentType<AnyConstructor, DefaultOptions>,
                          AnyDataModel,
                          AssignmentType<
                              AssignmentType<AnyConstructor, DefaultOptions>,
                              { required: boolean },
                          >,
                          InitializedType<AnyDataModel, { required: boolean }>,
                          {},
                          PersistedType<{}, { required: boolean }>,
                      >;
                  },
                  SimpleMerge<{ required: boolean }, DefaultOptions>,
              >,
              {
                  children: InitializedType<AnyDataModel, { required: boolean }>;
                  classAssociations: InitializedType<AnyDataModel, { required: boolean }>;
                  supplements: InitializedType<AnyDataModel, { required: boolean }>;
              },
              {
                  children: PersistedType<{}, { required: boolean }>;
                  classAssociations: PersistedType<{}, { required: boolean }>;
                  supplements: PersistedType<{}, { required: boolean }>;
              },
          >;
          savingThrows: SchemaField<
              {
                  fort: SchemaField<
                      {
                          custom: FormulaField;
                          value: StringField<
                              { initial: "low" },
                              AssignmentType<{ initial: "low" }>,
                              InitializedType<{ initial: "low" }>,
                              InitializedType<{ initial: "low" }>,
                          >;
                      },
                      DefaultOptions,
                      AssignmentType<
                          {
                              custom: FormulaField;
                              value: StringField<
                                  { initial: "low" },
                                  AssignmentType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                              >;
                          },
                          SimpleMerge<DefaultOptions, DefaultOptions>,
                      >,
                      {
                          custom: InitializedType<DefaultOptions>;
                          value: InitializedType<{ initial: "low" }>;
                      },
                      {
                          custom: InitializedType<DefaultOptions>;
                          value: InitializedType<{ initial: "low" }>;
                      },
                  >;
                  ref: SchemaField<
                      {
                          custom: FormulaField;
                          value: StringField<
                              { initial: "low" },
                              AssignmentType<{ initial: "low" }>,
                              InitializedType<{ initial: "low" }>,
                              InitializedType<{ initial: "low" }>,
                          >;
                      },
                      DefaultOptions,
                      AssignmentType<
                          {
                              custom: FormulaField;
                              value: StringField<
                                  { initial: "low" },
                                  AssignmentType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                              >;
                          },
                          SimpleMerge<DefaultOptions, DefaultOptions>,
                      >,
                      {
                          custom: InitializedType<DefaultOptions>;
                          value: InitializedType<{ initial: "low" }>;
                      },
                      {
                          custom: InitializedType<DefaultOptions>;
                          value: InitializedType<{ initial: "low" }>;
                      },
                  >;
                  will: SchemaField<
                      {
                          custom: FormulaField;
                          value: StringField<
                              { initial: "low" },
                              AssignmentType<{ initial: "low" }>,
                              InitializedType<{ initial: "low" }>,
                              InitializedType<{ initial: "low" }>,
                          >;
                      },
                      DefaultOptions,
                      AssignmentType<
                          {
                              custom: FormulaField;
                              value: StringField<
                                  { initial: "low" },
                                  AssignmentType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                              >;
                          },
                          SimpleMerge<DefaultOptions, DefaultOptions>,
                      >,
                      {
                          custom: InitializedType<DefaultOptions>;
                          value: InitializedType<{ initial: "low" }>;
                      },
                      {
                          custom: InitializedType<DefaultOptions>;
                          value: InitializedType<{ initial: "low" }>;
                      },
                  >;
              },
              DefaultOptions,
              AssignmentType<
                  {
                      fort: SchemaField<
                          {
                              custom: FormulaField;
                              value: StringField<
                                  { initial: "low" },
                                  AssignmentType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                              >;
                          },
                          DefaultOptions,
                          AssignmentType<
                              {
                                  custom: FormulaField;
                                  value: StringField<
                                      { initial: "low" },
                                      AssignmentType<{ initial: "low" }>,
                                      InitializedType<{ initial: "low" }>,
                                      InitializedType<{ initial: "low" }>,
                                  >;
                              },
                              SimpleMerge<DefaultOptions, DefaultOptions>,
                          >,
                          {
                              custom: InitializedType<DefaultOptions>;
                              value: InitializedType<{ initial: "low" }>;
                          },
                          {
                              custom: InitializedType<DefaultOptions>;
                              value: InitializedType<{ initial: "low" }>;
                          },
                      >;
                      ref: SchemaField<
                          {
                              custom: FormulaField;
                              value: StringField<
                                  { initial: "low" },
                                  AssignmentType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                              >;
                          },
                          DefaultOptions,
                          AssignmentType<
                              {
                                  custom: FormulaField;
                                  value: StringField<
                                      { initial: "low" },
                                      AssignmentType<{ initial: "low" }>,
                                      InitializedType<{ initial: "low" }>,
                                      InitializedType<{ initial: "low" }>,
                                  >;
                              },
                              SimpleMerge<DefaultOptions, DefaultOptions>,
                          >,
                          {
                              custom: InitializedType<DefaultOptions>;
                              value: InitializedType<{ initial: "low" }>;
                          },
                          {
                              custom: InitializedType<DefaultOptions>;
                              value: InitializedType<{ initial: "low" }>;
                          },
                      >;
                      will: SchemaField<
                          {
                              custom: FormulaField;
                              value: StringField<
                                  { initial: "low" },
                                  AssignmentType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                                  InitializedType<{ initial: "low" }>,
                              >;
                          },
                          DefaultOptions,
                          AssignmentType<
                              {
                                  custom: FormulaField;
                                  value: StringField<
                                      { initial: "low" },
                                      AssignmentType<{ initial: "low" }>,
                                      InitializedType<{ initial: "low" }>,
                                      InitializedType<{ initial: "low" }>,
                                  >;
                              },
                              SimpleMerge<DefaultOptions, DefaultOptions>,
                          >,
                          {
                              custom: InitializedType<DefaultOptions>;
                              value: InitializedType<{ initial: "low" }>;
                          },
                          {
                              custom: InitializedType<DefaultOptions>;
                              value: InitializedType<{ initial: "low" }>;
                          },
                      >;
                  },
                  SimpleMerge<DefaultOptions, DefaultOptions>,
              >,
              {
                  fort: {
                      custom: InitializedType<DefaultOptions>;
                      value: InitializedType<{ initial: "low" }>;
                  };
                  ref: {
                      custom: InitializedType<DefaultOptions>;
                      value: InitializedType<{ initial: "low" }>;
                  };
                  will: {
                      custom: InitializedType<DefaultOptions>;
                      value: InitializedType<{ initial: "low" }>;
                  };
              },
              {
                  fort: {
                      custom: InitializedType<DefaultOptions>;
                      value: InitializedType<{ initial: "low" }>;
                  };
                  ref: {
                      custom: InitializedType<DefaultOptions>;
                      value: InitializedType<{ initial: "low" }>;
                  };
                  will: {
                      custom: InitializedType<DefaultOptions>;
                      value: InitializedType<{ initial: "low" }>;
                  };
              },
          >;
          scriptCalls: ArrayField<
              EmbeddedDataField<
                  AnyConstructor,
                  DefaultOptions,
                  AssignmentType<AnyConstructor, DefaultOptions>,
                  AnyDataModel,
                  {},
              >,
              { required: boolean },
              AssignmentType<AnyConstructor, DefaultOptions>,
              AnyDataModel,
              AssignmentType<
                  AssignmentType<AnyConstructor, DefaultOptions>,
                  { required: boolean },
              >,
              InitializedType<AnyDataModel, { required: boolean }>,
              {},
              PersistedType<{}, { required: boolean }>,
          >;
          skillsPerLevel: NumberField<
              { initial: 0; integer: true; min: 0; nullable: false },
              AssignmentType<{ initial: 0; integer: true; min: 0; nullable: false }>,
              InitializedType<{ initial: 0; integer: true; min: 0; nullable: false }>,
              InitializedType<{ initial: 0; integer: true; min: 0; nullable: false }>,
          >;
          sources: ArrayField<
              EmbeddedDataField<
                  AnyConstructor,
                  DefaultOptions,
                  AssignmentType<AnyConstructor, DefaultOptions>,
                  AnyDataModel,
                  {},
              >,
              { required: boolean },
              AssignmentType<AnyConstructor, DefaultOptions>,
              AnyDataModel,
              AssignmentType<
                  AssignmentType<AnyConstructor, DefaultOptions>,
                  { required: boolean },
              >,
              InitializedType<AnyDataModel, { required: boolean }>,
              {},
              PersistedType<{}, { required: boolean }>,
          >;
          subType: StringField<
              { blank: boolean; initial: "base"; nullable: boolean },
              AssignmentType<{ blank: boolean; initial: "base"; nullable: boolean }>,
              InitializedType<{ blank: boolean; initial: "base"; nullable: boolean }>,
              InitializedType<{ blank: boolean; initial: "base"; nullable: boolean }>,
          >;
          tag: StringField<
              { nullable: boolean; required: boolean },
              AssignmentType<{ nullable: boolean; required: boolean }>,
              InitializedType<{ nullable: boolean; required: boolean }>,
              InitializedType<{ nullable: boolean; required: boolean }>,
          >;
          tags: SetField<
              StringField<
                  { blank: false },
                  AssignmentType<{ blank: false }>,
                  InitializedType<{ blank: false }>,
                  InitializedType<{ blank: false }>,
              >,
              { required: boolean },
              AssignmentType<{ blank: false }>,
              InitializedType<{ blank: false }>,
              AssignmentType<AssignmentType<{ blank: false }>, { required: boolean }>,
              InitializedType<InitializedType<{ blank: false }>, { required: boolean }>,
              InitializedType<{ blank: false }>,
              PersistedType<InitializedType<{ blank: false }>, { required: boolean }>,
          >;
          wealth: FormulaField;
          weaponProf: SetField<
              StringField<
                  { blank: false },
                  AssignmentType<{ blank: false }>,
                  InitializedType<{ blank: false }>,
                  InitializedType<{ blank: false }>,
              >,
              { required: boolean },
              AssignmentType<{ blank: false }>,
              InitializedType<{ blank: false }>,
              AssignmentType<AssignmentType<{ blank: false }>, { required: boolean }>,
              InitializedType<InitializedType<{ blank: false }>, { required: boolean }>,
              InitializedType<{ blank: false }>,
              PersistedType<InitializedType<{ blank: false }>, { required: boolean }>,
          >;
      }