How does that serialization/deserialization work?
Before we do all of the diff recording we start with a full snapshot of the webpage which captures every dom node. And it does a lot more than just your plain old `document.documentElement.outerHTML`, it captures contents of style sheets, images, scroll positions etc.. We use those full snapshots as keyframes to base our diffs off of. This works in a similar way to how video files work, but the snapshots don't contain any pixel data, just DOM information.
On replay we go ahead and rebuild the DOM as close to how it was recorded and we then animate the changes as they occurred.
Let me know if you'd like some more detail on a specific part of any of this.
There is also a video which explains some of this which might be helpful: https://youtu.be/cWxpp9HwLYw?t=1163
Videos would take too much space plus API is limited as I can see on MDN