class Riffer::StructuredOutput

Riffer::StructuredOutput provides parse/validate for structured JSON responses from LLM providers.

params = Riffer::Params.new
params.required(:sentiment, String)
so = Riffer::StructuredOutput.new(params)
result = so.parse_and_validate('{"sentiment":"positive","score":0.9}')
result.object  #=> {sentiment: "positive", score: 0.9}