2D shooter game weapon class structure

So I’m trying to make a 2D shooter game from scratch using the best possible code architecture, and I can’t decide on structure for the weapons class (and subclasses)

So I have a base Weapon class, and it has properties like damage, bullet speed, reloading time, clip size, etc.
But then the problem is how do I create weapons with tracking projectiles or shotguns or lasers (how should the inheritance structure look like?)

I guess I don’t really want to have: “boolean tracking; boolean laser; int numBulletsPerShot;” because that would be kind of clunky.