{
  "id": "config_llm_structured_extraction",
  "description": "Tests structured extraction via liter-llm with JSON schema",
  "tags": ["contract", "config", "liter-llm", "structured-extraction"],
  "call": "extract_file_sync",
  "input": {
    "path": "pdf/fake_memo.pdf",
    "config": {
      "structured_extraction": {
        "schema": {
          "type": "object",
          "properties": {
            "title": {
              "type": "string"
            },
            "date": {
              "type": "string"
            },
            "summary": {
              "type": "string"
            }
          },
          "required": ["title"]
        },
        "schema_name": "memo_data",
        "llm": {
          "model": "openai/gpt-4o"
        }
      }
    }
  },
  "assertions": [
    {
      "type": "equals",
      "field": "mime_type",
      "value": "application/pdf"
    },
    {
      "type": "min_length",
      "field": "content",
      "value": 10
    },
    {
      "type": "not_empty",
      "field": "structured_output"
    }
  ],
  "skip": {
    "languages": ["python", "rust", "node", "go", "ruby", "elixir", "wasm", "java", "csharp", "php", "r", "dart", "kotlin_android", "swift", "zig"],
    "reason": "Requires liter-llm feature and KREUZBERG_LLM_API_KEY env var; runtime-only skip"
  }
}
