Ao conversar com nossa equipe de Segurança, eles ficaram curiosos sobre por que o userId está no JSON para as categorias e exatamente para que servem esses JSONs.
A principal preocupação deles é, por exemplo, se decidirmos deslistar um tópico por motivos de segurança (o que já fizemos antes), essa metadados poderia, de alguma forma, vazá-los?
Não tenho certeza se entendi a pergunta exatamente. Você poderia elaborar um pouco mais?
Usamos JSON para enviar todas as informações entre o servidor e o cliente no Discourse. Os IDs de usuário são incluídos regularmente e não são considerados secretos.
Deslistar um tópico o remove de todas as listas de tópicos. Isso é feito no lado do servidor, então sim, eles desaparecerão do payload JSON para contas sem privilégios.
Claro, se alguém já tiver o link do tópico, ainda poderá visualizar o tópico deslistado. Se você precisar proteger completamente um tópico, o ideal é convertê-lo em uma MP (mensagem privada).