Definitely good to support, but feels like the wrong place to be doing this. If we had access to a management context, we could do: `managementContext.getEntityManager().getEntityTypeRegistry().getImplementedBy(clazz)` - that allows one to register overrides.

I like that we can fail-fast with a good error here. If for interfaces we left it to `EntitySpec.create(tempclazz)`, it would fail on startup saying that the annotation was missing - would that be better?