Scripts/Settings/Configuration.cs
using System;

namespace Milaine.Settings;

public class ConfigurationData {
  public string Language { get; set; } = "en";
}

public sealed class Configuration : Component {
  private readonly string filename = "settings.cfg";

  [Property]
  public string Language { get; set; } = "en";

  protected override void OnAwake() {
    if (!FileSystem.Data.FileExists(filename)) {
      SaveConfig();

      return;
    }

    LoadConfig();
  }

  public void LoadConfig() {
    var config = FileSystem.Data.ReadJson<ConfigurationData>(filename);
    Language = config.Language;
  }

  public void SaveConfig() {
    try {
      var config = new ConfigurationData { Language = Language };
      FileSystem.Data.WriteJson(filename, config);
    }
    catch (Exception ex) {
      Log.Warning($"Error to try create configuration file: {ex.Message}");
    }
  }
}