{ hostType, lib, ... }: { config = lib.mkMerge [ # Common configuration { } # Server specific configuration (lib.mkIf hostType.isServer { }) # Workstation specific configuration (lib.mkIf hostType.isWorkstation { environment.persistence.main = { persistentStoragePath = "/persistent"; files = [ "/etc/machine-id" "/etc/ssh/ssh_host_ed25519_key" "/etc/ssh/ssh_host_ed25519_key.pub" "/etc/ssh/ssh_host_rsa_key" "/etc/ssh/ssh_host_rsa_key.pub" ]; directories = [ "/etc/NetworkManager/system-connections" "/var/lib/bluetooth" "/var/lib/flatpak" "/var/lib/nixos" "/var/lib/systemd/coredump" "/var/lib/systemd/timers" "/var/lib/tailscale" "/var/log" ]; }; }) ]; }