{
  "release": "20261013-v6.1",
  "format": {
    "pattern": "^T[0-9A-HJKMNP-TV-Z]{7}$",
    "alphabet": "0123456789ABCDEFGHJKMNPQRSTVWXYZ",
    "check": "Luhn mod 32 over the 6 characters after T",
    "input": "any case; spaces and hyphens ignored; I and L read as 1, O as 0",
    "url": "https://alto.tfwelch.com/tree/{number}"
  },
  "minted": 4200336,
  "by_kind": {
    "crown": 3523098,
    "earlier_detection": 625515,
    "record": 51723
  },
  "members": {
    "marker": 4200336,
    "member": 2038080,
    "merged": 4
  },
  "aliases": {
    "keys": 19376165,
    "by_type": {
      "tree_id": 6238420,
      "seg_key_v4": 5576618,
      "number": 4200336,
      "seg_key_v5": 3352852,
      "tree_id_deleted": 7405,
      "seg_key_seeded_v52": 534
    },
    "by_status": {
      "current": 16090609,
      "member": 2038080,
      "retired": 1058072,
      "split": 189399,
      "merged": 5
    },
    "files": 65536,
    "bytes": 401366913,
    "largest_file_bytes": 7737
  },
  "rules": [
    "One number per map tree: each crown on the map (with its representative and every record on it), each record or earlier LiDAR detection with a marker of its own.",
    "Numbers are random (OS CSPRNG), checked against every number ever issued, and never reused; nothing about a tree is encoded in its number.",
    "akl_tree_* record IDs stay the immutable record IDs. Every record ID, crown key and number ever published resolves through data/tree_ids.",
    "Later releases carry numbers over: a crown that continues (at least half of it in one new crown, no other holding a fifth) keeps its number; a merge keeps the number with external references, corrections or a source record (else the largest overlap) and marks the others merged; a split keeps the number on the part with the representative record and lists the parts; a tree with no successor is retired with a reason and its last position. A change of representative alone never changes a number."
  ],
  "url": "https://alto.tfwelch.com/tree/{number}"
}
