that’s one way to signal protocols, yes. either we can use types or we can use properties on the actor/inbox/outbox…
Negotiating protocols between actors or clients is related, the general gist of which is to declare profiles or constraints on what any actor (or their inbox or outbox) might receive or produce, and how to interpret certain payloads.
prior art is to declare an LDN inbox
is constrainedBy
some constraints profile but there isn’t much guidance on what this should look like. you could theoretically apply this to actors instead of just inboxes…
something like this might work?
GET /c/example HTTP/1.1
Host: lemmy.example
Link: <https://w3id.org/fep/1b12>; rel="http://www.w3.org/ns/ldp#constrainedBy"
HTTP/1.1 200 OK
Content-Type: application/activity+json
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://lemmy.example/c/example",
"type": "Group",
"inbox": {
"id": "https://lemmy.example/c/example/inbox",
"type": "OrderedCollection"
"http://www.w3.org/ns/ldp#constrainedBy": "https://w3id.org/fep/1b12"
}
"http://www.w3.org/ns/ldp#constrainedBy": "https://w3id.org/fep/1b12"
}
note that this isn’t really specified anywhere, this is just spitballing for now. Negotiating protocols between actors or clients is where further discussion should be.