Weapon Hierarchy

The key words MUST, MUST NOT, SHOULD, and MAY are used as in RFC 2119.

Weapons split three ways: data rows (every individual weapon), archetype behavior (one class per weapon type), and the shared combat spine (#157's CombatResolver). The 360 loaded weapons stay data; the archetype layer is what #56/#57 build.

The split

LayerOwnsExamples
WeaponData (resource, per weapon)Stats (ATK/ATA/range), grind, element + level, special/PA id (#95 — the PSOBB weapon_special field pattern), model path, rarity, class restrictionsevery saber, every rifle
Archetype class (one per type)Combo chain (animation triple + per-motion windows from #155), hitbox preset geometry (#157 inc 3), fire mode (single/burst/spread — #57), hold/swap animationsSaberWeapon, MechgunWeapon
CombatResolver (shared, #157)Damage formula, accuracy rolls (melee + projectile variants), crit bonuses (from stats + equipment)one module

Archetype contract

Invariants

Testing

Per archetype: seeded unit tests for the combo window table and damage-multiplier routing; the post-build layer is the autopilot equipping that archetype in a kill_all room (extend the shops/equip smoke — it already equips a weapon).