WebDAV/CalDAV/CardDAV is the best way I found so far to get a fast headache
CalDAV is especially effective, with its tree of vCard components each having a list of properties, with XML requests and replies on top, and the intrisic complexity of time-related stuff.
Ah, and properties have a map of attributes, of course.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!