Best schema for a notification system like basecamp? (activities, read/unread, new, etc)

Is there a good schema for this?

This is my first idea:

{
    sender: Object, // user object
    receiver: [ String ] //array of user _ids
    message: String, // any description of the notification message 
    read_by: [{ readerId: String, read_at: Date }],
    created_at: Date,
}