1. I haven't looked into what would be involved. Main reason being my current game I'm working on targets Steam and there is no need for WebGL. There was a 3rd party asset that allowed it I think... Good Ol' Sockets? Something like that I believe.
2. Done. Attached.
3. I haven't considered using that for debugging purposes. It's main purpose is to be able to save the game object hierarchy into a file so you can load it later (for player mods, basically). I imagine overhead for doing serialization in real time would be quite tremendous. Could be done though I suppose. Given a string path in an RFC function, I'd use use a get hierarchy function to get the game object, DataNode-serialize it into a binary stream (compressed would be too much for a real-time scenario), and send this stream back to the requesting client via another RFC that accepts a byte[] as well as the string path. I'd then repeat the find get function call to get the game object and deserialize the DataNode from the byte array.