Problem/Motivation
Whilst discussing #306662: Add redirect option to site wide contact forms with @catch we've realised that there is a problem with entities having interfaces. All interfaces are public API which makes it impossible to change them within a Drupal major version according to our BC policy. Which essentially freezes all of our entities - both config and content. The only reason to have interfaces are because it is possible to alter the entity definition to use a different class - however we could just say that if you need to do this then you should extend the class you are replacing. If we did this we could make changes to the methods available on an entity in a minor version without having to worry about BC.
Proposed resolution
File patches for each entity interface to:
- Mark the interfaces
@internal
. The message should be:* @internal New methods can be added to this interface in minor releases.
* In order to replace an entity class you must extend _CLASSNAME_.