Simulated decoder. The logits are scripted. The mask is not: a token is kept only when the text so far can still become valid JSON for this schema.
Northline's billing desk wants a model to turn an email or a vendor invoice into JSON their queue can save. Constrained decoding does that by zeroing illegal next tokens while the text is being written, instead of hoping a later parse succeeds.