alsoKnownAs has its existing use; it’s basically “These accounts are or were also me”. Perhaps the name is not ideal for the purpose, but that’s how it’s used
If I were to suggest a way of signalling “Alternative identities of the same account”, I would go for
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"xrd": "http://docs.oasis-open.org/ns/xri/xrd-1.0#",
"aliases": {
"@id": "xrd:Alias",
"@type": "@id",
"@container": "@list"
},
}
],
}
Which references the XRD definition of Alias, which is what Webfinger uses, so there’s already precedent for use in the fediverse-as-deployed.
For the use in ActivityPub, we can additionally specify that
- The set of {id, aliases} returned with an object SHOULD be the same as the set of {subject, aliases} returned by doing a WebFinger query for that same object
- This list is in preference order, and an implementation SHOULD use first listed alias that the implementation supports. Implementations MUST authenticate that the user is allowed to claim such an ID, e.g. by performing a WebFinger query for it or doing a HTTP HEAD request.
With regards to non-user@domain IDs, we’re getting a little off topic, but I always liked the OpenID Connect normalization rules which state that “foo.net” should be normalised to “https://foo.net/” for discovery purposes.