{
  "schema_version": 1,
  "generated_by": "scripts/build_site.py:build_hierarchy_jsonl",
  "prime_count": 654,
  "edge_count": 914,
  "description": "One JSON record per prime in the Encyclopedia of Abstractions. Each record carries the prime's identity (slug, name, type, categories, origin_domain[s], aliases), its curated one_liner, the first paragraph of its Core Idea, and an inlined `parents` list capturing every typed DAG edge for which this prime is the child. The whole DAG is represented; children are recoverable from parents (each edge appears once, on the child side).",
  "schema": {
    "slug": "string — canonical slug",
    "name": "string — display name",
    "type": "string — 'prime' or 'emergent_prime'",
    "categories": "list[string]",
    "origin_domain": "string",
    "origin_subdomain": "string (optional — only present when set)",
    "alternate_origin_domains": "list[string]",
    "aliases": "list[string]",
    "one_liner": "string — curated short description",
    "core_idea": "string — first paragraph of ## Core Idea, whitespace-normalized",
    "parents": "list[object] with fields: slug, name, edge_type, edge_flavor, qualifier, reason_short, reason"
  },
  "edge_types": {
    "subsumption": "child is-a-kind-of parent",
    "composition (flavor=presupposes)": "child structurally presupposes parent",
    "composition (flavor=part_of)": "child is a part of parent",
    "decompose": "parent decomposes into child + siblings",
    "mutual": "child and parent are co-defined / mutually presupposing"
  }
}