Partially embedded objects

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.