We discussed terminology quite a bit during the entity storage discussion in Prague, see the notes here. Attendees of the discussion were plach (discussion lead), yched, fago, berdir, amateescu, das-peter.
This was discussed again in Szeged with fago, plach, Berdir and tstoeckler.
There is no way to find out the ownership of entity fields. As some fields are provided by the entity type itself in the ::baseFieldDefinitions() and some are added in hook_entity_*_field_info() it is important to distinguish this. Also some fields should be taken care of by the storage controller but we also want to support adding fields and caring about the storage yourself.
We want to clarify the providing module of a field definition + who is responsible for storing the field. For this purpose the following methods are being added to
getProvider(): The provider of the entity field. For the base fields defined in the entity type the provide will be equal to the provider of the entity type. For fields added in hook_entity_*_field_info() the provider will be the module iplementing the hook. For configurable fields the provider will be 'field'. This allows to distinguish where the field originated. It will also enable to track dependencies, e.g. when a module is configured to rely on a field to be there (a rule configuration needs it to run, a module uses a token of that field, ..).
hasCustomStorage(): Returns whether or not the field has a custom storage and thus should be ignored by the storage controller. This is FALSE by default, and hardcoded to FALSE for configurable fields. This will be used by .