To achieve certain decoupling between modules, there are scenarios where a Projo interface needs to extend another interface that is not on the compile-time classpath. In other words, something like interface ProjoInterface extends MyInterface would not work because MyInterface is not available at compile-time (but would be available at runtime). An annotation should indicate the interface's fully qualified name, so that Projo can still create the correct code.