Implementers of this class should create a derived type that defines each of its selection sets by calling AddSelectionSet in its constructor. This enables a central implementation for event suppression and broadcast.