Any tips on creating a bi-directional "lens" between documents?

I’m curious if anyone has tried to sync two documents with different representations of the same data.

For example, I have a 3D world with position, rotation, etc. for objects. I also have a TODO list with description and done/not done state.

I’d like to make it so that adding an item to the TODO list populates the 3D world with an object–and vice versa, so that if the object’s name is changed, the TODO list item’s description changes.

I suppose it would be the basis for just about any API endpoint that “edits” a Yjs document. You could have one-way sync (e.g. a weather API that modifies the 3D world document to show weather images in the background); or, you could have two-way sync like the TODO list example.

Has anyone tried something like this? Any tips, tricks, or battle stories?