{
  "openapi": "3.0.3",
  "info": {
    "title": "Metkagram Static API",
    "description": "Machine-readable language resources for agents, LLM tools, researchers and learning applications. All endpoints are static JSON files served from GitHub Pages.",
    "version": "1.0.0+8bda5f7406ae",
    "contact": {
      "name": "Applied Systems Lab at MetalHatsCats",
      "url": "https://metalhatscats.com"
    },
    "license": {
      "name": "Metkagram Source-Available Terms",
      "url": "https://metkagram.github.io/en/licensing/"
    }
  },
  "servers": [
    {
      "url": "https://metkagram.github.io/api/v1",
      "description": "GitHub Pages production API"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "summary": "API index",
        "operationId": "",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/catalog.json": {
      "get": {
        "summary": "Dataset catalog",
        "operationId": "catalog.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/attribution.json": {
      "get": {
        "summary": "Attribution policy",
        "operationId": "attribution.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/patterns.json": {
      "get": {
        "summary": "All patterns",
        "operationId": "patterns.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    },
                    {
                      "properties": {
                        "data": {
                          "$ref": "https://metkagram.github.io/api/v1/schemas/pattern.json"
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/patterns/index.json": {
      "get": {
        "summary": "Pattern summaries (paginated)",
        "operationId": "patterns_index.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            },
            "description": "Page number (static; use /page/{n}.json)"
          }
        ]
      }
    },
    "/patterns/{id}.json": {
      "get": {
        "summary": "Single pattern",
        "operationId": "patterns_id.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/sets.json": {
      "get": {
        "summary": "Study sets",
        "operationId": "sets.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/sets/{id}.json": {
      "get": {
        "summary": "Single study set",
        "operationId": "sets_id.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/categories.json": {
      "get": {
        "summary": "Categories",
        "operationId": "categories.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/categories/{id}.json": {
      "get": {
        "summary": "Patterns in category",
        "operationId": "categories_id.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/languages.json": {
      "get": {
        "summary": "Languages",
        "operationId": "languages.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/subsets/language/{lang}.json": {
      "get": {
        "summary": "Language subset",
        "operationId": "subsets_language_lang.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/subsets/set/{id}.json": {
      "get": {
        "summary": "Set subset",
        "operationId": "subsets_set_id.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/annotations/{target}/{collection}.json": {
      "get": {
        "summary": "Annotated documents",
        "operationId": "annotations_target_collection.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/annotations/{target}/{collection}/{id}.json": {
      "get": {
        "summary": "Single annotated document",
        "operationId": "annotations_target_collection_id.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/search-index.json": {
      "get": {
        "summary": "Search index",
        "operationId": "search-index.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/download/full-patterns.json": {
      "get": {
        "summary": "Download patterns",
        "operationId": "download_full-patterns.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/mcp-server.json": {
      "get": {
        "summary": "MCP tool spec",
        "operationId": "mcp-server.json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/pattern-graph.json": {
      "get": {
        "summary": "Public reasoning pattern graph",
        "operationId": "pattern_graph_json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                }
              }
            }
          }
        }
      }
    },
    "/discovery.json": {
      "get": {
        "summary": "Capability and recommendation index",
        "responses": {
          "200": {
            "description": "Metkagram capability routing"
          }
        }
      }
    },
    "/contrasts.json": {
      "get": {
        "summary": "Reviewed pattern contrasts",
        "operationId": "contrasts_json",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
                }
              }
            }
          }
        }
      }
    },
    "/choice-drills.json": {
      "get": {
        "summary": "Reviewed pattern choice drills",
        "operationId": "choice_drills_json",
        "responses": {
          "200": {
            "description": "Reviewed two-option pattern choice scenarios"
          }
        }
      }
    },
    "/reasoning-packs.json": {
      "get": {
        "summary": "Curated reasoning learning packs",
        "operationId": "reasoning_packs_json",
        "responses": {
          "200": {
            "description": "Reviewed routes over patterns, contrasts and drills"
          }
        }
      }
    },
    "/spoken-practice-handoffs.json": {
      "get": {
        "summary": "Provider-neutral spoken-practice handoff references",
        "operationId": "spoken_practice_handoffs_json",
        "responses": {
          "200": {
            "description": "Bounded immutable handoff projections with provenance and rights"
          }
        }
      }
    },
    "/schemas/spoken-practice-handoff.json": {
      "get": {
        "summary": "Spoken-practice handoff JSON Schema",
        "operationId": "spoken_practice_handoff_schema_json",
        "responses": {
          "200": {
            "description": "JSON Schema for the Metkagram spoken-practice handoff contract"
          }
        }
      }
    },
    "/choices/{id}.json": {
      "get": {
        "summary": "Resolve one reviewed Choice drill",
        "operationId": "choice_by_id_json",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Reviewed Pattern Choice Clinic drill with provenance"
          }
        }
      }
    },
    "/routes/{id}.json": {
      "get": {
        "summary": "Resolve one reviewed reasoning Route",
        "operationId": "route_by_id_json",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Reviewed Reasoning Pack with provenance"
          }
        }
      }
    },
    "/editorial-readiness.json": {
      "get": {
        "summary": "Study-set editorial readiness and reviewed starter policy",
        "operationId": "editorial_readiness_json",
        "responses": {
          "200": {
            "description": "Categorical review state for canonical Metkagram study sets"
          }
        }
      }
    },
    "/pattern-relations.json": {
      "get": {
        "summary": "Pattern relation index",
        "operationId": "pattern_relations_json",
        "responses": {
          "200": {
            "description": "Reviewed downstream relations for canonical patterns"
          }
        }
      }
    },
    "/teacher-exports.json": {
      "get": {
        "summary": "Teacher and tutor export index",
        "operationId": "teacher_exports_json",
        "responses": {
          "200": {
            "description": "Portable reviewed Reasoning Pack export catalog"
          }
        }
      }
    },
    "/cross-language-map.json": {
      "get": {
        "summary": "English-German functional transfer map",
        "operationId": "cross_language_map_json",
        "responses": {
          "200": {
            "description": "Reviewed same-pattern English and German functional counterparts"
          }
        }
      }
    },
    "/learning-event-schema.json": {
      "get": {
        "summary": "Get the local learning event schema",
        "responses": {
          "200": {
            "description": "JSON Schema for learner-controlled local activity"
          }
        }
      }
    },
    "/agent-integration-recipes.json": {
      "get": {
        "summary": "Verified agent integration recipes",
        "operationId": "agent_integration_recipes_json",
        "responses": {
          "200": {
            "description": "Current provider-neutral recipes over canonical Metkagram objects"
          }
        }
      }
    },
    "/domain-model.json": {
      "get": {
        "summary": "Multilingual domain-model manifest",
        "operationId": "domain_model_json",
        "responses": {
          "200": {
            "description": "Multilingual domain-model manifest"
          }
        }
      }
    },
    "/moves.json": {
      "get": {
        "summary": "Language-independent communicative and reasoning Moves",
        "operationId": "moves_json",
        "responses": {
          "200": {
            "description": "Language-independent communicative and reasoning Moves"
          }
        }
      }
    },
    "/frames.json": {
      "get": {
        "summary": "Language-specific reusable Frames",
        "operationId": "frames_json",
        "responses": {
          "200": {
            "description": "Language-specific reusable Frames"
          }
        }
      }
    },
    "/bridges.json": {
      "get": {
        "summary": "Reviewed cross-language Frame Bridges",
        "operationId": "bridges_json",
        "responses": {
          "200": {
            "description": "Reviewed cross-language Frame Bridges"
          }
        }
      }
    },
    "/language-pilots.json": {
      "get": {
        "summary": "Frame-only learning-language pilots and their capability boundaries",
        "operationId": "language_pilots_json",
        "responses": {
          "200": {
            "description": "Frame-only learning-language pilots and their capability boundaries"
          }
        }
      }
    },
    "/canonical-frames.json": {
      "get": {
        "summary": "Explicit canonical Frames from reviewed-pilot Frame families",
        "operationId": "canonical_frames_json",
        "responses": {
          "200": {
            "description": "Explicit canonical Frames from reviewed-pilot Frame families"
          }
        }
      }
    },
    "/frame-variants.json": {
      "get": {
        "summary": "FrameVariant relations from stable Pattern Frames to canonical Frames",
        "operationId": "frame_variants_json",
        "responses": {
          "200": {
            "description": "FrameVariant relations from stable Pattern Frames to canonical Frames"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Provenance": {
        "$ref": "https://metkagram.github.io/api/v1/schemas/provenance.json"
      },
      "ApiResponse": {
        "$ref": "https://metkagram.github.io/api/v1/schemas/api-response.json"
      },
      "Pattern": {
        "$ref": "https://metkagram.github.io/api/v1/schemas/pattern.json"
      },
      "Set": {
        "$ref": "https://metkagram.github.io/api/v1/schemas/set.json"
      },
      "Document": {
        "$ref": "https://metkagram.github.io/api/v1/schemas/document.json"
      }
    }
  }
}
