# `bench` — neutral benchmark declarations completed by a target
One declaration binds two inseparable outputs: a stamped benchmark table and a typed report reader.
They travel through one carrier and one generated-support pin because either output alone is an incomplete delivery.
## Authority
[`BenchmarkDeclaration`] is the informed value for one authored measurement contract.
It owns the stable names, relationships, exact numeric material, and authored order that capture admits and rendering reads.
Its private constructors refuse vacuous measurement curves, missing observation authority, duplicate names, and relationships that cannot be rendered without ambiguity.
The declaration's canonical content commits every semantic fact its renderer may observe.
Authored row, axis, and observation order remain members of that commitment because the generated receiver preserves each order.
The declaration owns no callable, judge, preflight result, clock, measurement, verdict, or report.
Those facts belong to the target and to `macroonz-harness`.
## Target crossing
The compiler renders constructor-shaped cargo against the public harness surface named by the declared door binding.
No physical dependency spelling is discovered, and dependency renames or facades remain ordinary declared inputs.
The carrier asks the target for the measured work, planted-worse control, judge binding, correctness preflight, and report reader that complete the declaration.
Those values remain target-scope expressions rather than paths the compiler invents.
The generated-support gate releases the table and report-reader seats together only when the producer and harness schema pins agree.
The target constructs the invocation and hands the completed table to the harness receiver.
The generated report reader receives only the finished report and cannot become a benchmark host.
## Evidence and nonclaims
Compiler lanes observe canonical content, authored order, capture boundaries, namespace separation, numeric bounds, and generated token structure.
The proc crossing observes that the attribute can carry one lawful declaration, while harness lanes own schema currency and receiver behavior.
There is no benchmark backend in this home.
No generated syntax establishes performance, and no local receiver specimen is evidence about compiler output size or compile cost.