Everything the product can tell a human about.
THREAD_LABELED is the only kind that carries a label. The rest
are workspace events with no label dimension, which is why the rule table
constrains label_id to exactly this kind.
The three credit kinds are stored separately even though the settings UI
offers one "credit alerts" switch: they crossed three different thresholds
and keeping them apart means splitting the switch later is a UI change, not
a migration.
The affiliate_* kinds are program mail to the enrolled affiliate's
contact address, not workspace-member fan-out: they carry no preference
switch, and the settings grid on the dashboard skips them by prefix.
SEARCH_MATCHES_WAITING: a scheduled lead search no longer buys
its rows, so when it fires and finds new matches the buy waits on a person
as a proposal, and this is how they hear about it.