{
  "fixtures": [
    {
      "name": "missing_required_status_field",
      "description": "Tool output missing the required 'status' field entirely",
      "input": {
        "tool_name": "code_analyzer",
        "output": {
          "result": "analysis complete",
          "artifacts": ["report.json"]
        }
      },
      "expected_error": "missing required field: status"
    },
    {
      "name": "wrong_type_for_status",
      "description": "Tool output has 'status' as integer instead of string",
      "input": {
        "tool_name": "code_analyzer",
        "output": {
          "status": 200,
          "result": "ok"
        }
      },
      "expected_error": "invalid type for field 'status': expected string, got int"
    },
    {
      "name": "null_result_payload",
      "description": "Tool output has null as the result payload",
      "input": {
        "tool_name": "code_analyzer",
        "output": {
          "status": "success",
          "result": null
        }
      },
      "expected_error": "result payload must not be null"
    },
    {
      "name": "extra_null_fields",
      "description": "Tool output contains multiple unexpected null fields",
      "input": {
        "tool_name": "file_writer",
        "output": {
          "status": "success",
          "result": "written",
          "metadata": null,
          "trace_id": null,
          "parent_id": null
        }
      },
      "expected_error": "unexpected null fields: metadata, trace_id, parent_id"
    },
    {
      "name": "empty_output_object",
      "description": "Tool output is an empty object with no fields",
      "input": {
        "tool_name": "code_analyzer",
        "output": {}
      },
      "expected_error": "tool output must contain at least 'status' and 'result'"
    },
    {
      "name": "nested_wrong_types",
      "description": "Tool output has deeply nested fields with wrong types",
      "input": {
        "tool_name": "code_analyzer",
        "output": {
          "status": "success",
          "result": {
            "files_processed": "not_a_number",
            "errors": "should_be_list",
            "metadata": [1, 2, 3]
          }
        }
      },
      "expected_error": "nested type mismatch in result: files_processed expected int, errors expected list"
    },
    {
      "name": "output_is_string_not_object",
      "description": "Tool output is a raw string instead of a structured object",
      "input": {
        "tool_name": "code_analyzer",
        "output": "just a string"
      },
      "expected_error": "tool output must be an object, got string"
    },
    {
      "name": "missing_tool_name",
      "description": "Tool invocation missing the tool_name entirely",
      "input": {
        "output": {
          "status": "success",
          "result": "done"
        }
      },
      "expected_error": "missing required field: tool_name"
    }
  ]
}
