public void Save(GameProgress progress, string path)
 {
     using (var sw = new StreamWriter(path))
         using (var writer = new JsonTextWriter(sw))
         {
             var serializer = CreateSerializer();
             serializer.Serialize(writer, progress);
         }
 }
 public GameProgress Load(string path)
 {
     using (var r = new StreamReader(path))
     {
         var data       = r.ReadToEnd();
         var stateModel = JsonConvert.DeserializeObject <GameStateModel>(data);
         var progress   = new GameProgress(stateModel);
         return(progress);
     }
 }