Here is a idea to show the snapshots: https://cloudup.com/cEQr4UCrLGC
'This VM' represent the the current state of the VM, each snapshot will have two timestamps:
'timestamp' -> the time it was created
'activation' -> time it was activated last, meaning the 'newest' active snapshot is the one currently in use.
And the following attributes:
'parent' -> the uuid of the parent (for incremental shapshots only)
'local' -> true/false (if the snapshot is on the hypervisor)
'local_size' -> the size the snapshot takes on the hypervisor' (only relevant for local=true)
'comment' -> a comment given during create time
Incremental snapshots can be created from any local snapshot. full backups can always be created.
Snapshots when created can get a 'delete':true/false argument it behaves like this:
When it is a full backup the local backup will be deleted so on incremental snapshots can be taken any more. When it is a incremental backup the delete is reflecting the parent, so the parent will be deleted but the new snapshot will be left in place.