Generalize plan snapshot

Im not 100% happy with `SnapshotPlannerSpec` so any suggestions to make it better would be much appreciated.
I thought this was on ResultT (with parametric F), but I just double checked and it isn't so we should just add it there.