Params go from consumer to provider, results from provider to consumer. Sender objects are closed, receiver objects open unless they reject additional properties. Covers the Draft 7 subset with refs, cycles, nullable values, string enums, arrays, and integer ranges, rejects other constructs, and gives counterexamples. Property test over random subset schemas.