Everyone I ever talked to told me “well yes we have to implement our own version of ActivityPub because AP is under-defined”. In most cases it is defined what AP does, but not how. Therefore individual programers go in and figure out on their own how a certain thing they are building for their platform should be structured in AP.
Now, every project could simply go “I will copy the way Pixelfed implements it”. But why should PF have that priviledge?
From the RFC that is linked above:
“Plugins will make Lemmy more flexible, and allow implementing features which are too niche for merging into Lemmy core. It will allow Lemmy to focus on core features, while allowing outside developers to contribute new features without using Rust.”