What issues do you see in git's data model to abandon it as wire format for syncing?
It shouldn't be hard to build a bijective mapping between a file system and AST.
The cli really isn't the greatest either way. But there's lots of infrastructure to make the sharing work reasonably well.