ちょっと技術的な話。
WebUIは基本的にクライアントアプリです。
起動時にMastodon本体のWebサーバからJavaScriptのクライアントアプリのコードといくつかの初期値を受け取って、実行を開始します。
そのあとは、APIをコールして、サーバと通信しながら動作します。
ここまでくれば、スマートフォンやPC用のサードパーティ製のクライアントアプリと条件は一緒です。
アプリは、そのままではサーバ上の様々な情報を持っていないし、仮に持っていても古くなっている可能性があるので、必要に応じてAPIで取得します。
絵文字リアクションは、一つの投稿に、非常にたくさんのアカウントからのリアクションがぶら下がっている可能性があります。また、リアルタイムに増減していきます。
通常は、投稿を受け取る際に一緒に関連するアカウントの情報をすべて受け取るように設計されているのですが、絵文字リアクションの場合は、未対応など利用しない場合にはあまりにも多すぎるし、同じ情報が何度も送られてくることになるため、アカウント情報を含めてしまうと通信量が膨大になります。そこで、IDのみを添えてあります。
絵文字リアクションに対応していないクライアントは、最小限のデータを受け取って、これを無視して動作することができます。
絵文字リアクションに対応したクライアントは、このIDの情報を元に、既に取得済みならそれを使い、未取得の場合はAPIをコールして取得するようにしています。
なお、標準ではアカウント情報をまとめて取得する機能がないので、FedibirdではAPIを拡張して、複数のIDを指定してまとめて取得できるようにしてあります。