{ lib, inputs, self, }: let registryAssembly = import ./registry.nix { inherit lib self; }; modules = import ./modules.nix { inherit lib; }; dotfilesLib = import ../lib { inherit lib; }; moduleFiles = modules.mkModules (self + "/modules"); guestFiles = modules.mkModules (self + "/guests"); collectedRegistry = registryAssembly.collect { hosts = self.nixosConfigurations; }; specialArgs = { inherit dotfiles inputs self ; registry = collectedRegistry; }; dotfiles = { inherit (guests) mkGuest; lib = dotfilesLib; }; guests = import ./guests.nix { inherit inputs lib self specialArgs moduleFiles registryAssembly dotfilesLib ; }; hosts = import ./hosts.nix { inherit inputs lib self specialArgs moduleFiles guestFiles registryAssembly ; }; in { inherit (hosts) mkHosts; }