
PieFed federate reactions as a normal Like except with an additional field: content which contains either a unicode emoji letter or a string with : on the start and end. e.g. :fire:.
The reactions that are just a single letter are easy, where it gets difficult is each instance can define their own emoji and use a token to refer to it and an image needs to be served for that emoji. Lemmy and PieFed have an api endpoint, /api/v3/site which lists all the emoji and the urls for each token. PieFed requests that url on every instance once per day and maintains a list of all known emoji that way.
It is a bit unfortunate to have to rely on a non-ActivityPub API to discover the urls to new emoji – if an additional field was added to the Like activity containing the url of all :whatever: style emoji then this could be avoided. Something for another time!
