{lib, ...}:
with lib; let
  admins = {
    nerf = {
      hashedPassword = "$y$j9T$SJcjUIcs3JYuM5oyxfEQa/$tUBQT07FK4cb9xm.A6ZKVnFIPNOYMOKC6Dt6hadCuJ7";
      sshKeys = [
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEdA4LpEGUUmN8esFyrNZXFb2GiBID9/S6zzhcnofQuP nerf@nerflap2"
        "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIEdfOWD1DLuB1Ho69uRC3VgQu+X3gExFzVHhu2CAl8JSAAAABHNzaDo= laptop_child-sk"
      ];
      nixKeys = [
        "nerflap2-1:pDZCg0oo9PxNQxwVSQSvycw7WXTl53PGvVeZWvxuqJc="
      ];
    };
    gonne = {
      hashedPassword = "$6$EtGpHEcFkOi0yUWp$slXf0CvIUrhdqaoCrQ5YwtYu2IVuE1RGGst4fnDPRLWVm.lYx0ruvSAF2/vw/sLbW37ORJjlb0NHQ.kSG7cVY/";
      sshKeys = [
        "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIAhwkSDISCWLN2GhHfxdZsVkK4J7JoEcPwtNbAesb+BZAAAABHNzaDo= Gonne"
      ];
      nixKeys = [
        "gonne.mathebau.de-1:FsXFyFiBFE/JxC9MCkt/WuiXjx5dkRI9RXj0FxOQrV0="
      ];
    };
    daniel = {
      hashedPassword = "$y$j9T$.p7R1mqmbotP3SvuaH4KS.$l3hsHJyh0A0.ZhZ.4Tc1cgKAcKWKntXYsPKmPpUvYnD";
      sshKeys = [
        "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGCrx7aeIIOvdc+mW4ji8RlIuMRY55oDrcCs4q1KU7VG Daniel"
      ];
      nixKeys = [
        "nix.mathebau.firespike.de-1:OmST0YGbAaBjPo5xSM5Bqwk6/W5o7B5CnW/NDr0NacI="
      ];
    };
  };

  mkAdmin = name: {
    hashedPassword,
    sshKeys,
    ...
  }: {
    "${name}" = {
      isNormalUser = true;
      createHome = true;
      extraGroups = ["wheel"];
      group = "users";
      home = "/home/${name}";
      openssh.authorizedKeys = {keys = sshKeys;};
      inherit hashedPassword;
    };
  };
  mkNixKeys = _: {nixKeys, ...}: nixKeys;
in {
  users.users = mkMerge (mapAttrsToList mkAdmin admins);
  nix.settings.trusted-public-keys = lists.concatLists (mapAttrsToList mkNixKeys admins);
}