1/
This is how a Fediverse Labeler could work.
In particular, This is how a Fediverse Labeler could be represented as ActivityPub / ActivityStreams / JSON-LD data.
2/
A Fediverse Labeler would output a separate ActivityStreams "Profile" Object for each thing it wants to label.
Each of these should be at a separate URL.
3/
The "describes" field would point to the thing being labelled.
The "attributedTo" field would point to the person or machine that create these label.
And the "attachment" field would be a list of labels.
The (top level) "icon" field would be an icon that would be shown next to the label in the user-interface (UI).
4/
Note that even in this example, that there are different types of labels!
I have some examples of text labels.
But I also have some examples of Icon labels.
(Other types of labels could exist, too.)
@reiver you would probably want to always have a textual representation of a Label, however, perhaps a flag to say “use the image attachment associated with this label instead of the textual version" — it's important that we can correctly do alt text on image-based labels, if that's something that's desired.
I think we'd most likely be allowing a small svg/png icon for the label, not an image in its entirety.
I think having the option of adding alt-text is a good idea.
But I don't think it will always be useful. It depends what the UI does with the label.
For example, a type:"Icon" label might be used as an alternative profile-image in the UI.
@reiver @thisismissem I think you should always have a text name for a label, even if it's an emoji.
What if the user doesn't fill in a required text name?
It would just be an empty string.
(I can imagine many many people not bothering to fill in a text label for image-labels.)
@reiver @thisismissem you can't label something if it's blank,
So if someone makes an image label, the software should refuse to make it if it's blank
This is the same as a poll, the software refuses to let you have an empty zero length option
@reiver @thisismissem related, I'm doing a silly thing with labels in @bivouacwiki called decals https://bivouac.wiki/6decal.html