{ lib, ... }:
  let
    inherit (lib)
      mkOption
      types
    ;

    gitOptions = {
      defaultBranch = mkOption {
        type = types.nullOr types.str;
        description = "The name of the default branch in git.";
        default = null;
      };

      flow = {
        mainBranch = mkOption {
          type = types.nullOr types.str;
          description = "The name of the stable branch in git flow.";
          default = null;
        };

        devBranch = mkOption {
          type = types.nullOr types.str;
          description = "The name of the development branch in git flow.";
          default = null;
        };
      };

      aliases = mkOption {
        type = types.attrsOf types.str;
        description = "Git command aliases to install.";
        default = {};
      };
    };
  in {
    options = {
      valhalla = {
        git = gitOptions;
      };
    };
  }