@didek @travisr That's fair! But that's just the initial phase. If everyone wants to interoperate, that means m×n bridges.
Then someone tries to systematically enable interoperability and writes a shared vocabulary for the bridges, and then someone else will go "screw it, I'll just implement the shared vocabulary directly" and that's how a protocol pidgin turns into a protocol creole. Arguably that's what happened with e.g. TCP/IP.
In the case of Matrix they tried to leapfrog this whole process and make themselves the bridge protocol.