@Retention(value=RUNTIME)
@Target(value=TYPE)
@Documented
public static @interface Subcomponent.Factory
This follows all the rules of Component.Factory, except it must appear in classes
annotated with Subcomponent instead of Component.
If a subcomponent defines a factory, its parent component(s) will have a binding for that factory type, allowing an instance of that factory to be injected or returned from a method on that component like any other binding.