SCC versioned request/response contracts.
Thin by design: result types ARE the canonical engine types
(re-exported, never re-modelled), and request types are the exact
argument tuples every transport already passes to the builders.
Serialization is the only difference between transports — never
semantic content. (JsonSchema derives arrive with the schemars
dependency; adding a derive never changes the JSON wire shape.)