{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/glyphapi-dev/json-schema/glyphapi-dev-mint-in-schema.json",
  "title": "MintIn",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/glyphapi-dev-openapi.json#/components/schemas/MintIn",
  "properties": {
    "model_family": {
      "type": "string",
      "title": "Model Family",
      "description": "e.g. 'claude-opus-4-7', 'gpt-5'"
    },
    "cutoff_quarter": {
      "type": "string",
      "title": "Cutoff Quarter",
      "description": "e.g. '2026-Q1' — coarse for fungibility"
    },
    "query": {
      "type": "string",
      "title": "Query",
      "description": "The original question the agent asked Fillin"
    },
    "query_embedding": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Query Embedding",
      "description": "Optional 384-d MiniLM embedding of the query, for cluster routing"
    },
    "evidence": {
      "items": {
        "$ref": "#/$defs/MintEvidenceIn"
      },
      "type": "array",
      "title": "Evidence",
      "description": "Fillin chunk_ids the reasoning cites. Every id must resolve in the corpus."
    },
    "reasoning_graph": {
      "items": {
        "$ref": "#/$defs/MintReasoningStepIn"
      },
      "type": "array",
      "title": "Reasoning Graph",
      "description": "Typed reasoning steps. Free-text is rejected — typed traces are the moat."
    },
    "conclusion": {
      "type": "string",
      "title": "Conclusion"
    },
    "list_price_usdc": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "List Price Usdc",
      "description": "Price the minter wants to resell at. NULL = mint but don't list."
    }
  },
  "type": "object",
  "required": [
    "model_family",
    "cutoff_quarter",
    "query",
    "evidence",
    "reasoning_graph",
    "conclusion"
  ],
  "$defs": {
    "MintEvidenceIn": {
      "properties": {
        "chunk_id": {
          "type": "string",
          "title": "Chunk Id",
          "description": "LanceDB row id Fillin will verify exists"
        },
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Url",
          "description": "Convenience copy of the source URL"
        }
      },
      "type": "object",
      "required": [
        "chunk_id"
      ],
      "title": "MintEvidenceIn"
    },
    "MintReasoningStepIn": {
      "properties": {
        "claim": {
          "type": "string",
          "title": "Claim"
        },
        "evidence_chunk_id": {
          "type": "string",
          "title": "Evidence Chunk Id",
          "description": "Must appear in `evidence`"
        },
        "confidence": {
          "type": "number",
          "maximum": 1.0,
          "minimum": 0.0,
          "title": "Confidence"
        },
        "derived_claim": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Derived Claim"
        }
      },
      "type": "object",
      "required": [
        "claim",
        "evidence_chunk_id",
        "confidence"
      ],
      "title": "MintReasoningStepIn"
    }
  }
}