{ self, nixpkgs-unstable, ... }@inputs:
let
  mkTree = import ./tree.nix { inherit (nixpkgs-unstable) lib; };
  tree = (import ./treeConfig.nix { inherit mkTree; }).tree;

  pkgs-x86_64-linux = nixpkgs-unstable.legacyPackages.x86_64-linux;
  hosts = import ./hosts ({ inherit tree; } // inputs);
in {
  nixosConfigurations = hosts.nixosConfigurations;
  darwinConfigurations = hosts.darwinConfigurations;

  deploy.nodes = (import ./deployNodes.nix {
    nixosConfigurations = self.nixosConfigurations;
    deploy-rs = inputs.deploy-rs;
  });

  devShell."x86_64-linux" = pkgs-x86_64-linux.mkShell {
    packages = with pkgs-x86_64-linux; [
      git
      nano
      bat
      exa
      #inputs.deploy-rs.packages."x86_64-linux".deploy-rs
      (pkgs-x86_64-linux.callPackage ./extras/mk-enc-usb.nix { })
      (pkgs-x86_64-linux.callPackage ./extras/mk-lappy-ssd.nix { })
    ];
  };
}