{
  flake,
  config,
  pkgs,
  ...
}:
let
  inherit (flake.config.people) user0;
  inherit (flake.config.machines) devices;

  mars = devices.mars.name;
  ceres = devices.ceres.name;
  eris = devices.eris.name;
  deimos = devices.deimos.name;
  phobos = devices.phobos.name;

  hostname = config.networking.hostName;

  deviceLogic =
    var0: var1: var2: var3: var4:
    if hostname == ceres then
      var0
    else if hostname == eris then
      var1
    else if hostname == mars then
      var2
    else if hostname == deimos then
      var3
    else if hostname == phobos then
      var4
    else
      var0;

  macOctet = deviceLogic "57" "58" "59" "60" "61";
in
{
  microvm = {
    vms = {
      miner = {
        autostart = true;
        config =
          let
            macAddress = "02:00:00:00:00:${macOctet}";
            workers = deviceLogic 35 4 18 5 6;
          in
          {
            environment.systemPackages = [
              pkgs.git
              pkgs.ncurses
              pkgs.python313
            ];

            microvm = {
              forwardPorts = [
                {
                  from = "host";
                  host.port = 2057;
                  guest.port = 22;
                }
              ];
              hypervisor = "qemu";
              interfaces = [
                {
                  type = "tap";
                  id = "vm-miner";
                  mac = "02:00:00:00:57:${macOctet}";
                }
                {
                  type = "user";
                  id = "uservm-miner";
                  mac = macAddress;
                }
              ];
              mem = deviceLogic 45000 5120 22000 6144 7168;
              shares = [
                {
                  mountPoint = "/nix/.ro-store";
                  proto = "virtiofs";
                  source = "/nix/store";
                  tag = "read_only_nix_store";
                }
                {
                  mountPoint = "/var/lib/midnight-data";
                  proto = "virtiofs";
                  source = "/var/lib/midnight-data";
                  tag = "midnight_data";
                }
              ];
              vcpu = workers;
            };

            networking.firewall.allowedTCPPorts = [
              22
            ];

            services = {
              openssh = {
                enable = true;
                settings.PasswordAuthentication = false;
              };
            };

            system.stateVersion = "25.05";

            systemd = {
              network = {
                enable = true;
                networks."20-user" = {
                  matchConfig.MACAddress = macAddress;
                  networkConfig = {
                    DHCP = "yes";
                  };
                };
              };

              tmpfiles.rules = [
                "d /var/lib/midnight-data 0755 root root - -"
              ];

              services = {
                midnight-miner = {
                  after = [ "network-online.target" ];
                  description = "MidnightMiner - Cardano NIGHT token miner";
                  serviceConfig = {
                    Environment = [
                      "PATH=/run/current-system/sw/bin"
                      "TERM=xterm-256color"
                    ];
                    ExecStartPre = pkgs.writeShellScript "setup-miner" ''
                      # Create venv if not already present (persists on virtiofs mount)
                      if [ ! -d /var/lib/midnight-data/venv ]; then
                        ${pkgs.python313}/bin/python -m venv /var/lib/midnight-data/venv
                      fi

                      # Install/upgrade dependencies
                      /var/lib/midnight-data/venv/bin/pip install --upgrade pip
                      /var/lib/midnight-data/venv/bin/pip install requests pycardano cbor2 portalocker

                      # Clone repo if not already present
                      if [ ! -d /var/lib/midnight-data/MidnightMiner ]; then
                        cd /var/lib/midnight-data
                        ${pkgs.git}/bin/git clone https://github.com/djeanql/MidnightMiner.git
                      else
                        cd /var/lib/midnight-data/MidnightMiner
                        ${pkgs.git}/bin/git pull
                      fi
                    '';
                    ExecStart = pkgs.writeShellScript "run-miner" ''
                      export PATH=/run/current-system/sw/bin:$PATH
                      cd /var/lib/midnight-data/MidnightMiner
                      /var/lib/midnight-data/venv/bin/python miner.py --workers ${toString workers} --no-donation
                    '';
                    Restart = "always";
                    RestartSec = 10;
                  };
                  wants = [ "network-online.target" ];
                  wantedBy = [ "multi-user.target" ];
                };
              };
            };

            time.timeZone = "America/Winnipeg";

            users.users.root.openssh.authorizedKeys.keys = flake.config.people.users.${user0}.sshKeys;

          };
      };
    };
  };
  systemd.tmpfiles.rules = [
    "d /var/lib/midnight-data 0751 microvm wheel - -"
  ];
}
