{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://whataifound.org/entry.schema.json",
  "title": "whataifound.org registry entry",
  "description": "One finding in data/entries.json. Generated from data/vocab.json by scripts/build-schema.py: do not hand-edit. See docs/SCHEMA.md.",
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "id",
      "title",
      "claim",
      "field",
      "date",
      "lab",
      "model",
      "verification",
      "autonomy",
      "sources",
      "added"
    ],
    "additionalProperties": false,
    "properties": {
      "id": {
        "type": "string",
        "pattern": "^[a-z0-9][a-z0-9._-]*$",
        "description": "Stable slug, never reused. YYYY-MM-DD-short-name."
      },
      "title": {
        "type": "string",
        "minLength": 1,
        "description": "Plain and factual. No hype verbs."
      },
      "claim": {
        "type": "string",
        "minLength": 1,
        "description": "One sentence a smart non-expert can read."
      },
      "field": {
        "type": "string",
        "enum": [
          "archaeology",
          "astronomy",
          "biology",
          "chemistry",
          "climate",
          "computer-science",
          "economics",
          "engineering",
          "materials",
          "mathematics",
          "medicine",
          "neuroscience",
          "physics"
        ],
        "description": "A new value needs a display name in data/vocab.json."
      },
      "date": {
        "type": "string",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        "description": "ISO date the result became public."
      },
      "lab": {
        "type": "string",
        "description": "Organization credited. 'Independent' if none."
      },
      "model": {
        "type": "string",
        "description": "Model + version. 'Unknown' if not disclosed."
      },
      "verification": {
        "type": "string",
        "enum": [
          "formal",
          "independent",
          "peer-reviewed",
          "author-verified",
          "claimed",
          "disputed",
          "known",
          "refuted"
        ],
        "description": "One of: `formal` machine-checked proof (e.g. Lean); `independent` checked by third parties who were not the authors; `peer-reviewed` published after peer review; `author-verified` verified only by the people who produced it; `claimed` announced, not independently verified; `disputed` substantive public challenge to the result; `known` correct, but the result already existed in the literature; `refuted` shown to be wrong"
      },
      "autonomy": {
        "type": "string",
        "enum": [
          "autonomous",
          "ai-led",
          "collaborative",
          "ai-assisted",
          "search-scaffold",
          "retrieval"
        ],
        "description": "One of: `autonomous` the AI did it without human problem-setting or steering; `ai-led` the AI produced the core idea; humans framed or checked it; `collaborative` genuine back-and-forth between AI and human; `ai-assisted` humans led; the AI helped with parts; `search-scaffold` a human-built search harness (FunSearch, AlphaEvolve) with an LLM inside; `retrieval` the AI located an existing result rather than producing a new one"
      },
      "sources": {
        "type": "array",
        "minItems": 1,
        "items": {
          "type": "object",
          "required": [
            "label",
            "url",
            "kind"
          ],
          "additionalProperties": false,
          "properties": {
            "label": {
              "type": "string",
              "minLength": 1
            },
            "url": {
              "type": "string",
              "pattern": "^https?://",
              "description": "Must be http(s). Other schemes are rejected by the build."
            },
            "kind": {
              "type": "string",
              "enum": [
                "research",
                "announcement",
                "coverage",
                "commentary",
                "challenge"
              ],
              "description": "One of: `research` the paper, proof, code or data itself; `announcement` the claim as first made public, by whoever made it; `coverage` news and press reporting on the claim; `commentary` analysis by someone not involved; `challenge` the case against the claim"
            }
          }
        },
        "description": "Every link, each labelled with what it is. At least one 'research' source is required for any grade stronger than 'claimed'. Most significant first within a kind."
      },
      "added": {
        "type": "string",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        "description": "ISO date this entry was added to the registry."
      },
      "humans": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Named human collaborators on the discovery."
      },
      "year_posed": {
        "type": "integer",
        "description": "Year the problem was first posed. Omit if there is no single origin year."
      },
      "detail": {
        "type": "string",
        "description": "2-5 sentences. What was actually new."
      },
      "novelty_check": {
        "type": "string",
        "description": "What was searched and what turned up. Write it even when clean."
      },
      "caveats": {
        "type": "string",
        "description": "Known objections, disputes, unreplicated parts."
      },
      "independent_checks": {
        "type": "array",
        "description": "What was checked, by whom, and with what outcome.",
        "items": {
          "type": "object",
          "required": [
            "who",
            "outcome"
          ],
          "additionalProperties": false,
          "properties": {
            "who": {
              "type": "string"
            },
            "outcome": {
              "type": "string"
            },
            "url": {
              "type": "string",
              "pattern": "^https?://"
            }
          }
        }
      },
      "discussion": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "label",
            "url"
          ],
          "additionalProperties": false,
          "properties": {
            "label": {
              "type": "string",
              "minLength": 1
            },
            "url": {
              "type": "string",
              "pattern": "^https?://",
              "description": "Must be http(s). Other schemes are rejected by the build."
            }
          }
        },
        "description": "Threads where the result was debated. Not a substitute for a source."
      },
      "videos": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "label",
            "channel",
            "youtube_id"
          ],
          "additionalProperties": false,
          "properties": {
            "label": {
              "type": "string"
            },
            "channel": {
              "type": "string"
            },
            "youtube_id": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]{11}$"
            }
          }
        },
        "description": "Credible explainers only. Verify the ID resolves."
      },
      "tags": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "contributors": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "name"
          ],
          "additionalProperties": false,
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "description": "As it should appear as credit."
            },
            "github": {
              "type": "string",
              "pattern": "^[A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?$",
              "description": "Bare handle, no @. Becomes a link. Optional."
            },
            "handle": {
              "type": "string",
              "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
              "description": "Their whataifound.org handle, no @. Links to /u/<handle>. Optional."
            },
            "orcid": {
              "type": "string",
              "pattern": "^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$",
              "description": "The identifier that carries weight in a science registry. Optional."
            },
            "note": {
              "type": "string",
              "description": "What they did, e.g. 'verified the Lean proof'."
            }
          }
        },
        "description": "Who added or corrected this registry entry."
      },
      "reviewers": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "name"
          ],
          "additionalProperties": false,
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "description": "As it should appear as credit."
            },
            "github": {
              "type": "string",
              "pattern": "^[A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?$",
              "description": "Bare handle, no @. Becomes a link. Optional."
            },
            "handle": {
              "type": "string",
              "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
              "description": "Their whataifound.org handle, no @. Links to /u/<handle>. Optional."
            },
            "orcid": {
              "type": "string",
              "pattern": "^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$",
              "description": "The identifier that carries weight in a science registry. Optional."
            },
            "note": {
              "type": "string",
              "description": "What they did, e.g. 'verified the Lean proof'."
            }
          }
        },
        "description": "Who independently checked it. Pairs with independent_checks."
      },
      "registrations": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "registry",
            "id",
            "url"
          ],
          "additionalProperties": false,
          "properties": {
            "registry": {
              "type": "string",
              "enum": [
                "mathdb",
                "palomar",
                "proofatlas",
                "vibemathed"
              ],
              "description": "One of: `mathdb` MathDB; `palomar` Palomar; `proofatlas` ProofAtlas; `vibemathed` vibemathed. A new one goes in the 'registries' map in data/vocab.json."
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "description": "The record identifier as that registry issues it, e.g. PALOMAR-2026-08-13-000001."
            },
            "url": {
              "type": "string",
              "pattern": "^https?://",
              "description": "The record's own page. Must be http(s)."
            },
            "title": {
              "type": "string",
              "description": "The record's own title, when it is more use to a reader than the bare identifier. A MathDB id is a number; the problem's name is what someone is actually looking for. Optional."
            },
            "repository": {
              "type": "string",
              "description": "The repository the registration checked, as owner/name. Optional."
            },
            "commit": {
              "type": "string",
              "pattern": "^[0-9a-f]{40}$",
              "description": "Full 40-character commit SHA of the checked snapshot. Anything shorter does not pin it. Optional."
            },
            "theorems": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "The statements the registration certifies, by their formal names. Worth recording precisely: this is where a claim broader than what was proved becomes visible. Optional."
            },
            "checked": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
              "description": "ISO date the registration was made. Optional."
            },
            "note": {
              "type": "string",
              "description": "Anything the record says that the fields above cannot carry, such as a scope limit on what was proved. Optional."
            }
          }
        },
        "description": "Where else this result is registered and what that registration mechanically guarantees. A machine check of one artifact, not a verdict on the finding: nothing ranks an entry by it, and most of the registry is in fields where no such registry exists."
      },
      "revisions": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "date",
            "kind",
            "note"
          ],
          "additionalProperties": false,
          "properties": {
            "date": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
              "description": "ISO date of the edit. Cannot precede the entry's `added`."
            },
            "kind": {
              "type": "string",
              "enum": [
                "regraded",
                "check",
                "challenge",
                "correction"
              ],
              "description": "One of: `regraded` a verification or autonomy grade moved; `check` someone outside the lab checked the result; `challenge` a counterargument was cited; `correction` a factual fix that left the grades alone"
            },
            "note": {
              "type": "string",
              "minLength": 1,
              "description": "What changed and why, in one sentence. Shown verbatim in the activity feed on the home page."
            },
            "url": {
              "type": "string",
              "pattern": "^https?://",
              "description": "What prompted the edit, if there is something to point at. Must be http(s). Optional."
            }
          }
        },
        "description": "What has been edited on this entry since it was added, newest last. This is where editorial rule 2 is recorded: an entry is downgraded and annotated, never deleted, and a regrade belongs here."
      }
    }
  }
}
