"Fabricating" a unit

Yeah pretty much… you can make a function in your root blueprint that takes in some parameters, then spawns and attaches actors during begin play and/or in construction graph (if you need to construct a ship with specific parameters within the editor).

You could also add a few empty “pre-attached” static mesh components to your root blueprint, then during construction/begin play, add any meshes you need to those components, then simply store some variables (like power, ammo etc.) so that your root knows what kind of attachment it has.

So you can do everything from within one blueprint really if you want to, it all depends on the complexity I guess… if every part needs to have some really specific functionality that goes beyond storing a few variables then it makes more sense to have a base blueprint for each type.