{
  "schema_version": "1.0",
  "description": "Provenio MCP Tool Interface Contracts — supplementary material for ISWC 2026 submission",
  "tools": [
    {
      "name": "artwork_provenance",
      "description": "Returns custody chain for a given artwork with PROV-O confidence per link",
      "input_schema": {
        "type": "object",
        "properties": {
          "artwork_id": { "type": "string", "description": "Provenio KG artwork identifier (e.g. artwork:lee-ufan-relatum-1968)" },
          "date_range": {
            "type": "object",
            "properties": {
              "start": { "type": "integer", "description": "Start year (inclusive)" },
              "end": { "type": "integer", "description": "End year (inclusive), omit for present" }
            }
          },
          "include_uncertainty": { "type": "boolean", "default": true, "description": "Include PROV-O confidence scores per chain link" }
        },
        "required": ["artwork_id"]
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "artwork_id": { "type": "string" },
          "custody_chain": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "event_type": { "type": "string", "enum": ["E8_Acquisition", "E10_Transfer_of_Custody"] },
                "from_actor": { "type": "string" },
                "to_actor": { "type": "string" },
                "date_earliest": { "type": "string" },
                "date_latest": { "type": "string" },
                "prov_confidence": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
                "source": { "type": "string" }
              }
            }
          },
          "coverage_signal": { "type": "string", "enum": ["full", "partial", "gap_detected", "not_indexed"] }
        }
      }
    },
    {
      "name": "artist_network",
      "description": "Returns influence subgraph for a given artist with typed edge mechanisms",
      "input_schema": {
        "type": "object",
        "properties": {
          "artist_id": { "type": "string" },
          "depth": { "type": "integer", "default": 2, "minimum": 1, "maximum": 4 },
          "mechanism": {
            "type": "array",
            "items": { "type": "string", "enum": ["formal", "thematic", "pedagogical", "patronage-mediated"] },
            "description": "Filter by influence mechanism type; omit for all"
          }
        },
        "required": ["artist_id"]
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "nodes": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "label": {"type": "string"}, "type": {"type": "string"} } } },
          "edges": { "type": "array", "items": { "type": "object", "properties": { "from": {"type": "string"}, "to": {"type": "string"}, "mechanism": {"type": "string"}, "strength": {"type": "string", "enum": ["documented", "probable", "speculative"]} } } }
        }
      }
    },
    {
      "name": "iconographic_search",
      "description": "Returns KG nodes matching an iconographic subject term, including hasFunctionalAnalog mappings",
      "input_schema": {
        "type": "object",
        "properties": {
          "subject_term": { "type": "string" },
          "panofsky_level": { "type": "string", "enum": ["pre-iconographic", "iconographic", "iconological"], "description": "Filter by Panofsky interpretation level" }
        },
        "required": ["subject_term"]
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "matches": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "artwork_id": {"type": "string"},
                "panofsky_level": {"type": "string"},
                "content": {"type": "string"},
                "functional_analogs": {"type": "array", "items": {"type": "string"}},
                "confidence": {"type": "number"},
                "source": {"type": "string"}
              }
            }
          }
        }
      }
    },
    {
      "name": "market_signal",
      "description": "Returns auction records and price signals for a given artist with temporal normalization",
      "input_schema": {
        "type": "object",
        "properties": {
          "artist_id": { "type": "string" },
          "date_range": { "type": "object", "properties": { "start": {"type": "integer"}, "end": {"type": "integer"} } }
        },
        "required": ["artist_id"]
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "records": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "auction_house": {"type": "string"},
                "sale_date": {"type": "string"},
                "hammer_price_usd": {"type": "number"},
                "normalized_price_2024usd": {"type": "number"},
                "artwork_id": {"type": "string"},
                "source": {"type": "string"}
              }
            }
          }
        }
      }
    },
    {
      "name": "critical_reception",
      "description": "Returns critical reception timeline for a given artwork with register classification",
      "input_schema": {
        "type": "object",
        "properties": {
          "artwork_id": { "type": "string" },
          "date_range": { "type": "object", "properties": { "start": {"type": "integer"}, "end": {"type": "integer"} } }
        },
        "required": ["artwork_id"]
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "timeline": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "assertion_date": {"type": "string"},
                "register": {"type": "string", "enum": ["positive", "negative", "mixed", "revision"]},
                "valence_score": {"type": "number", "minimum": -1.0, "maximum": 1.0},
                "content_summary": {"type": "string"},
                "confidence": {"type": "number"},
                "source": {"type": "string"}
              }
            }
          }
        }
      }
    }
  ]
}
