27.2  Structured Outputs and Constrained Decoding