Currently, we have two models that are watchable (Ticket and Topic). Who watches what is stored in TicketWatcher/TopicWatcher models.
For easier extending of notifications to other objects (like Grants or even whole objects) having single Watcher model (with "type" attribute) would be useful, so making an object watchable wouldn't mean to add new database tables.
This should include a data migration to migrate data from TicketWatcher and TopicWatcher to the new model.