I'm not sure if this is feasible but certainly more convenient than how things are.
As is whenever you want a different colored shot whether its a bullet or beam you have to create a new shot file or shot entity. The amount of shot entities is bad in itself. The simple method is just to copy paste and change the sprite. However, this puts a burden on fixing or adjusting when the game changes code or syntax. The advanced method is inheritance which frankly is difficult because it's not always working properly and can be very difficult with complexity not to mention problematic if things change.
So my suggestion is a switch method through which an emitter can choose which version it wants. Basically, it's like multitoggle mode switch: switch = MySwitch(2) or if many maybe even switch = [MySwitch1(1), MySwitch2(1)]
On the shot file side it would be similar to a ToggledComponent but as a collection thereof similar to a (C#) switch statement. This would make things far more convenient and easier to manage. It would become easier to allow weapons to offer different colored shots, hence, QOL for the game. I also hope this lessens the necessary number of different shot entities.
On a side note the switch component could also benefit parts. Support for custom parameters (if not already) would be convenient for accessing Stats.