Only up-votes on posts and comments are federated. Is there a technical reason why (limitation of ActivityPub?) or is it a social reason?
My reading of the Activity Streams spec is that while 'Like' (used for upvotes?) is a standard Activity that all clients understand, there is no 'Unlike'. But we can define new types of Activity:
The Activity Vocabulary defines a small number of Activity types that are common to many social Web applications. This specification stops short of defining semantically specific properties for most of these activities. External vocabularies can be used to express additional detail not covered by the Activity Vocabulary.
... implementations are free to introduce new types of Activites beyond those defined by the Activity Vocabulary
The issue is that ActivityPub, the protocol used for federation, wasn't designed with reddit-likes in mind. Upvotes are repurposed Mastodon "favourite"s, and boosts are Mastodon's equivalent of "retweets", but downvotes are brand new with the appearance of lemmy/kbin. One could extend ActivityPub to have a new thing for downvotes, but non-lemmy/kbin instances like mastodon servers wouldn't have any use for them.
Also, a not insignificant number of lemmy instances don't have downvotes as a deliberate choice.
Is ActivityPub not open to arbitrary extensions? I thought it was a very loose spec and the only concrete spec is an agreement between instance types. But i've not looked at the protocol closely yet, despite developing around it hah.
Yes it can be extended but apps would need to be upgraded to make use of the new data flowing around. If they see an activity type they don't understand they'll just ignore it.
Expecting every different platform to all move in lockstep is not feasible so a situation where some support downvotes but some do not is going to have to be part of the process. Even if it was just kbin to kbin initially, that'd still be an improvement.