ConstLogic class for affiliation items (factions, organizations).
Logic class for affliction items (disease, poison, injuries).
Logic class for armor gear items.
Logic class for attribute items (strength, agility, etc.).
Logic class for concoction gear items (potions, poisons).
Logic class for container gear items (bags, chests).
Logic class for miscellaneous gear items.
Logic class for mystery items (magic schools, arcane traditions).
Logic class for mystical ability items (spells, powers).
Logic class for projectile gear items (arrows, bolts).
Logic class for skill items (combat, crafting, social, etc.).
Logic class for trauma items (wounds, injuries).
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.
Canonical item-kind → Logic-class registry, keyed by sohl.utils.ITEM_KIND.