I would not call the usages here as partial embedding, but as a reference. So I would suggest using something like:
{
"id": "https://social.example/announce",
"type": "Announce",
"object": {
"type": "Reference",
"referredId": "https://social.example/like",
"referredType": "Like"
}
}
This also allows me to claim that the rule
type => how to parse
remains true. With partial one would be back to having to distinguish two cases on how to parse everything (horrible).
Unfortunately, even with reference the above rule would still be wrong for stuff like Accept
and Undo
, but at least it’s enough to investigate the object and its referredType
. That’s why I still have a preference for Unfollow
and RejectReply
.