Reamer ABI Boundary Benchmark
(AbiGate::check path -- marshal + dispatch + return)

Samples per measurement: 600000
Timer floor (P50, subtracted in net_* columns): 20ns

timer floor                mean=   17.7ns  P50=    20ns  P99=    20ns   net_mean=   17.7ns  net_P50=    20ns
bare vtable call           mean=   19.3ns  P50=    20ns  P99=    20ns   net_mean=    0.0ns  net_P50=     0ns
cpp_to_c_intent (marshal)  mean=   26.3ns  P50=    30ns  P99=    30ns   net_mean=    6.3ns  net_P50=    10ns
full shim check()          mean=   79.9ns  P50=    80ns  P99=   110ns   net_mean=   59.9ns  net_P50=    60ns

The net_P50 of "full shim check()" is the per-order ABI boundary cost.
Dispatch is the cheap part; marshaling dominates.
