How to fetch a snap source (snapcraft.yaml)?

I understand there may not be snapcraft.yaml since snaps are binary packages, yet most are open-source and built with snapcraft. Is there even a way to publish the source with a snap? Or to get the source of a snap?

It depends. If the snap is built in launchpad (or build.snapcraft.io [which uses launchpad]) then the snapcraft.yaml and manifest.yaml. The manifest lists all the packages and bundled and links to the source. When built in launchpad, there is an option to also create a source package.