{ lib, _class, config, ... }: let inherit (lib.attrsets) mergeAttrsList optionalAttrs; inherit (lib.options) mkEnableOption; cfg = config.garden.system.tools; in { options.garden.system.tools = { enable = mkEnableOption "tools" // { default = true; }; minimal = mkEnableOption "limit to minimal system tooling" // { default = true; }; }; config = mergeAttrsList [ (optionalAttrs (_class == "nixos") { system = { disableInstallerTools = cfg.minimal; tools = { nixos-version.enable = true; nixos-rebuild.enable = true; }; }; }) (optionalAttrs (_class == "darwin") { system.tools = { enable = !cfg.minimal; darwin-version.enable = true; darwin-rebuild.enable = true; }; }) ]; }