Enforce the field index on the gate's execution path (AD section 4: the
gate looks expected values up by field name, and a name the index does not
know is an environment failure).
The check always reads the delivered table (@gate_data.all_cells()),
never the selected or injected cells: --inject=<n> rewrites one
expectation in memory, and a perturbed expectation must not be able to
turn a healthy index into a reported problem.
On success nothing is printed, so the two-line stdout contract of AD
section 6 is untouched. On failure every problem is printed with the
gate: diagnostic prefix used by the other environment failures, and the
process exits with 2 (AD section 3.2: a malformed table is an environment
problem, not a cell mismatch, so no failure record is written).