Customizeable vehicles

Hey i am looking for some inspiration on mechanic / system i wanna implement
i have a rts style space game and wanna create a ship designer where the player can create their own ships by choosing from a library of parts
their design should be saved to a file so they can share their ships with other players and they can load them into their own game
game is single player btw.
In the game of course your ship is only one object and not multiple parts.
So the questions is what is a good way to approach this, i was thinking of setting up one class which will just store the information which parts go where, and this is the class which will be select able in the game then.
So far i found the socket system and the world outliner (if possible at runtime) as solution to parent the parts so they follow along with the main object.
Is there any best practice or does anyone have experience on how to setup such a thing.