{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://6wdb.com/static/6w.schema.json",
  "title": "6w.json - describe your tool for 6wdb",
  "description": "Place this file at your repository root and submit via POST https://6wdb.com/api/v1/submit {\"repo_url\": \"<your repo>\"}. Your words are used verbatim - no LLM rewriting. The six_word_summary must be EXACTLY six words (hyphenated compounds count as one word).",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "name",
    "kind",
    "domains",
    "tags",
    "six_word_summary",
    "who",
    "what",
    "where",
    "when",
    "why",
    "with"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The tool or project name."
    },
    "kind": {
      "type": "string",
      "enum": [
        "MCP Server",
        "Library / SDK",
        "Application",
        "Hosted Service",
        "Model"
      ],
      "description": "How you run it - the single best-fitting kind."
    },
    "domains": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Agents & Orchestration",
          "Coding",
          "Retrieval & Memory",
          "Inference & Serving",
          "Fine-tuning & Training",
          "Observability & Evaluation",
          "Guardrails & Structure",
          "Apps & UIs",
          "Automation & Integration"
        ]
      },
      "minItems": 1,
      "maxItems": 3,
      "description": "What it does - one to three domains, most specific first."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 40
      },
      "minItems": 1,
      "maxItems": 8,
      "description": "3-6 short technology/keyword tags, e.g. [\"Python\", \"Docker\"]."
    },
    "six_word_summary": {
      "type": "string",
      "maxLength": 160,
      "description": "Your pitch in EXACTLY six words. Count them. Hyphenated compounds count as one word.",
      "examples": [
        "Give agents a real, driveable browser."
      ]
    },
    "who": {
      "type": "string",
      "description": "WHO - identity, author, or underlying model."
    },
    "what": {
      "type": "string",
      "description": "WHAT - the main capability."
    },
    "where": {
      "type": "string",
      "description": "WHERE - execution runtime / environment."
    },
    "when": {
      "type": "string",
      "description": "WHEN - trigger condition or invocation."
    },
    "why": {
      "type": "string",
      "description": "WHY - core problem solved / value."
    },
    "with": {
      "type": "string",
      "description": "WITH - key dependencies and integrations."
    },
    "github_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Your repository URL (inferred from the submission if omitted)."
    },
    "docs_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Documentation URL, if any."
    },
    "watch": {
      "type": "string",
      "description": "Optional seventh W, 'watch': install-risk and provenance, stated factually. What credentials or scopes the tool wants, whether it makes outbound calls, maintainer type (vendor, org, individual), and repo status. Facts only; omit if unknown.",
      "maxLength": 500
    },
    "works_with": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 80
      },
      "maxItems": 5,
      "description": "Optional: up to 5 well-known tools this one is commonly composed WITH (complementary, not alternatives). Names only; resolved to directory entries where they exist."
    },
    "alternatives": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Computed by 6wdb, not author-set: slugs of similar tools you would choose between. Present in the exported dataset; ignored on submission."
    }
  }
}