How to store character data with least overhead?

I’m making a fighting game using only blueprints. There are multiple fighters to choose from that each have a name/weight/speed/mesh/etc so I’m currently using a struct to store all needed data. I have a demo Character Blueprint that all of this data is passed to in order to change its attributes and mesh.

The goal is to make it so that if player 1 chooses fighter_01 at the menu, the gameplay mode will only get the struct for fighter_01. In my current implementation I have getters for all of the fighter structs and use a switch to match the chosen one with the correct data. This worries me because it seems like I will have the data for the whole cast of fighters loaded up.

Is there a way to only get certain structs when necessary or any better way to do this? Thanks.

Can you clarify a bit please? The way I understand it is that you don’t have a standardised struct for all characters but you also say that you’re using “a” struct to hold the data. The main question is "are there two different structs for let’s say two fighters A and B like:

Fighter_A: Name (String), Speed(float), Power(float)

Fighter B: Name (String), Speed (float), PowerStacks (int)

or is it just that you have the same struct for them with the same variable types, but it’s just that their values are different?