@minrk question on the contents API: should it be legal for a contents manager to delete its own root directory? The current test suite seems to very explicitly avoid that operation, but I think it "works" with the current implementation

All right, I'm going to make one more change to the PR. Instead of the serialization metadata being sent with a sync message, you'll have to declare it up front in a js class, similar to the to_json and from_json metadata for a traitlet on the python side.