You can use libvirt. It's not exactly declarative but you can automate it.
No, not by default. There's other people's work that lets you do this, but you're likely best off doing it yourself by generating qemu config files and systemd services for them through Nix.
Maybe this can be of use for you, it's not declarative but it is in Nix, it shouldn't be too hard for someone to make it declarative: https://github.com/matejc/win11
Something like Ansible+Proxmox will do what you want. https://vectops.com/2020/01/provision-proxmox-vms-with-ansible-quick-and-easy/
I'm looking to do this with nix config, would rather not mix and match if at all possible
Maybe Vagrant might be helpful.
Can vagrant do windows well? Was under the impression it wasn't really meant for it and not sure how licensing would work for the windows instance
Currently using the key built into my machine, if there's a way to automatically pull that and shove it into the VM that would be perfect
Never tried myself. There seems to be some stuff on https://app.vagrantup.com/boxes/search?order=desc&page=1&provider=&q=windows&sort=updated&utf8=%E2%9C%93. Do not know if this will be helpful or fits your needs.
Might work if I build my own image for it, don't really want to use virtualbox it's never really performed well for me
Anyone tried QuickEmu? I consider it semi declarative.
There's this "beauty": https://git.m-labs.hk/M-Labs/wfvm
That actually seems to be exactly what I wanted