Data tables and build-your-own ship games (Space Engineers/ Crossout/ Roblox etc)

I’m working on a build-your-own spaceship(s) game and was wondering if this is a decent way to go about it:

I have my construction UI set up already, click an icon, pay the cost, get a block to place (hull blocks, guns, engines etc).
My data is all stored in CSV files.

Would it be efficient to simply have ONE blueprint actor for my ship part, and just pass the data into it when it’s built?
Are there any downsides to this method I’m not considering?
Is there a way I could instantiate certain parts, like common hull pieces?
Would I even need/ want to?
What would be the best method to keep the ship as a coherent “whole” once the construction phase is over? I was thinking of saving the ships into CSVs in some way, maybe by making a huge invisible grid around them and assigning each grid space whatever part should be there when the game is loaded.

The scope of the game would be the player creating ships to sell in a tycoon fashion, but they could also build their own ships with automated crews (like Rimworld or Dwarf Fortress basically, but less granular) and send them on jobs. The player could take direct control if they needed to (in dogfights for example). I don’t imagine there being a ton of ships on screen at once, but I’d like to leave it open enough to allow the player to build huge space stations without the game slowing to a crawl.

Any help is much appreciated!