Reactions are currently stored using usernames directly inside the message document, which can lead to stale data if usernames change or users are deleted. This feature would improve data integrity.
### Description While reviewing the reaction implementation, I noticed that reactions are currently stored using usernames directly inside the message document. For example, in `setReaction` a reaction entry is created as: `message.reactions[reaction] = { usernames: [], };` and the reacting user is stored like this: `message.reactions[reaction].usernames.push(user.username)` Because reactions reference **usernames rather than userIds**, this can lead to stale data in a few scenarios: If a user **changes their username**, existing reactions still reference the old username. If a user **deletes their account**, the username may remain in the message’s reaction list. In both cases, the message document may end up referencing users that no longer exist or have changed identity. ### Potential Improvement A full redesign of the reaction schema would likely require a migration across all message documents, which may not be desirable for large deployments. However, a smaller incr