One more hack can be `event.unconfirmed_participants` return `Participants.unconfirmed_participants(self)`. This only looks cleaner outside.