Support snapshot windows

Well no reason you didn't look at it Mark - I never created the PR. Apologies.

I don't think this is very clean, decoupling the emitter chunk from what is being mutated makes this extremely difficult to test and reason about. Why can't it just be a series of functions that are being called?