{
  lib,
  pkgs,
  config,
  osConfig,
  ...
}: {
  options.programs.steam = {
    enable = lib.mkEnableOption "enable steam";
  };

  config = lib.mkIf config.programs.steam.enable (
    lib.mkMerge [
      {
        home.packages = with pkgs; [
          steam
          steam.run
        ];
      }
      (
        lib.mkIf osConfig.host.impermanence.enable {
          home.persistence."/persist${config.home.homeDirectory}" = {
            directories = [
              {
                directory = "${config.xdg.dataHome}/Steam";
                method = "symlink";
              }
            ];
            allowOther = true;
          };
        }
      )
    ]
  );

  # TODO: bind impermanence config
}