Base class for most concrete IDataSource types.
Conceptually, any type which produces data can be an IDataSource for that data type, but in practice usage is more constrained (though still pervasive throughout the Interaction SDK). Descendent types of this DataSource implementation specifically are also MonoBehaviours; thus, the expectation for descendent types is that they will be long-lived instances which persistently provide data over a period of time, on a schedule specified by UpdateModeFlags but typically tied in some way into MonoBehaviour's built-in update capabilites.