public void SetupInitialSnapshot()
        {
            this.Snapshot = GetInitialSnapshot();

            ResetData();

            JsonSystem.SaveJson(this.Snapshot, SNAPSHOT_NAME);

            LoadSnapshot();
        }
        public void LoadSnapshot()
        {
            if (JsonSystem.GetJson(SNAPSHOT_NAME, out DataSnapshot snap))
            {
                this.Snapshot = snap;

                OnLoad?.Invoke(snap);

                return;
            }

            throw new Exception("Snapshot cannot be loaded.");
        }
 public bool DoesSnapshotExists()
 => JsonSystem.GetJson(SNAPSHOT_NAME, out DataSnapshot _);
        public void SaveSnapshot()
        {
            OnSave?.Invoke(this.Snapshot);

            JsonSystem.SaveJson(this.Snapshot, SNAPSHOT_NAME);
        }