Generalize plan snapshot

Im not 100% happy with `SnapshotPlannerSpec` so any suggestions to make it better would be much appreciated.
This looks pretty unusual, it may be ok, but it is normally a bit of a red flag to have so much of this as test code. There isn't some production code that have these operations somewhere else already?