[diff algorithm]
server ↔ Socket.io → *changeset* → Client controller → *new contents* → Editor
\ / \ /
`← *changeset* ←´ `← *onchange:contents* ←´
or just