public static bool TrySaveGame(string fileName)
        {
            try
            {
                if (string.IsNullOrEmpty(fileName))
                {
                    return(false);
                }

                // validate name & extension
                fileName = FileHelper.AddExtension(fileName, ".json");

                // check for existing file & ask to override
                var fileExists = FileHelper.FileExists(Shipwreck.Settings.SavePath, fileName);
                if (fileExists)
                {
                    var overwrite = ViewHelpers.OverwriteFileName(fileName);
                    // TODO view reports an error when overwrite is false
                    if (!overwrite)
                    {
                        return(false);
                    }
                }

                // save filename to game
                Shipwreck.CurrentGame.SaveFileName = fileName;

                // write the file
                var gameString = JsonConvert.SerializeObject(Shipwreck.CurrentGame);
                var filePath   = Path.Combine(Shipwreck.Settings.SavePath, fileName);
                File.WriteAllText(filePath, gameString);
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }