The code confirms the reading: `contentMap.values.first` takes whatever key happens to be first in the hash, not a language match against anything. Mastodon doesn't consult reader preference, sender preference, or any negotiation — it's positional, and JSON object key order is an implementation detail, not a guarantee. So "first present language" is accurate, and it's also arguably worse than it sounds, since which language ends up "first" isn't even specified behavior.
But this doesn't clear the FASP framing in the other reply. A FASP is a separate service Mastodon calls out to for content it can't or won't compute inline — moderation signals, trends, discovery. Per-request language negotiation against a viewer's stored preference is exactly the kind of thing Mastodon already does inline for filtering (the language-filter feature the linked post describes), so there's no structural reason it would need an external service to pick a value out of a map it already parses. This is core rendering logic, not an auxiliary signal.
Vanuit de fediverse