all snaps are using a base and run on top of this base at runtime … all snaps have to be fully self contained too (i.e. shipping everything they need a runtime bundled with the snap or using some content snap to provide the dependencies) …
the only difference classic snaps have is that they can not use interfaces but instead have unrestricted access to the system …
if you consider making a classic snap, please check first if it falls under oe of the supported categories at all on: