Fixed fields, finite values

September 16, 2026 · View on GitHub

The model cannot invent output fields or values outside the supplied choices. It scores candidates; application code builds the result.

This claim applies to the successful parsed_json decision payload, not every piece of response metadata. Its field names come directly from the accepted request schema. Each value comes from that field's allowed values, or is null when the caller has enabled abstention and the threshold is not met.

The model's generated text is not parsed as JSON and cannot add fields. For example, if the schema allows only maneuver: [brake, coast, accelerate] and boost: boolean, model text saying {"teleport": true} cannot introduce a teleport key. That text is ignored; the implementation reads only the requested label scores and constructs the two declared fields.

By constructionStill requires evaluation or application policy
Exactly the supplied decision keysWhether a selected value is factually correct
Only declared enums/booleans, plus opted-in abstentionWhether independent values form a coherent joint action
Application-serialized valid JSON on successWhether supplied context is truthful or complete
Missing/nonfinite scores fail explicitlyWhether prompting, label order or injected text changes the chosen value

Do not describe JEVfire as “hallucination-free.” It eliminates model-invented schema fields and out-of-set values in this API path. It does not eliminate incorrect classifications, prompt-influenced choices, or erroneous actions. An allowed accelerate value can still be a bad driving decision.

The request itself is application-controlled. If the caller supplies a new field, it becomes part of the schema; this is not a model-created field. A gateway should validate which schemas and actions its clients may request. Neither type safety nor a high relative label probability grants tool permissions.

Fixed nested objects and arrays can be assembled in application code with the same structural property. The current inference API does not infer arbitrary nested structure or dynamic array lengths.

The browser squad demo applies the same construction in JavaScript. It also validates the completed action object before using it and applies deterministic game rules. The CUDA sidecar and browser runtime have different scheduling and caching behavior; the structural contract does not depend on those speed optimizations.