@Retention(RUNTIME) @Target(TYPE) public @interface Requires
java.lang.Class<? extends Hider>
hider
java.lang.Class<? extends Searcher>
searcher
java.lang.Class<? extends Searcher> searcher
java.lang.Class<? extends Hider> hider