While I don't want to get into #ATProto until some questions on governance are answered (and I'd rather something like AP), there is a _lot_ to like here and a lot of things I think we'd be _extremely_ foolish not to use as concepts as we look to the future of #ActivityPub.
Going into some of the specific things I like a lot here that are simply not possible* in AP today…
(* yes yes it is possible to conceive of how to do it in AP in a completely non-interoperable way, you're very smart)
1/
Code generation is really a missed chance for the Fediverse. I commented somewhere that verified credentials are simpler than HTTP signatures, as one doesn't need to write any parsers or serializers. One can just use the built-in ones.
One should apply the same perspective to the objects being exchanged: Can I design my protocol in a way that people don't have to write any custom parsers?
That people don't want to write code seems such an obvious insight.
Just to give an example. @hrefna just liked and shared this post.
The Like activity contains the keys @context, actor, id, object, type
. The Announce activity contains @context, actor, cc, id, object, published, to, type
.
While I can somewhat understand cc
being different, as one might not want to send the Like activity to one's followers. The rest make little sense to me. They create just another hurdle if one wants to implement ActivityPub.
It would be easy to finger point at Mastodon away from ActivityPub here. I think that trying to keep this stuff uniform (and thus easy to implement) is a task of the protocol and not the individual implementers.
@hrefna w/r/t governance, the current plan is to bring the core protocol to the IETF this year. they won't necessarily take it (would probably be a WG-level effort), but timing is tricky and I don't think we've waited too long so far.
the Lexicon namespacing system provides flexible governance over application Lexicons; that should be flexible to many governance patterns.
how com.atproto.* will work is vague. and there are some details around extensions of 3rd party lexicons to dig in to.