{ nixosUsers ? {}, nixosGroups ? {}, nixosModules, hmModules ? { default = {}; }, ...}@flake: { nixpkgs, ... }@inputs: { host, ... }@imports: let host' = name: snippets: let system = { namespace?"fbs42" }: nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs flake namespace; }; modules = builtins.concatLists (map (base: builtins.attrValues (flake.lib.scan { base = "${base}/host/${name}"; })) flake.lib.schema.base) ++ [ { config.networking.hostName = name; } ] ++ [ nixosModules.default ] ++ [ inputs.home-manager.nixosModules.default ] ++ [ { config.home-manager.sharedModules = [ hmModules.default ]; } ] ++ [ { config.home-manager.extraSpecialArgs = { inherit flake namespace; }; } ] ++ builtins.attrValues nixosUsers ++ builtins.attrValues nixosGroups ; }; cfg = assert builtins.length snippets == 1; builtins.head snippets; in system cfg; in builtins.mapAttrs host' host