I’ve prepared a simple Python example that uses GObject Introspection to authenticate with snapd, install and remove a snap. This example only covers very basic use cases, and does not securely store the snapd authentication credentials at rest (which you absolutely should do) but hopefully the progress_snap_cb() function will be of use to @ikey and his Software Centre for Solus.
As a note to other API consumers, once polkit support lands in stable snapd in distributions then the login step could be skipped and PolkicyKit would be used to authenticate operations, however private snaps will be unavailable without first logging in…
Yes, I should have explained that this example is based on what we implemented in Software Boutique where install and remove operations are started in their own thread.