for storing data - you can choose for designer data tables (without embedded structs) or assets .
I guess, you can read about similar loading DataAsset approach here.
and if I understand correctly that you don’t need to manage this data somehow in game logic, but in game editor, then you don’t need any kind of object manager.
as I can see (:
GeneComponent:
- receive LevelUp,
- ask static library (if there are many functions, then MutationLibrary) to pickup random mutation from DataAsset,
- apply mutation on his owner Pawn.