Расширение блоков сообщений в чате

Всем привет,

Я хочу разработать плагин для отображения уведомлений об активности GitLab/GitHub в Discourse Chat, или, шире, любых регулярных событий.

Для более насыщенного вывода я хочу отображать активность в виде карточки, и я заметил, что у сообщений чата есть поле JSON blocks, которое, похоже, подходит для этой цели. К сожалению, на данный момент типы блоков, похоже, не расширяемы без патчинга внутренних компонентов чата: схема, сериализаторы и фронтенд-рендерер все перечисляют поддерживаемые типы блоков/элементов.

Возможно ли сделать blocks точкой расширения для плагинов, или же плагинам следует рассматривать его как внутренний детальный аспект реализации?

Конкретно, был бы Discourse открыт к:

  1. общему типу блока события/карточки в ядре, или
  2. API плагина в стиле registerChatBlockType?

Я могу вернуться к рендерингу Markdown и декорированию обработанных сообщений чата на стороне клиента, но структурированные блоки кажутся более чистой моделью, если это направление считается приемлемым.

В данный момент это не является приоритетом в нашем плане развития, но не могли бы вы описать, какой именно API, по вашему мнению, вам потребуется?

В основном мне нужен API, который позволил бы плагину:

  1. Зарегистрировать имя типа блока чат-сообщения, принадлежащего этому плагину
  2. Опционально предоставить валидатор JSON-схемы для этого блока
  3. Зарегистрировать рендерер для этого блока

Всё это можно реализовать через патчи, но если будет официальный API, стабильность и безопасность будут выше. Мой случай использования — уведомления о действиях в Forge, но я думаю, что существуют и другие приложения (например, RSS как альтернатива плагину RSS, ленты социальных сетей и т.д.).