VM templating
One of the most common use cases for VMs is creating VM templates. So, let's say that we need to create a VM that is going to be used as a template. We use the term template here literally, in the same manner in which we can use templates for Word, Excel, PowerPoint, and so on, as VM templates exist for the very same reason—to have a familiar working environment preconfigured for us so that we don't need to start from scratch. In the case of VM templates, we're talking about not installing a VM guest operating system from scratch, which is a huge time-saver. Imagine getting a task to deploy 500 VMs for some kind of testing environment to test how something works when scaled out. You'd lose weeks doing that from scratch, even allowing for the fact that you can do installations in parallel.
VMs need to be looked at as objects, and they have certain properties or attributes. From the outside perspective (meaning, from the perspective of libvirt...