{
  imports = [
    ./estuary
    ./shill
    ./whale2
    ./git
  ];

  nixos.systems.colony.configuration = { lib, pkgs, config, systems, ... }:
  let
    inherit (lib) mkIf mkMerge optionals;
    inherit (lib.my) vm;

    installerDisk = {
      name = "installer";
      backend = {
        driver = "file";
        #filename = "${systems.installer.configuration.config.my.buildAs.iso}/iso/nixos-installer-devplayer0.iso";
        filename = "/persist/home/dev/nixos-installer-devplayer0-b4d0d9a.iso";
        #filename = "/persist/home/dev/debian-12.1.0-amd64-netinst.iso";
        # filename = "/persist/home/dev/ubuntu-22.04.3-live-server-amd64.iso";
        read-only = "on";
      };
      format.driver = "raw";
      frontend = "ide-cd";
      frontendOpts = {
        bootindex = 1;
      };
    };
  in
  {
    systemd = {
      network = {
        links = {
          #"10-wan10g" = {
          #  matchConfig.Path = "pci-0000:2d:00.0";
          #  linkConfig.Name = "wan10g";
          #};
        };
        netdevs = {
          #"25-vm-wan10g" = {
          #  netdevConfig = {
          #    Name = "vm-wan10g";
          #    Kind = "macvtap";
          #  };
          #  # TODO: Upstream this missing section
          #  extraConfig = ''
          #    [MACVTAP]
          #    Mode=passthru
          #  '';
          #};
        };
        networks = {
          #"75-wan10g" = {
          #  matchConfig.Name = "wan10g";
          #  networkConfig.MACVTAP = "vm-wan10g";
          #};
          #"75-vm-wan10g" = {
          #  matchConfig.Name = "vm-wan10g";
          #  linkConfig.RequiredForOnline = "no";
          #};
        };
      };

      services = {
        #"vm@estuary" =
        #let
        #  vtapUnit = "sys-subsystem-net-devices-vm\\x2dwan10g.device";
        #in
        #{
        #  requires = [ vtapUnit ];
        #  after = [ vtapUnit ];
        #};
      };
    };

    my = {
      vms = {
        instances = {
          estuary = {
            uuid = "27796a09-c013-4031-9595-44791d6126b9";
            cpu = "host,topoext";
            smp = {
              cpus = 2;
              threads = 2;
            };
            memory = 3072;
            networks = {
              # Mellanox ConnectX-2 hackery
              #wan = {
              #  ifname = "vm-wan10g";
              #  bridge = null;
              #  tapFD = 100;
              #  # Real hardware MAC
              #  mac = "00:02:c9:56:24:6e";
              #  waitOnline = false;
              #};
              base = {
                waitOnline = "carrier";
                mac = "52:54:00:15:1a:53";
              };
            };
            drives = [ ] ++ (optionals (!config.my.build.isDevVM) [
              (mkMerge [ (vm.disk "estuary" "esp") { frontendOpts.bootindex = 0; } ])
              (vm.disk "estuary" "nix")
              (vm.disk "estuary" "persist")
            ]);
            hostDevices = {
              net-wan0 = {
                index = 0;
                hostBDF = if config.my.build.isDevVM then "00:02.0" else "27:00.0";
              };
            };
          };

          shill = {
            uuid = "fc02d8c8-6f60-4b69-838a-e7aed6ee7617";
            cpu = "host,topoext";
            smp = {
              cpus = 12;
              threads = 2;
            };
            memory = 40960;
            networks.vms.mac = "52:54:00:27:3d:5c";
            cleanShutdown.timeout = 120;
            drives = [ ] ++ (optionals (!config.my.build.isDevVM) [
              (mkMerge [ (vm.disk "shill" "esp") { frontendOpts.bootindex = 0; } ])
              (vm.disk "shill" "nix")
              (vm.disk "shill" "persist")

              (vm.lvmDisk "media")
              (vm.lvmDisk "minio")
              (vm.lvmDisk "nix-atticd")
              (vm.lvmDisk "jam")
            ]);
          };

          whale2 = {
            uuid = "6d31b672-1f32-4e2b-a39f-78a5b5e949a0";
            cpu = "host,topoext";
            smp = {
              cpus = 8;
              threads = 2;
            };
            memory = 16384;
            networks.vms.mac = "52:54:00:d5:d9:c6";
            cleanShutdown.timeout = 120;
            drives = [ ] ++ (optionals (!config.my.build.isDevVM) [
              (mkMerge [ (vm.disk "whale2" "esp") { frontendOpts.bootindex = 0; } ])
              (vm.disk "whale2" "nix")
              (vm.disk "whale2" "persist")

              (vm.lvmDisk "oci")
            ]);
          };

          git = {
            uuid = "c0659fdc-3356-4717-a6a1-5f289ef03c4a";
            cpu = "host,topoext";
            smp = {
              cpus = 12;
              threads = 2;
            };
            memory = 40960;
            networks.vms.mac = "52:54:00:75:78:a8";
            cleanShutdown.timeout = 120;
            drives = [
              (mkMerge [ (vm.disk "git" "esp") { frontendOpts.bootindex = 0; } ])
              (vm.disk "git" "nix")
              (vm.disk "git" "persist")
              (vm.disk "git" "oci")

              (vm.lvmDisk "git")
              (vm.lvmDisk "gitea-actions-cache")
            ];
          };

          mail = {
            uuid = "fd95fe0f-c204-4dd5-b16f-2b808e14a43a";
            cpu = "host,topoext";
            smp = {
              cpus = 3;
              threads = 2;
            };
            memory = 6144;
            networks.public = {
              bridge = null;
              mac = "52:54:00:a8:d1:03";
            };
            cleanShutdown.timeout = 120;
            drives = [
              (mkMerge [ (vm.disk "mail" "root") { frontendOpts.bootindex = 0; } ])
              (vm.disk "mail" "data")
            ];
          };

          darts = {
            uuid = "ee3882a9-5616-4fcb-83d7-89eb41a84d28";
            cpu = "host,topoext";
            smp = {
              cpus = 4;
              threads = 2;
            };
            memory = 16384;
            networks.public = {
              bridge = null;
              mac = "52:54:00:a8:29:cd";
            };
            cleanShutdown.timeout = 120;
            drives = [
              (mkMerge [ (vm.disk "darts" "root") { frontendOpts.bootindex = 0; } ])
              (vm.lvmDisk' "media" "darts-media")
              (vm.lvmDisk' "ext" "darts-ext")
            ];
          };
        };
      };
    };
  };
}