BaseItemResolver
Resolves which vanilla base Java items a generic plugin's custom item_model should be registered under in the Geyser mappings file. See Option J plan, "Equipment-aware armor detection" and "Filename heuristic table".
Resolution order: filename heuristic for clearly-weapon/tool patterns → equipment-file lookup (armor case) → broader filename heuristic → generic fallback.
The early weapon/tool heuristic precedes the equipment lookup specifically because many plugins (e.g. EliteMobs) ship a single "material" equipment file (e.g. bronze.json) that covers chestplate+leggings+boots for the same tier, and the naive material-stem lookup would pull a sword named bronze_sword into the leggings-slot equipment file (which has a humanoid_leggings layer) and route the sword under leg-armor base items.