同意します!これが最良の解決策と思われます。username と granted_by_username を追加し、user_id と granted_by_id を非推奨とすることで、破壊的変更を伴わない移行期間を設けることができるでしょう。
現在、バッジがシステムによって変更された場合(つまり自動的に変更された場合)、Webhookは granted_by_id として -1 を返します。granted_by_username における同等の値は何でしょうか?
""(空文字列)"<system>"(ユーザー名として使用できないマジックバリュー)null- 何もない – つまり、システム起因のイベントの場合、ペイロードから
granted_by_usernameを省略する
null または「何もない」が最も理にかなっていると考えます。