OBJECT STORES DATA
Objects ( Player, Interactables, Pickeables, Triggers, etc... ) need to notify GameDataManager when data is changed so it can be stored until the Game Saves.
Object Generic Data is sent to GameDataManager
GAME DATA MANAGER PROCESSING
GameDataManager processes the Generic Data and ensures it can be serialized based on the type of data sent. Non-serializable types cannot be stored in a Json File.
SaveGame() IS TRIGGERED
When DataPersistenceManager.instance.SaveGame() is called, DataPersistenceManager gathers GameData from GameDataManager and sends it to FileDataHandler.
ENCRYPTION & JSON FILE
FileDataHandler takes GameData, and it stores it as a Json file. This file is then encrypted and saved locally in the Player computer.