{
  "version": "3.15",
  "name": "Test09: LLM Structured JSON Output",
  "registry": {
    "params": ["topic(STRING)"],
    "vars": ["$analysis(OBJECT)", "$title(STRING)", "$score(INT)"],
    "files": { "inputs": [], "artifacts": ["Output/*"] }
  },
  "steps": [
    {
      "id": "LLM_Analyze",
      "in": {
        "messages": [
          { "role": "system", "content": "Analyze the given topic and return structured JSON." },
          { "role": "user", "content": "=topic" }
        ],
        "output_config": {
          "format": {
            "type": "json_schema",
            "schema": {
              "type": "object",
              "properties": {
                "title": { "type": "string" },
                "score": { "type": "integer" },
                "tags":  { "type": "array", "items": { "type": "string" } }
              },
              "required": ["title", "score", "tags"],
              "additionalProperties": false
            }
          }
        }
      },
      "out": {
        "$analysis": "=_result",
        "$title":    "=_result.title",
        "$score":    "=_result.score"
      },
      "next": "Stop_End"
    },
    { "id": "Stop_End" }
  ]
}
