@Target(value=TYPE)
@Retention(value=CLASS)
public @interface Pseudo
In particular, the superclass requirement for pseudo mixins is extremely important if the target has an obfuscated class in its hierarchy. For example let's assume that we're mixing into a class SomeCustomScreen from another party which extends GuiScreen which is obfuscated. Attempting to inject into initGui will succeed at dev time and fail at production time, because the reference is obfuscated. We can overcome this by ensuring the mixin inherits from the same superclass, thus allowing initGui to be resolved in the superclass hierarchy (this is not the case for normal mixins).
Overwrite methods which are not inherited from a superclass
(if the target is obfuscated) must be decorated manually with aliases.