хорошо. не буду) у меня есть впринципе мысли про всё кроме сохранения действий. вообще в целом хотелось бы ещё понять как сделать безопасное одновременное сохраненение нескольких файлов. в общем сейчас мысль такая: есть некий файл указывающий версию, все файлы называются примерно так: region_0_0_0.[version].bin, каждая процедура сохранения увеличивает версию и мы записываем новые файлы с новой версией, т.е. region_0_0_0.2.bin, следующий будет region_0_0_0.3.bin. при загрузке смотрим в файл с версией, берем файл с последней версией. тут можно и несоответствия выявить, и прерванность сохранения, и откатиться без проблем на старые файлы. но может кто-то что-то круче придумал. не уверен что всё это описано прям в книгах про движки, а может и описано, как знать...
мне кажется, что вам нужно немного больше почитать про структуры данных
я конечно не вникал в проблему, которую вы решаете, могу быть не прав, но что-то мне очень сильно подсказывает, что вы пытаетесь решить уже решенную проблему