Ender evaluator contracts are split across dataclasses, strict JSON Schema, and two prompt stacks
Observed 2026-09-09 from source inspection of ender-inference’s current evaluation worktree: the active semantic evaluator does not use Pydantic. Internal contracts are frozen dataclasses plus manual invariants; provider boundaries use strict JSON Schemas. The GPT-5.5 batch path …