Strategy for loading a generic prefab with template stats

I’m trying to figure out the best approach for this, but the idea is that I have a prefab that is a generic spacecraft with all the physics and ai routines built into it. The idea is if instantiate this generic ship, I want to apply a sort of ship profile or template that will give it the right model and all the appropriate stats from a library of ship templates.

So, like, hypothetically, I instantiate a ship, then assign it the template of “Terran Frigate” and it would have all the attributes of a terran frigate starship.

Create a struct ShipProperties
{
//Things that make a ship
}

create ShipManager class with array of ShipProperties. Use editor to modify all the properties as it will show up as an array.

Create Function that converts array to dictionary with ship.name as index

Create Static Function that lets you grab the data for a ship from the managing class

Make a second prefab.