assembleContract
fun assembleContract(contracts: List<File>, owners: Map<String, String>, classes: List<File>, owner: String, output: File): Boolean
Writes the contract the api module owner carries, META-INF/wow/contract.json (PeerContracts.RESOURCE) under output, which it clears first: of the contracts of the domain modules it declares (each named by owners, by its path), the contexts whose command and event classes are all in its classes directories (PeerContracts.assemble); what the Gradle plugin's assembleWowContract does. A declared module of no context (it compiles no model) fails, naming it. Returns whether the api module carries a contract: with no context of its own, it carries none.