@Retention(value=RUNTIME)
@Target(value={METHOD,FIELD,PARAMETER})
public @interface Weak
Indicate that the given produced item is produced only weakly. If a build only consumes items produced weakly
by a step, the step is not included. If applied to a method, the return value of the method is considered "weak".