The software is the central authority. As far as I have been able to tell there is no decent specification, like an RFC, that you could use to build other client implementations from so you are all at the mercy of the bugs in a single piece of software.