Можно ли добавить имена пользователей в webhook-запрос user_badge?

Согласен! Это кажется лучшим решением. Добавление username и granted_by_username и объявление user_id и granted_by_id устаревшими могли бы обеспечить период плавного перехода без нарушений совместимости.

В настоящее время, если значок изменяется системой (т. е. автоматически), вебхук возвращает granted_by_id со значением -1. Что будет эквивалентом для granted_by_username?

  • "" (пустая строка)
  • "<system>" (магическое значение, которое не может быть именем пользователя)
  • null
  • Ничего – т. е. опустить granted_by_username из полезной нагрузки, если это было системное событие

Я бы предположил, что null или отсутствие поля имели бы наибольший смысл.