{
  pkgs,
  lib,
  ...
}: let
  inherit
    (lib)
    mkOption
    mkPackageOption
    ;
  inherit (lib.types) nonEmptyStr attrsOf str;
in {
  options = {
    services.iceshrimp = {
      user = mkOption {
        type = nonEmptyStr;
        default = "iceshrimp";
      };

      group = mkOption {
        type = nonEmptyStr;
        default = "iceshrimp";
      };

      package = mkPackageOption pkgs "iceshrimp" {};

      config = mkOption {
        type = attrsOf str;
        default = ./default_config.nix;
      };
    };
  };
}
