Ah, okay. For what itās worth, Misskeyās PR is using code primarily like so:
"tag": [
{
"type": "Link",
"href": "URI",
"name": "RE: URI",
"rel": "https://misskey-hub.net/ns#_misskey_quote",
}
]
With the current state of the PR, they also attach mediaType
like so:
"tag": [
{
"type": "Link",
"href": "URI",
"name": "RE: URI",
"rel": "https://misskey-hub.net/ns#_misskey_quote",
"mediaType": "application/activity+json"
}
]
With the current state of the FEP proposal, it should be like so:
"tag": [
{
"type": "Link",
"href": "URI",
"name": "RE: URI",
"rel": "https://misskey-hub.net/ns#_misskey_quote",
"mediaType": "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\""
}
]
With the alternate FEP proposal, it should be like so:
"tag": [
{
"type": "Link",
"href": "URI",
"name": "RE: URI",
"rel": ["https://www.w3.org/ns/activitystreams", "https://misskey-hub.net/ns#_misskey_quote"]
}
]
For the purposes of parsing a Misskey quote, it should be enough to check for the _misskey_quote URI in the rel array. That covers the purpose of the link:
if "https://misskey-hub.net/ns#_misskey_quote" in rel:
# treat it like a misskey quote
What is a bit of an open question, or rather, what is the point of discussion right now, is how to best signal that a certain media type should be explicitly included in the Accept header. Itās essentially a consequence of HTTP content negotiation.
Iām unsure if rel
is appropriate; I initially proposed it to remove the ambiguity of multiple potential media types. But I later realized that multiple media types is less of an issue ā either you understand the type or you donāt.
Given that the purpose of the FEP is purely to signal that a Linkās href may be fetched as an ActivityPub object, it later made sense to me to go back to mediaType
rather than rel
, and keeping rel
focused on the actual relation between the link and the current resource. So future extensions would use rel
to signal their purpose similarly to _misskey_quote, and the FEP would remain focused on signaling how to fetch the Object given only the Link.
In other words, what I realized is that the FEPās text should be enough guidance to tell implementations that if they see a mediaType
for ActivityPub, they should use the Accept header as they are required to do so under the main ActivityPub spec. There is no inherent purpose in object links, and their presence in tag
basically only gives metadata similar to subtypes like Mention
or Hashtag
.
I think some language in the FEP should be added to make this distinction clear, and to encourage purposeful object links to attach a rel-value that signals their purpose.