It is. But our API is missing key components like guest
enumeration. So the fundamental topic here is, do we introduce these
missing components to allow people to build directly to our interface
or do we make use of the functionality that libvirt already provides
if they can plumb our API directly to users.

Guest enumeration is another API.

Over the kvm call I suggested a qemu concentrator that would keep
track of all running qemus, and would hand out monitor connections to
users. It can do the enumeration (likely using qmp). Libvirt could
talk to that, like it does with other hypervisors.