{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "$id": "https://pmaronow.github.io/llm-audit/data/schema.json",
 "title": "Corrections data",
 "description": "Schemas for the public data exports; x-exports maps each file to its definition. For findings.csv, validate parsed row objects rather than raw CSV text.",
 "x-exports": {
  "data/registry.jsonl": {
   "$ref": "#/$defs/finding",
   "description": "One finding per line."
  },
  "data/works/Pxxx.json": {
   "$ref": "#/$defs/work_file"
  },
  "data/pre-review.json": {
   "$ref": "#/$defs/pre_review_file"
  },
  "data/comments.json": {
   "$ref": "#/$defs/comments_file"
  },
  "data/identifiers.json": {
   "$ref": "#/$defs/identifiers_file"
  },
  "data/findings.csv": {
   "$ref": "#/$defs/findings_csv_file"
  },
  "data/lean-crosswalk.json": {
   "$ref": "lean-crosswalk.schema.json"
  },
  "data/lean-highlights.json": {
   "$ref": "lean-highlights.schema.json"
  }
 },
 "$defs": {
  "finding": {
   "type": "object",
   "description": "One published correction, clarity note or (rarely) candidate that was examined and not confirmed. One per line in registry.jsonl.",
   "required": [
    "id",
    "url",
    "work_id",
    "work",
    "class",
    "severity",
    "location",
    "headline",
    "text",
    "exhibits",
    "date_published",
    "before_review",
    "revisions",
    "same_defect_as",
    "related_entries",
    "reaches",
    "formal_statements"
   ],
   "properties": {
    "id": {
     "type": "string",
     "pattern": "^P[0-9]{3}(-[A-Z0-9]+)+$",
     "description": "Permanent identifier; also the anchor on the page of the work."
    },
    "url": {
     "type": "string",
     "description": "Permanent address: the page of the work followed by # and the id."
    },
    "work_id": {
     "type": "string",
     "pattern": "^P[0-9]{3}$"
    },
    "work": {
     "type": "object",
     "required": [
      "title",
      "doi",
      "arxiv_id",
      "url"
     ],
     "properties": {
      "title": {
       "type": "string"
      },
      "doi": {
       "type": [
        "string",
        "null"
       ]
      },
      "arxiv_id": {
       "type": [
        "string",
        "null"
       ]
      },
      "url": {
       "type": "string"
      }
     }
    },
    "class": {
     "type": "string",
     "enum": [
      "error",
      "clarity_note",
      "not_confirmed",
      "undetermined",
      "out_of_scope"
     ]
    },
    "severity": {
     "type": [
      "string",
      "null"
     ],
     "enum": [
      "Critical",
      "Major",
      "Moderate",
      "Minor",
      null
     ],
     "description": "Set for class error; null otherwise."
    },
    "evidence_type": {
     "type": [
      "string",
      "null"
     ],
     "description": "What the entry rests on, for example exact_counterexample, complete_derivation, lean_proof, page_check, recalculation_from_source. historical_lean_attribution preserves an old label without claiming certified clause support in the current release."
    },
    "location": {
     "type": "string",
     "description": "Where in the audited edition, in words."
    },
    "printed_page": {
     "type": [
      "string",
      "null"
     ],
     "description": "First printed page or range of the primary source named in location; null if unnumbered or not established. Consult location for additional pages and files."
    },
    "pdf_page": {
     "type": [
      "integer",
      "null"
     ],
     "minimum": 1,
     "description": "One-based PDF page in the primary source named in location (a supplement when named there), from an explicit locator or matching page crop. Null for code/data files, unpaginated Word files or a page not established. Consult location for additional pages and files."
    },
    "headline": {
     "type": "string",
     "description": "The correction in one sentence. Mathematics is TeX between dollar signs."
    },
    "text": {
     "type": "object",
     "description": "The parts of the entry in the restricted LaTeX in which they were written; \\hl{...} marks the term at issue.",
     "properties": {
      "as_printed": {
       "type": "string"
      },
      "problem": {
       "type": "string"
      },
      "intended_meaning": {
       "type": "string"
      },
      "evidence": {
       "type": "string"
      },
      "what_survives": {
       "type": "string"
      },
      "reason": {
       "type": "string"
      },
      "corrected": {
       "type": "string"
      }
     },
     "additionalProperties": false
    },
    "exhibits": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "url",
       "caption",
       "alt"
      ],
      "additionalProperties": false,
      "properties": {
       "url": {
        "type": "string"
       },
       "caption": {
        "type": "string"
       },
       "alt": {
        "type": "string"
       }
      }
     }
    },
    "date_published": {
     "type": "string",
     "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
    },
    "before_review": {
     "type": [
      "object",
      "null"
     ],
     "description": "The class and severity before my review, when they differ from the present ones; null otherwise. The same entry is in data/pre-review.json.",
     "required": [
      "class",
      "severity"
     ],
     "additionalProperties": false,
     "properties": {
      "class": {
       "type": [
        "string",
        "null"
       ]
      },
      "severity": {
       "type": [
        "string",
        "null"
       ],
       "enum": [
        "Critical",
        "Major",
        "Moderate",
        "Minor",
        null
       ]
      }
     }
    },
    "revisions": {
     "type": "array",
     "description": "Revisions of the entry, in order: the classification before and after, and a substantive explanation of the change. Empty for most entries.",
     "items": {
      "type": "object",
      "required": [
       "classification_before",
       "classification_after",
       "note"
      ],
      "additionalProperties": false,
      "properties": {
       "classification_before": {
        "type": "object",
        "required": [
         "class",
         "severity"
        ],
        "additionalProperties": false,
        "properties": {
         "class": {
          "type": "string",
          "enum": [
           "error",
           "clarity_note",
           "not_confirmed",
           "undetermined",
           "out_of_scope"
          ]
         },
         "severity": {
          "type": [
           "string",
           "null"
          ],
          "enum": [
           "Critical",
           "Major",
           "Moderate",
           "Minor",
           null
          ]
         }
        }
       },
       "classification_after": {
        "type": "object",
        "required": [
         "class",
         "severity"
        ],
        "additionalProperties": false,
        "properties": {
         "class": {
          "type": "string",
          "enum": [
           "error",
           "clarity_note",
           "not_confirmed",
           "undetermined",
           "out_of_scope"
          ]
         },
         "severity": {
          "type": [
           "string",
           "null"
          ],
          "enum": [
           "Critical",
           "Major",
           "Moderate",
           "Minor",
           null
          ]
         }
        }
       },
       "note": {
        "type": "string",
        "description": "Plain text; mathematics is TeX between dollar signs."
       },
       "date": {
        "type": "string"
       },
       "reason": {
        "type": "string"
       },
       "evidence": {
        "type": "array",
        "items": {
         "$ref": "lean-crosswalk.schema.json#/$defs/evidence"
        }
       }
      }
     }
    },
    "formal_statements": {
     "type": "array",
     "description": "Formal statements in Lean concerning this entry, with links to their targets on the work page.",
     "items": {
      "type": "object",
      "required": [
       "id",
       "url"
      ],
      "additionalProperties": false,
      "properties": {
       "id": {
        "type": "string",
        "pattern": "^P[0-9]{3}-T[0-9]+$"
       },
       "url": {
        "type": "string"
       },
       "clause": {
        "type": "string"
       },
       "claim_revision_id": {
        "type": "string"
       },
       "support_scope": {
        "type": "string",
        "enum": [
         "full",
         "partial",
         "related"
        ]
       },
       "release_id": {
        "type": "string"
       }
      }
     }
    },
    "same_defect_as": {
     "type": "array",
     "description": "Published entries of the same class concerning the same defect. Neutral associations are in related_entries. May concern this work or another work.",
     "items": {
      "type": "object",
      "required": [
       "id",
       "work_id",
       "url"
      ],
      "additionalProperties": false,
      "properties": {
       "id": {
        "type": "string"
       },
       "work_id": {
        "type": "string",
        "pattern": "^P[0-9]{3}$"
       },
       "url": {
        "type": "string"
       }
      }
     }
    },
    "related_entries": {
     "type": "array",
     "description": "Neutral links to related published entries, including associations between different classes; does not assert the same defect or an implementation error.",
     "items": {
      "type": "object",
      "required": [
       "id",
       "work_id",
       "url"
      ],
      "additionalProperties": false,
      "properties": {
       "id": {
        "type": "string"
       },
       "work_id": {
        "type": "string",
        "pattern": "^P[0-9]{3}$"
       },
       "url": {
        "type": "string"
       }
      }
     }
    },
    "reaches": {
     "type": "array",
     "description": "Where this entry bears on a related work, or on a software package that implements the method. Cases in which the related work does not use the affected passage are left out.",
     "items": {
      "type": "object",
      "required": [
       "to",
       "work_id",
       "package",
       "url",
       "effect",
       "effect_text",
       "recorded_as",
       "where",
       "explanation"
      ],
      "additionalProperties": false,
      "properties": {
       "to": {
        "type": "string",
        "enum": [
         "work",
         "package"
        ]
       },
       "work_id": {
        "type": [
         "string",
         "null"
        ],
        "description": "The related work; for a package, the work whose method it implements."
       },
       "package": {
        "type": [
         "string",
         "null"
        ]
       },
       "url": {
        "type": [
         "string",
         "null"
        ],
        "description": "The page of the related work."
       },
       "effect": {
        "type": "string",
        "enum": [
         "cannot_determine",
         "implementation_differs_from_paper",
         "implementation_wrong",
         "result_fails",
         "result_needs_same_repair",
         "same_error_restated",
         "uses_only_what_survives"
        ],
        "description": "One of: cannot_determine = could not be determined; implementation_differs_from_paper = the code implements something other than the printed method; implementation_wrong = the package or replication code has the reported defect; result_fails = a result or code path there relies on it and fails with it; result_needs_same_repair = a result or code path there needs the same repair; same_error_restated = a corresponding statement is printed there; uses_only_what_survives = relies only on the part that survives."
       },
       "effect_text": {
        "type": "string"
       },
       "recorded_as": {
        "type": [
         "string",
         "null"
        ],
        "description": "The published entry under the related work that records it, if there is one."
       },
       "where": {
        "type": [
         "string",
         "null"
        ]
       },
       "explanation": {
        "type": [
         "string",
         "null"
        ]
       }
      }
     }
    },
    "subject": {
     "type": "string",
     "enum": [
      "paper",
      "audit"
     ]
    },
    "target_ids": {
     "type": "array",
     "items": {
      "type": "string",
      "pattern": "^P[0-9]{3}-T[0-9]+$"
     },
     "uniqueItems": true
    },
    "formal_release": {
     "type": [
      "string",
      "null"
     ]
    },
    "date_modified": {
     "type": "string",
     "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$"
    },
    "publication_state": {
     "type": "string",
     "enum": [
      "accepted",
      "draft"
     ]
    },
    "historical_evidence_type": {
     "type": "string",
     "enum": [
      "lean_proof"
     ]
    },
    "headline_claim_ids": {
     "type": "array",
     "items": {
      "type": "string"
     },
     "uniqueItems": true
    },
    "author_review_state": {
     "type": "string",
     "enum": [
      "pending",
      "approved",
      "not_required"
     ]
    }
   },
   "additionalProperties": false
  },
  "work": {
   "type": "object",
   "required": [
    "id",
    "url",
    "title",
    "authors",
    "venue",
    "year",
    "type",
    "category",
    "citation",
    "doi",
    "arxiv_id",
    "edition",
    "audit_complete",
    "later_materials"
   ],
   "properties": {
    "id": {
     "type": "string",
     "pattern": "^P[0-9]{3}$"
    },
    "url": {
     "type": "string"
    },
    "title": {
     "type": "string"
    },
    "authors": {
     "type": "array",
     "items": {
      "type": "string"
     }
    },
    "venue": {
     "type": [
      "string",
      "null"
     ]
    },
    "year": {
     "type": [
      "string",
      "null"
     ]
    },
    "type": {
     "type": [
      "string",
      "null"
     ]
    },
    "category": {
     "type": [
      "string",
      "null"
     ]
    },
    "citation": {
     "type": "string"
    },
    "doi": {
     "type": [
      "string",
      "null"
     ]
    },
    "arxiv_id": {
     "type": [
      "string",
      "null"
     ]
    },
    "edition": {
     "type": "object",
     "description": "The edition that was audited.",
     "required": [
      "venue",
      "year",
      "pages_in_audited_file",
      "sha256",
      "source_url"
     ],
     "additionalProperties": false,
     "properties": {
      "venue": {
       "type": [
        "string",
        "null"
       ]
      },
      "year": {
       "type": [
        "string",
        "null"
       ]
      },
      "pages_in_audited_file": {
       "type": [
        "integer",
        "null"
       ]
      },
      "sha256": {
       "type": [
        "string",
        "null"
       ]
      },
      "source_url": {
       "type": [
        "string",
        "null"
       ]
      }
     }
    },
    "audit_complete": {
     "type": "boolean",
     "description": "False while the audit of this work is still in progress."
    },
    "later_materials": {
     "type": [
      "object",
      "null"
     ],
     "description": "Published entries informed by replication materials. Values recomputed from such materials come from the public release of the data, not from the authors’ own files.",
     "required": [
      "related_entries"
     ],
     "additionalProperties": false,
     "properties": {
      "related_entries": {
       "type": "array",
       "items": {
        "type": "string",
        "pattern": "^P[0-9]{3}(-[A-Z0-9]+)+$",
        "description": "Permanent identifier; also the anchor on the page of the work."
       },
       "description": "Identifiers of published entries based on or checked against these materials, including existing entries."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "work_file": {
   "type": "object",
   "description": "data/works/Pxxx.json: a work, its published findings, and what was checked. An empty list of findings is not a finding of correctness.",
   "required": [
    "work",
    "findings",
    "summary",
    "what_was_checked",
    "claims",
    "missing_sources",
    "reproduction",
    "lean",
    "date_published"
   ],
   "properties": {
    "work": {
     "$ref": "#/$defs/work"
    },
    "findings": {
     "type": "array",
     "items": {
      "$ref": "#/$defs/finding"
     }
    },
    "summary": {
     "type": [
      "string",
      "null"
     ],
     "description": "Restricted LaTeX."
    },
    "what_was_checked": {
     "type": [
      "string",
      "null"
     ],
     "description": "Restricted LaTeX."
    },
    "claims": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "claim_id",
       "claim",
       "tied_to",
       "related_corrections"
      ],
      "additionalProperties": false,
      "properties": {
       "claim_id": {
        "type": "string",
        "description": "Identifier of the headline claim in this work."
       },
       "claim": {
        "type": "string",
        "description": "Public wording of the paper’s claim, with mathematics as TeX between dollar signs."
       },
       "tied_to": {
        "type": [
         "string",
         "null"
        ],
        "description": "Location of the claim in the paper, with mathematics as TeX between dollar signs when needed."
       },
       "related_corrections": {
        "type": "array",
        "description": "Identifiers of published errors and clarity notes concerning the claim; excludes entries examined and not confirmed.",
        "items": {
         "type": "string",
         "pattern": "^P[0-9]{3}(-[A-Z0-9]+)+$",
         "description": "Permanent identifier; also the anchor on the page of the work."
        }
       }
      }
     }
    },
    "missing_sources": {
     "type": "array",
     "items": {
      "type": "string"
     }
    },
    "reproduction": {
     "type": [
      "object",
      "null"
     ],
     "required": [
      "status",
      "agreement",
      "targets"
     ],
     "additionalProperties": false,
     "properties": {
      "status": {
       "type": [
        "string",
        "null"
       ]
      },
      "agreement": {
       "type": [
        "string",
        "null"
       ]
      },
      "summary": {
       "type": [
        "string",
        "null"
       ],
       "description": "Summary of the reproduction, as restricted LaTeX."
      },
      "targets": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "target",
         "location",
         "method",
         "status",
         "agreement"
        ],
        "additionalProperties": false,
        "properties": {
         "target": {
          "type": "string"
         },
         "location": {
          "type": [
           "string",
           "null"
          ]
         },
         "method": {
          "type": [
           "string",
           "null"
          ]
         },
         "status": {
          "type": [
           "string",
           "null"
          ]
         },
         "agreement": {
          "type": [
           "string",
           "null"
          ]
         }
        }
       }
      }
     }
    },
    "lean": {
     "type": [
      "object",
      "null"
     ],
     "required": [
      "applicable",
      "targets"
     ],
     "additionalProperties": false,
     "description": "Formal statements in Lean, grouped by target.",
     "properties": {
      "applicable": {
       "type": "boolean"
      },
      "reason": {
       "type": [
        "string",
        "null"
       ]
      },
      "repository": {
       "type": [
        "string",
        "null"
       ],
       "description": "The Lean repository llm-audit-lean, which holds the sources of the declarations."
      },
      "guide": {
       "type": [
        "string",
        "null"
       ],
       "description": "The guide to this work’s formal statements in the Lean repository."
      },
      "targets": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "id",
         "url",
         "text",
         "html",
         "declarations"
        ],
        "additionalProperties": false,
        "properties": {
         "id": {
          "type": "string",
          "pattern": "^P[0-9]{3}-T[0-9]+$",
          "description": "Permanent identifier of the target; also the anchor on the page of the work."
         },
         "url": {
          "type": "string"
         },
         "text": {
          "type": [
           "object",
           "null"
          ],
          "description": "What the statement asserts, as plain text with mathematics as TeX between dollar signs.",
          "required": [
           "headline",
           "location",
           "body"
          ],
          "additionalProperties": false,
          "properties": {
           "headline": {
            "type": [
             "string",
             "null"
            ]
           },
           "location": {
            "type": [
             "string",
             "null"
            ]
           },
           "body": {
            "type": [
             "string",
             "null"
            ]
           }
          }
         },
         "html": {
          "type": [
           "object",
           "null"
          ],
          "description": "The same text as HTML with the mathematics rendered (KaTeX HTML and MathML).",
          "required": [
           "headline",
           "location",
           "body"
          ],
          "additionalProperties": false,
          "properties": {
           "headline": {
            "type": [
             "string",
             "null"
            ]
           },
           "location": {
            "type": [
             "string",
             "null"
            ]
           },
           "body": {
            "type": [
             "string",
             "null"
            ]
           }
          }
         },
         "declarations": {
          "type": "array",
          "description": "The Lean declarations for this target; several can share one target.",
          "items": {
           "type": "object",
           "required": [
            "lean_name",
            "source",
            "status",
            "conditional_on",
            "named_axioms",
            "says"
           ],
           "additionalProperties": false,
           "properties": {
            "source": {
             "type": [
              "string",
              "null"
             ],
             "description": "The declaration in the Lean repository llm-audit-lean, at the published commit: its file, at the line where it begins."
            },
            "conditional_on": {
             "type": "array",
             "items": {
              "type": "string"
             },
             "description": "For a declaration proved with well-known published theorems taken as explicit hypotheses: the theorems assumed, with their sources. Empty otherwise."
            },
            "lean_name": {
             "type": [
              "string",
              "null"
             ]
            },
            "status": {
             "type": "string",
             "enum": [
              "statement_drafted",
              "statement_checked",
              "proved",
              "proved_modulo_named_axioms",
              "counterexample_proved",
              "not_stated",
              "not_applicable"
             ],
             "description": "A declaration that contains sorry is never given a proved status."
            },
            "named_axioms": {
             "type": "array",
             "items": {
              "type": "string"
             }
            },
            "says": {
             "type": [
              "string",
              "null"
             ],
             "description": "Description of the formal statement when no separate target text is provided."
            },
            "fidelity_status_baseline": {
             "type": [
              "string",
              "null"
             ],
             "enum": [
              "ok",
              "narrower",
              "wrong_credit",
              null
             ]
            },
            "credit_status": {
             "type": [
              "string",
              "null"
             ],
             "enum": [
              "ok",
              "narrower",
              "wrong_credit",
              null
             ]
            },
            "credit_reason": {
             "type": "string"
            },
            "used_in_solution": {
             "type": [
              "boolean",
              "null"
             ]
            },
            "support_scope": {
             "type": "string"
            },
            "claim_revision_id": {
             "type": "string"
            },
            "manifest_use": {
             "type": "string",
             "enum": [
              "used",
              "not_used",
              "not_listed",
              "not_applicable"
             ]
            }
           }
          }
         },
         "formalization": {
          "$ref": "lean-crosswalk.schema.json#/$defs/formalization"
         }
        }
       }
      }
     }
    },
    "date_published": {
     "type": "string",
     "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
    }
   },
   "additionalProperties": false
  },
  "pre_review_file": {
   "type": "object",
   "description": "data/pre-review.json: the classification before my review of each published entry whose classification has changed since.",
   "required": [
    "about",
    "findings"
   ],
   "additionalProperties": false,
   "properties": {
    "about": {
     "type": "string"
    },
    "findings": {
     "type": "object",
     "description": "Keyed by the id of the entry.",
     "additionalProperties": {
      "type": "object",
      "required": [
       "id",
       "class",
       "severity"
      ],
      "additionalProperties": false,
      "properties": {
       "id": {
        "type": "string"
       },
       "class": {
        "type": [
         "string",
         "null"
        ]
       },
       "severity": {
        "type": [
         "string",
         "null"
        ]
       }
      }
     }
    }
   }
  },
  "comment": {
   "type": "object",
   "description": "My latest comment on a published entry, with its suggestion and evaluation outcomes.",
   "required": [
    "id",
    "work_id",
    "url",
    "comment",
    "suggestion",
    "classification_before_review",
    "classification_after_evaluation",
    "classification_now",
    "outcome",
    "outcome_text",
    "disagreement"
   ],
   "additionalProperties": false,
   "properties": {
    "id": {
     "type": "string",
     "pattern": "^P[0-9]{3}(-[A-Z0-9]+)+$",
     "description": "Permanent identifier; also the anchor on the page of the work."
    },
    "work_id": {
     "type": "string",
     "pattern": "^P[0-9]{3}$"
    },
    "url": {
     "type": "string"
    },
    "comment": {
     "type": "string",
     "description": "My comment exactly as last saved, as Markdown with LaTeX mathematics."
    },
    "suggestion": {
     "type": [
      "string",
      "null"
     ]
    },
    "classification_before_review": {
     "type": "object",
     "required": [
      "class",
      "severity"
     ],
     "additionalProperties": false,
     "properties": {
      "class": {
       "type": "string",
       "enum": [
        "error",
        "clarity_note",
        "not_confirmed",
        "undetermined",
        "out_of_scope"
       ]
      },
      "severity": {
       "type": [
        "string",
        "null"
       ],
       "enum": [
        "Critical",
        "Major",
        "Moderate",
        "Minor",
        null
       ],
       "description": "Set for class error; null otherwise."
      }
     }
    },
    "classification_after_evaluation": {
     "type": "object",
     "required": [
      "class",
      "severity"
     ],
     "additionalProperties": false,
     "properties": {
      "class": {
       "type": "string",
       "enum": [
        "error",
        "clarity_note",
        "not_confirmed",
        "undetermined",
        "out_of_scope"
       ]
      },
      "severity": {
       "type": [
        "string",
        "null"
       ],
       "enum": [
        "Critical",
        "Major",
        "Moderate",
        "Minor",
        null
       ],
       "description": "Set for class error; null otherwise."
      }
     }
    },
    "classification_now": {
     "type": "object",
     "required": [
      "class",
      "severity"
     ],
     "additionalProperties": false,
     "properties": {
      "class": {
       "type": "string",
       "enum": [
        "error",
        "clarity_note",
        "not_confirmed",
        "undetermined",
        "out_of_scope"
       ]
      },
      "severity": {
       "type": [
        "string",
        "null"
       ],
       "enum": [
        "Critical",
        "Major",
        "Moderate",
        "Minor",
        null
       ],
       "description": "Set for class error; null otherwise."
      }
     }
    },
    "outcome": {
     "type": [
      "string",
      "null"
     ],
     "enum": [
      "incorporated",
      "incorporated_in_part",
      "no_change",
      "not_adopted",
      null
     ]
    },
    "outcome_text": {
     "type": [
      "string",
      "null"
     ]
    },
    "disagreement": {
     "type": [
      "object",
      "null"
     ],
     "required": [
      "models_position"
     ],
     "additionalProperties": false,
     "properties": {
      "models_position": {
       "type": [
        "string",
        "null"
       ]
      }
     }
    }
   }
  },
  "comments_file": {
   "type": "object",
   "description": "data/comments.json: my latest comments on published entries and their evaluation outcomes.",
   "required": [
    "about",
    "comments"
   ],
   "additionalProperties": false,
   "properties": {
    "about": {
     "type": "string"
    },
    "comments": {
     "type": "array",
     "items": {
      "$ref": "#/$defs/comment"
     }
    }
   }
  },
  "identifiers_file": {
   "type": "object",
   "description": "data/identifiers.json: DOI and arXiv mappings keyed by the lowercased identifier; values retain its original spelling.",
   "required": [
    "doi",
    "arxiv"
   ],
   "additionalProperties": false,
   "properties": {
    "doi": {
     "type": "object",
     "propertyNames": {
      "pattern": "^[^A-Z]*$"
     },
     "additionalProperties": {
      "type": "object",
      "required": [
       "work_id",
       "url",
       "data",
       "doi"
      ],
      "additionalProperties": false,
      "properties": {
       "work_id": {
        "type": "string",
        "pattern": "^P[0-9]{3}$"
       },
       "url": {
        "type": "string",
        "description": "The public page of the work."
       },
       "data": {
        "type": "string",
        "description": "The data/works/Pxxx.json file for the work."
       },
       "doi": {
        "type": "string",
        "description": "The identifier with its original spelling."
       }
      }
     }
    },
    "arxiv": {
     "type": "object",
     "propertyNames": {
      "pattern": "^[^A-Z]*$"
     },
     "additionalProperties": {
      "type": "object",
      "required": [
       "work_id",
       "url",
       "data",
       "arxiv_id"
      ],
      "additionalProperties": false,
      "properties": {
       "work_id": {
        "type": "string",
        "pattern": "^P[0-9]{3}$"
       },
       "url": {
        "type": "string",
        "description": "The public page of the work."
       },
       "data": {
        "type": "string",
        "description": "The data/works/Pxxx.json file for the work."
       },
       "arxiv_id": {
        "type": "string",
        "description": "The identifier with its original spelling."
       }
      }
     }
    }
   }
  },
  "findings_csv_row": {
   "type": "object",
   "description": "One findings.csv row parsed as an object keyed by the header. All cells are strings; missing or null values are empty cells. Mathematics remains TeX.",
   "required": [
    "id",
    "work_id",
    "work_title",
    "doi",
    "arxiv_id",
    "class",
    "severity",
    "evidence_type",
    "printed_page",
    "pdf_page",
    "location",
    "headline",
    "url",
    "date_published",
    "subject",
    "target_ids",
    "formal_release",
    "date_modified"
   ],
   "additionalProperties": false,
   "properties": {
    "id": {
     "type": "string",
     "description": "From finding.id; null or missing values become an empty cell."
    },
    "work_id": {
     "type": "string",
     "description": "From finding.work_id; null or missing values become an empty cell."
    },
    "work_title": {
     "type": "string",
     "description": "From finding.work.title; null or missing values become an empty cell."
    },
    "doi": {
     "type": "string",
     "description": "From finding.work.doi; null or missing values become an empty cell."
    },
    "arxiv_id": {
     "type": "string",
     "description": "From finding.work.arxiv_id; null or missing values become an empty cell."
    },
    "class": {
     "type": "string",
     "description": "From finding.class; null or missing values become an empty cell."
    },
    "severity": {
     "type": "string",
     "description": "From finding.severity; null or missing values become an empty cell."
    },
    "evidence_type": {
     "type": "string",
     "description": "From finding.evidence_type; null or missing values become an empty cell."
    },
    "printed_page": {
     "type": "string",
     "description": "From finding.printed_page; null or missing values become an empty cell."
    },
    "pdf_page": {
     "type": "string",
     "description": "From finding.pdf_page; null or missing values become an empty cell."
    },
    "location": {
     "type": "string",
     "description": "From finding.location; null or missing values become an empty cell."
    },
    "headline": {
     "type": "string",
     "description": "From finding.headline; null or missing values become an empty cell."
    },
    "url": {
     "type": "string",
     "description": "From finding.url; null or missing values become an empty cell."
    },
    "date_published": {
     "type": "string",
     "description": "From finding.date_published; null or missing values become an empty cell."
    },
    "subject": {
     "type": "string"
    },
    "target_ids": {
     "type": "string",
     "description": "JSON array of target IDs; missing values are an empty cell."
    },
    "formal_release": {
     "type": "string"
    },
    "date_modified": {
     "type": "string"
    }
   }
  },
  "findings_csv_file": {
   "type": "array",
   "description": "data/findings.csv after CSV parsing into row objects: UTF-8, comma separated, with a header in the order given by x-columns. One row per published finding.",
   "items": {
    "$ref": "#/$defs/findings_csv_row"
   },
   "x-columns": [
    "id",
    "work_id",
    "work_title",
    "doi",
    "arxiv_id",
    "class",
    "severity",
    "evidence_type",
    "printed_page",
    "pdf_page",
    "location",
    "headline",
    "url",
    "date_published"
   ]
  }
 },
 "$ref": "#/$defs/finding"
}
