user_badgeのWebhookペイロードにユーザー名を含めることはできますか?

同意します!これが最良の解決策と思われます。username と granted_by_username を追加し、user_id と granted_by_id を非推奨とすることで、破壊的変更を伴わない移行期間を設けることができるでしょう。

現在、バッジがシステムによって変更された場合(つまり自動的に変更された場合)、Webhookは granted_by_id として -1 を返します。granted_by_username における同等の値は何でしょうか?

  • ""(空文字列)
  • "<system>"(ユーザー名として使用できないマジックバリュー)
  • null
  • 何もない – つまり、システム起因のイベントの場合、ペイロードから granted_by_username を省略する

null または「何もない」が最も理にかなっていると考えます。