I don’t know the nitty-gritty details, and have poked some people who do to have a look at your question, but essentially: you define a model that lists what snaps your device should have, create an image with that. The snaps are seeded onto the image, snapd brings it up on first boot, everything working. You can also arrange so that the device comes with networking preconfigured, and with ssh disabled.