{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://frank1o3.github.io/Schemas/smithpy/modrinth_api.schema.json",
  "title": "SmithPy Modrinth API Config Schema",
  "description": "Schema for Modrinth API endpoint configuration",
  "type": "object",
  "$comment": "Generated from registry YAML. Do not edit manually.",
  "required": [
    "BASE_URL",
    "ENDPOINTS"
  ],
  "additionalProperties": false,
  "properties": {
    "$schema": {
      "type": "string",
      "format": "uri",
      "description": "Optional schema reference"
    },
    "BASE_URL": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://",
      "description": "Base Modrinth API URL"
    },
    "ENDPOINTS": {
      "type": "object",
      "description": "Modrinth API endpoint mappings",
      "additionalProperties": false,
      "required": [
        "search",
        "projects",
        "versions",
        "tags",
        "teams",
        "user",
        "bulk"
      ],
      "properties": {
        "search": {
          "type": "string",
          "description": "Search endpoint"
        },
        "projects": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "project",
            "project_versions",
            "dependencies",
            "gallery",
            "icon",
            "check_following"
          ],
          "properties": {
            "project": {
              "type": "string"
            },
            "project_versions": {
              "type": "string"
            },
            "dependencies": {
              "type": "string"
            },
            "gallery": {
              "type": "string"
            },
            "icon": {
              "type": "string"
            },
            "check_following": {
              "type": "string"
            }
          }
        },
        "versions": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "version",
            "files",
            "download",
            "file_by_hash",
            "versions_by_hash",
            "latest_for_hash"
          ],
          "properties": {
            "version": {
              "type": "string"
            },
            "files": {
              "type": "string"
            },
            "download": {
              "type": "string"
            },
            "file_by_hash": {
              "type": "string"
            },
            "versions_by_hash": {
              "type": "string"
            },
            "latest_for_hash": {
              "type": "string"
            }
          }
        },
        "tags": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "categories",
            "loaders",
            "game_versions",
            "licenses",
            "environments"
          ],
          "properties": {
            "categories": {
              "type": "string"
            },
            "loaders": {
              "type": "string"
            },
            "game_versions": {
              "type": "string"
            },
            "licenses": {
              "type": "string"
            },
            "environments": {
              "type": "string"
            }
          }
        },
        "teams": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "team",
            "members"
          ],
          "properties": {
            "team": {
              "type": "string"
            },
            "members": {
              "type": "string"
            }
          }
        },
        "user": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "user",
            "user_projects",
            "notifications",
            "avatar"
          ],
          "properties": {
            "user": {
              "type": "string"
            },
            "user_projects": {
              "type": "string"
            },
            "notifications": {
              "type": "string"
            },
            "avatar": {
              "type": "string"
            }
          }
        },
        "bulk": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "projects",
            "versions",
            "version_files"
          ],
          "properties": {
            "projects": {
              "type": "string"
            },
            "versions": {
              "type": "string"
            },
            "version_files": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}