{ pkgs, ... }:
let
  createUser = { username, realname, founder ? false, sudo ? false, ... }: {
    description = realname;
    extraGroups = ((if founder then [ "founder" ] else [ ])
      ++ (if founder || sudo then [ "wheel" ] else [ ]));
    isNormalUser = true;
    openssh.authorizedKeys.keyFiles = [ "./sshKeys/${username}" ];
  };

  users = {
    "coded" = {
      realname = "Sam";
      founder = true;
    };
    "minion" = {
      realname = "Skyler";
      founder = true;
    };
    "pineapplefan" = {
      realname = "Ash";
      founder = true;
    };
    "eek" = {
      realname = "Nexus";
      sudo = true;
    };
  };
in {
  users = {
    mutableUsers = false;
    motd = ''
      Welcome to Clicks! Please make sure to follow all guidelines for using the server, which you can find by typing
      `guidelines` in your terminal. In particular, please remember to use this server as minimally as possible (e.g.
      by keeping as much of your work as is possible stateless and by using your personal
      "${builtins.readFile ./texts/MOTD}"
    '';
    defaultUserShell = pkgs.zsh;
    users =
      builtins.mapAttrs (name: value: createUser { username = name; } // value)
      users;
    groups = { };
  };
}
