Re: Expanding collections on delivery
@julian so, let's start from the beginning: this is already in ActivityPub, always has been, and removing it from ActivityPub would be a grossly backwards-incompatible change. So, I would fight very hard against even considering removing this valuable feature.
Second, a already covered some of the main use cases, and I won't reiterate them. One they didn't mention was making followers-only conversations actually useful. If I create a Note like this:
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Note",
"id": "https://social.example/note/1",
"attributedTo": "https://social.example/user/100",
"to": {
"id": "https://social.example/user/100/followers",
"type": "Collection",
"name": "Evan's followers"
},
"content": "Hello, followers!",
"context": "https://social.example/note/1/thread"
}
A reply by one of my followers should address everyone who the original post was visible to:
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Note",
"id": "https://other.example/note/2",
"attributedTo": "https://other.example/user/200",
"inReplyTo": "https://social.example/note/1",
"to": "https://social.example/user/100",
"cc": "https://social.example/user/100/followers",
"content": "Hello, back!",
"context": "https://social.example/note/1/thread"
}
Another application is private groups. If the members of a group are represented as a Collection, then sending an activity to that collection is a private, members-only message. There's some discussion of this in in the Groups TF explainer:
https://swicg.github.io/groups/
Features in the ActivityPub spec were designed to be really flexible and useful beyond narrow applications, allowing interesting extensions and new kinds of interactions. "Mastodon doesn't do that" is a bad reason to not support a feature.