This is starting to sound familiarI think if an XMPP server (in the relevant space) had implemented an API inspired by, say, Discord, the whole ecosystem would be seeing a lot more traction right now. The underlying tech is impossibly confusing and incredibly inconsistent, much like the ActivityPub situation (although AP is still way easier to work with than XMPP). Unlike AP, that inconsistency has made using it in most situations difficult enough that Matrix -- Matrix! -- is a better option (you can start by looking at encryption mechanisms! Ad-hoc commands support!). The saving grace for AP was probably Mastodon, which had real traction even before Twitter imploded, because it worked, it worked well, and it was easy to use from every angle. That's why there are so many good Mastodon clients and bots out there and like one "good" XMPP client that's only available on one platform.
@blake@shibao anyway shibs there was a decision to recommend that one should not include an id in cases where one doesn't have the original id. so misskey using local ids for remote follows is something they should not be doing. although i maintain that pleroma also should not check the inner ids if they dont matter anyway. but my real position is that we shouldnt be sending Reject Follow or Undo Accept Follow at all, we should send Remove from followers. maybe a bit late for that though...
@blake@shibao mastodon can handle it i think, but several other impls don't seem want to even consider it, which is a shame because that means you have to be aware of every single extension beforehand on the consuming side, plus on the producing side you end up having to maintain separate representations if you want to support both as2 and also generic ld. basically the issue is as2 supremacy
there's other issues with extensibility too, stuff even masto gets wrong, i'm making a list of it all
@trwnh@mastodon.social@shibao@misskey.bubbletea.dev My reply came from a conversation earlier where someone told me that the "type": ["Note", "extension:Type"] syntax, which is valid according to the spec, isn't widely supported. Sorry for the confusion.