- mkHost now takes a role list, roles resolve to ./roles/<name>.nix - roles/core.nix = shared baseline (modules/) - roles/k3s-server.nix = core + k3s (goyplex-vm) - roles/hermes.nix = core + hermes (hermes-vm) - host configuration.nix trimmed to hardware + boot + stateVersion - optional hosts/<name>/custom.nix loads last for per-host overrides - new hosts: one flake line + hosts/<name>/ dir