ITEM_LOGIC_DEF: {
    affiliation: typeof AffiliationLogic;
    affliction: typeof AfflictionLogic;
    armorgear: typeof ArmorGearLogic;
    attribute: typeof AttributeLogic;
    concoctiongear: typeof ConcoctionGearLogic;
    containergear: typeof ContainerGearLogic;
    miscgear: typeof MiscGearLogic;
    mystery: typeof MysteryLogic;
    mysticalability: typeof MysticalAbilityLogic;
    projectilegear: typeof ProjectileGearLogic;
    skill: typeof SkillLogic;
    trauma: typeof TraumaLogic;
    weapongear: typeof sohl.document.item.logic.WeaponGearLogic;
} = ...

Canonical item-kind → Logic-class registry, keyed by sohl.utils.ITEM_KIND.

Type declaration

  • affiliation: typeof AffiliationLogic

    Logic class for affiliation items (factions, organizations).

  • affliction: typeof AfflictionLogic

    Logic class for affliction items (disease, poison, injuries).

  • armorgear: typeof ArmorGearLogic

    Logic class for armor gear items.

  • attribute: typeof AttributeLogic

    Logic class for attribute items (strength, agility, etc.).

  • concoctiongear: typeof ConcoctionGearLogic

    Logic class for concoction gear items (potions, poisons).

  • containergear: typeof ContainerGearLogic

    Logic class for container gear items (bags, chests).

  • miscgear: typeof MiscGearLogic

    Logic class for miscellaneous gear items.

  • mystery: typeof MysteryLogic

    Logic class for mystery items (magic schools, arcane traditions).

  • mysticalability: typeof MysticalAbilityLogic

    Logic class for mystical ability items (spells, powers).

  • projectilegear: typeof ProjectileGearLogic

    Logic class for projectile gear items (arrows, bolts).

  • skill: typeof SkillLogic

    Logic class for skill items (combat, crafting, social, etc.).

  • trauma: typeof TraumaLogic

    Logic class for trauma items (wounds, injuries).

  • weapongear: typeof sohl.document.item.logic.WeaponGearLogic

    Logic class for weapon gear items.

Declared as a precise object literal (no widening) so per-kind constructor types survive — that is what ItemLogicByKind derives from. The runtime registry COMMON_ITEM_LOGIC is intentionally widened (see below) to preserve string-keyed indexing by consumers such as SohlDataModel.create.