but in your example in your top level weapon folder did you want to give them basic weapon properties (instance variable/behavior)
then as you drill down be more specific for each weapon family?
Weapon --> (firerate, bulletSprite, range)
Rilfe (fireMode (burst or auto) )
In this case Shot Gun and Rifle still have firerate, bulletSprite, and range
This impact how family behave as opposed to just grouping them in a folder? the above is more like inheritance, even though it can also be accomplished using family composition?
But they both behave differently