Matrix frustrations
Probably my biggest frustration with the Matrix API design is that instead of specifying a couple of generalized communication primitives, it always reinvents stuff like pagination and transactions 3 times in different incompatible ways for different endpoints, and now every endpoint needs a subtly different implementation with its own bugs instead of one implementation for all of it
re: Matrix frustrations
Frustratingly, this is also the problem that is the least possible to fix without breaking backwards compatibility