Support snap channels
Snaps have a concept of channels. Essentially channels allow you to switch between stable and unstable versions of the application you have installed.
For example all snaps are installed from the "latest/stable" channel. You might want to test the next version of that snap in the "latest/candidate" channel or run an older version in the "2.0/stable" channel.
You can see the UI in the snapcraft forum.
To implement this in GNOME Software I had to add a channel concept to
GsApp and a new plugin function
gs_plugin_app_switch_channel. If a plugin adds channels to a
GsApp the details page will show a channel button in the details section beside the version label.