contract.declareSetters=y</arg> <arg>-group-contract.declareBuilderInterface=y</arg> <arg>-group-contract.supportInterfaceNameSuffix=Lifecycle</arg> <arg>-group-contract.upstreamEpisodeFile=META-INF/jaxb-interfaces.episode</arg> <arg>-group-contract.downstreamEpisodeFile=META-INF/jaxb-interfaces....
The only thing that a library must do is to use setters. And has* methods could be called by user code then. It's not necessary that a library must be primary client for has* methods (but if some libraries already follow this contract, it's good). The manual code to implement ...