We used the SaveGame system for a while, but in the end we just dropped it and went with a custom system. The default saving API has wildly unpredictable behavior when your code evolves, basically don’t hope to load an existing save after changing a field from “int” to “float” - or from “unsigned int” to “int”. Or removing a field. We switched to a JSON save system mostly to be able to load old game saves.