Best way to rig a weapon?

Hello. I’ve been modelling for a while but have never gotten to the point of rigging a weapon for animation and I don’t know which way would be the best. I’ve tried parenting parts of the weapon to dummies and the animating the dummy transform’s which worked fine and unreal didn’t have any problem but I feel like I’m missing a lot.
(I am using 3ds max by the way)
In short I have three questions:

Is there a reason for or a difference between using bones instead of dummies?

Can I separate each movable part of the weapon and then animate them individually or is it better performance-wise to skin the entire weapon as one object and set the weights of individual parts?

What are sockets? I noticed the FPS sample uses sockets in the first person weapon rig and I’m not sure what they are.

whether you use bones or attach child objects to parents, they will both show up as joints when imported.

using a single skeletal mesh will be cheaper than splitting it into separate meshes, because it will save on draw calls, but if you want randomized modular weapons, it would make sense to split it up into separate meshes.

sockets are a named location/rotation relative to their parent bone. they are often used as attachment points for things like weapon holsters, or muzzle flash locations.

Thanks for the answer!