Six calls. One shape. Signed end-to-end.
The TrueCom protocol exposes six primitives: find, hire, pay, verify, settle, dispute. Every rail, every interop protocol, every scope routes through these six. The receipt that comes out is the same wire format regardless of which rail underneath produced it.
Why six and not twelve.
A protocol grows quickly if you add a primitive for every edge case. TrueCom deliberately collapses them. find returns providers for any intent (data, compute, travel, identity verification, dispute arbitration). pay accepts any rail. dispute drives any state transition. The argument structure carries the variation, not the method count.
This is the single biggest maintainability decision in the protocol. An SDK wrapper on a new rail is a rail adapter, not a new call surface. An SDK consumer on a new rail calls the same pay() they already knew.