[WIP] Add requirements for language fall backs.

> Yes either we need to change all places [ ... ] or add an option ::ALLOW_INFERRED  [ ... ]

Are you talking specifically about the case where you create a derivative of `Term`?

> The interface is only advisory, the object itself should not prevent persisting it. 

How about just dropping this? You can have an Entity that is somehow derived from other data. And if something should be persisted or not depends on the context. If you create these TermFallback objects just before the serialization step, then why would they risk being persisted? Someone else could create them elsewhere and persist them, which might or might not be correct - you can't know if it will be. It's like the singleton pattern. Sure, you can make the constructor private to prevent anyone else from creating an instance. Alternatively you can drop the assumption that in no case another instance might be needed, and simply not construct a second one when not appropriate.

> How or what part of LSP do you think is violated?

Adding a usage restriction to a sub type prevents you from being able to pass instances of this sub type to code expecting instances of type.