MAXGEN schema · v1.13

MaxRecord

A source document exactly as it was found. No interpretation added.

Download MaxRecord v1.13 All versions https://opengenealogyai.org/schemas/maxgen/v1/raw-record.schema.json

The clerk who could not spell

In 1743 a parish clerk in Dumfriesshire wrote a baptism into his register and spelled the father's surname "Makeswell". The family's name was Maxwell. He was not wrong in any way that matters: he wrote what he heard, in the spelling of his day. Three centuries later a search engine that does not know Makeswell is Maxwell will skip the entry, and a researcher will lose a branch of her family because of a spelling choice made by a man dead for 250 years.

MaxRecord exists to keep that entry exactly as written. Not corrected. Not normalised. Not interpreted.

What it is

MaxRecord is the evidence layer. One MaxRecord is one document: a baptism entry, a census page, a gravestone, a ship manifest, a newspaper notice, a will. It stores what is on the document, who is mentioned, when and where it was made, where the copy came from, and who transcribed it with what confidence.

What it never does is say what the document means. The record says "Makeswell". Whether Makeswell is Maxwell is an interpretation, and interpretations live in MaxPerson. Keeping the two apart is what lets a future researcher, or a better AI model, look at the original evidence again.

How it is used

  1. A document image is transcribed; the who-read-it-and-how details go in a MaxRecognition record.
  2. A MaxRecord is created from that transcription: the type of document, every person named (persons_mentioned[], with their roles: subject, spouse, witness, officiant…), the date as a range, the place as written, the source URL, the licence.
  3. Every claim later made in a MaxPerson cites this record's record_id. If the document turns out to be a forgery, the record is retracted with a note. It keeps its ID and its history.

Things worth knowing

Record types

birth_certificate death_certificate marriage_certificate census_row parish_register probate_record military_record immigration_record naturalization_record land_deed land_patent gravestone obituary newspaper_article photograph family_bible court_record tax_record wikidata_entity open_library_work dpla_item other

Fields

FieldTypeMeaning
record_id requiredstringGlobally unique identifier for this record.
schema_version const "1.13"MAXGEN version this record conforms to.
record_type requiredenumThe type of source document.
redistribution_license requiredenumWhether this record can be redistributed.
is_living_flag requiredbooleanTrue if any person in this record may be living.
persons_mentioned array of objectAll persons referenced in this document, as written in the source.
alternate_names array of stringVariant spellings or alternate names for persons mentioned, as they appear across multiple documents.
record_date objectDate range of the event recorded.
locations array of objectMAXGEN v1.12 — Places associated with this record.
transcription stringFull text transcription of the document content.
language stringBCP-47 language code of the document (e.g.
image_url stringURL to the scanned image of the original document.
source_url requiredstringCanonical URL of the source (e.g.
digital_object_id stringPersistent identifier such as ARK, DOI, or Internet Archive identifier.
repository stringName of the archive or repository holding the original document.
collection stringCollection name within the repository.
extraction_confidence requirednumberConfidence that the transcription accurately reflects the original document.
extracted_by stringAgent ID or contributor ID that produced this RawRecord.
extracted_at stringISO 8601 timestamp of extraction.
sensitive_data_redacted booleanTrue if SSNs, medical data, or other sensitive fields were removed.
redaction_notes stringDescription of what was redacted and why.
archive_ref stringMAXGEN v1.12 — Local archive path where this record's canonical MaxRecord JSON file is stored (e.g.
extensions objectMAXGEN v1.12 — Designated namespace for source-specific fields that don't fit the core schema.
attribution objectv1.8 — Credit for the human who originally created, photographed, transcribed, or donated this record.

Example

A marriage certificate, as a MaxRecord. This is one of the fixtures the schema is tested against.

{
  "record_id": "a1b2c3d4-0003-4000-8000-000000000003",
  "schema_version": "1.13",
  "record_type": "marriage_certificate",
  "redistribution_license": "CC0",
  "is_living_flag": false,
  "persons_mentioned": [
    {
      "name_as_written": "Abraham Lincoln",
      "role": "subject"
    },
    {
      "name_as_written": "Mary Todd",
      "role": "spouse"
    },
    {
      "name_as_written": "Rev. Charles Dresser",
      "role": "officiant"
    },
    {
      "name_as_written": "James Matheny",
      "role": "witness"
    }
  ],
  "record_date": {
    "year_min": 1842,
    "year_max": 1842,
    "month": 11,
    "day": 4,
    "date_type": "exact"
  },
  "transcription": "Abraham Lincoln and Mary Todd were united in marriage on the 4th day of November 1842 by Rev. Charles Dresser in the presence of James Matheny.",
  "language": "en",
  "source_url": "https://archive.org/details/illinois-marriage-1842-sangamon",
  "extraction_confidence": 0.97,
  "extracted_by": "extractor-agent-haiku-001",
  "extracted_at": "2026-05-01T14:00:00Z",
  "sensitive_data_redacted": false,
  "locations": [
    {
      "location_type": "event_location",
      "place_as_written": "Springfield, Illinois",
      "country_code": "US",
      "state_province": "Illinois",
      "city_town": "Springfield"
    }
  ]
}

Listen

Episode 1

MaxRecord — Source documents as written

25:40

Evidence versus interpretation, and why the clerk who wrote 'Makeswell' must never be corrected.