Here is a sneak peak from my current game’s save system which still I am developing incrementally.
I have various functions to save specific data blocks on my subsystem and subsystem is always looks for coralated data ( ex level name) while saving a block.
Ex: Object saves its position in end play
loads its self if its data exists
it will never load itself if there is another level cause subsystem always looks for always data exist on that level. Which i also made on slot name as well as a struct value on bigdata.
Basically I save data always a slot coralated with level also to ini file
and when session starts I look for a slot (for now) coralated with that level
If not I auto create a new empty slot for the level, since even player manually doesn’t save the game I can still save progression, level objects etc.
If you just save your bigdata per level you will see that it is solving the problem you asked for