It’s really easy to publish a “stub” collection and we do it all the time, for example when hiding your followers/following, you represent that as a collection still, but you just don’t include the items as a property. Some software like Pleroma even lets you lie and replace the totalItems number with 0. But removing the followers
property entirely is a bad idea, because now you can’t tell when something can be followed. Sure, you can have a canFollow
property, but there’s a reason ActivityPub didn’t do this – it’s a bad idea. You don’tneed to explicitly declare that you canFollow
, unless you want to do something like declaring who canFollow
, i.e. the actor canBeFollowedBy
certain other actors. It is “enough” to imply support for Follow activities as long there is a followers
collection present (even if it is private or empty).
This logic can and should be extended to the likes/shares/etc collections. If you don’t support receiving likes, don’t declare a likes collection. If you do, still declare it even if it’s private or empty. You can send a Like still anyways, but its side effects won’t get processed.
For EmojiReact support we have an opportunity to simplify things and just say “check for the presence of an emojiReactions
collection” or whatever. Not “check for a canEmojiReact
property that is set to true” or whatever.