Saving Asset Sate

Hi,

I have a game with data that I save as a unity .asset files.
When a user saves a game, there are certain .asset objects that needs to be saved in the new state, but not overwrite the default state.

For example if I have a serializeable Enemy class and I created several enemies in .asset format with different attributes like Level which defaults to 1, Max health and so on.
During gameplay, that enemy now have another Level say 2, so when the user saves the game I want to save the current state of that Enemy object without overwriting the default one. So if I load, I want the enemy to be loaded with Level 2, but when I start a new game I want the enemy to start with the default level of 1.

Any help is greatly appreciated

You want to look at Unity - Scripting API: ScriptableObject

@astrokoala Thank you for your reply. My Enemy objects are inherited from ScriptableObject already. Are you suggesting to call CreateInstance during runtime when the user saves?
That does not seem practical.
I want to save the new state of the ScriptableObject with the save data file.