LM-backed semantic precision/recall metric with deterministic F1 scoring.
This is a BEAM-native adaptation of DSPy SemanticF1: the LM judges
precision and recall, while Imp clamps both values and computes the harmonic
mean locally. Passing a non-nil :trace returns threshold truth, matching the
optimizer-facing upstream contract.