{
  "metadata": {
    "title": "Mountainash TreeSpec Concept Graph",
    "description": "A concept dependency graph for the mountainash-treespec bidirectional hierarchical data transformation library. 100 concepts across 9 categories covering spec model, flatten/build engines, batch processing, schema handling, format handlers, type system, and hooks.",
    "creator": "Nathaniel Ramm",
    "date": "2026-06-03",
    "version": "1.0",
    "format": "Learning Graph JSON v1.0",
    "schema": "https://raw.githubusercontent.com/dmccreary/learning-graphs/refs/heads/main/src/schema/learning-graph-schema.json",
    "license": "CC BY-NC-SA 4.0 DEED",
    "source_commit": "d99923685d3cd9c4f58290d14f76bfc1175520c5",
    "profile_dir": "03.profile/mountainash-treespec"
  },
  "groups": {
    "FOUND": {
      "classifierName": "Foundation Concepts",
      "color": "SteelBlue",
      "font": {
        "color": "white"
      }
    },
    "SPEC": {
      "classifierName": "Spec Model",
      "color": "DarkSlateBlue",
      "font": {
        "color": "white"
      }
    },
    "FLAT": {
      "classifierName": "Flatten Engine",
      "color": "DarkGreen",
      "font": {
        "color": "white"
      }
    },
    "BUILD": {
      "classifierName": "Build Engine",
      "color": "LimeGreen",
      "font": {
        "color": "black"
      }
    },
    "BATCH": {
      "classifierName": "Batch Processing",
      "color": "Gold",
      "font": {
        "color": "black"
      }
    },
    "SCHEMA": {
      "classifierName": "Schema Handling",
      "color": "Teal",
      "font": {
        "color": "white"
      }
    },
    "FMT": {
      "classifierName": "Format Handlers",
      "color": "MediumPurple",
      "font": {
        "color": "white"
      }
    },
    "TYPES": {
      "classifierName": "Type System",
      "color": "Orange",
      "font": {
        "color": "black"
      }
    },
    "HOOKS": {
      "classifierName": "Hooks System",
      "color": "Crimson",
      "font": {
        "color": "white"
      }
    }
  },
  "nodes": [
    {
      "id": 1,
      "label": "Hierarchical Data",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 2,
      "label": "Relational Tables",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 3,
      "label": "Tree to Table Decomposition",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 4,
      "label": "Round Trip Fidelity",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 5,
      "label": "Python Dataclasses",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 6,
      "label": "Python Protocols",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 7,
      "label": "Polars DataFrames",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 8,
      "label": "PyArrow Tables",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 9,
      "label": "Foreign Keys",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 10,
      "label": "Primary Keys",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 11,
      "label": "YAML Configuration",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 12,
      "label": "Decorator Pattern",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 13,
      "label": "TreeSpec Dataclass",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 0.85
    },
    {
      "id": 14,
      "label": "MetaConfig",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 1.0
    },
    {
      "id": 15,
      "label": "SettingsConfig",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 1.0
    },
    {
      "id": 16,
      "label": "NodeSpec Dataclass",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 0.85
    },
    {
      "id": 17,
      "label": "ChildSpec Dataclass",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 0.85
    },
    {
      "id": 18,
      "label": "RoutingConfig",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 1.0
    },
    {
      "id": 19,
      "label": "RoutingRule",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 1.0
    },
    {
      "id": 20,
      "label": "PivotEntry",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 1.0
    },
    {
      "id": 21,
      "label": "BatchingConfig",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 1.0
    },
    {
      "id": 22,
      "label": "DedupConfig",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 1.0
    },
    {
      "id": 23,
      "label": "DedupTableConfig",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 1.0
    },
    {
      "id": 24,
      "label": "SourceColumn",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 1.0
    },
    {
      "id": 25,
      "label": "StreamingConfig",
      "group": "SPEC",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "02-spec-model",
      "match_confidence": 1.0
    },
    {
      "id": 26,
      "label": "Spec Loader",
      "group": "SPEC",
      "source_module": null,
      "source_path": null,
      "chapter": "02-spec-model",
      "match_confidence": 0.3
    },
    {
      "id": 27,
      "label": "Spec Validator",
      "group": "SPEC",
      "source_module": "errors",
      "source_path": "src/mountainash_treespec/errors.py",
      "chapter": "02-spec-model",
      "match_confidence": 0.58
    },
    {
      "id": 28,
      "label": "TreeFlattener Class",
      "group": "FLAT",
      "source_module": "core-flatten",
      "source_path": "src/mountainash_treespec/core/flatten/",
      "chapter": "03-flatten-engine",
      "match_confidence": 0.85
    },
    {
      "id": 29,
      "label": "Flatten Method",
      "group": "FLAT",
      "source_module": "core-flatten",
      "source_path": "src/mountainash_treespec/core/flatten/",
      "chapter": "03-flatten-engine",
      "match_confidence": 0.85
    },
    {
      "id": 30,
      "label": "Flatten Many Method",
      "group": "FLAT",
      "source_module": "core-flatten",
      "source_path": "src/mountainash_treespec/core/flatten/",
      "chapter": "03-flatten-engine",
      "match_confidence": 0.85
    },
    {
      "id": 31,
      "label": "Tree Walk Algorithm",
      "group": "FLAT",
      "source_module": "core-flatten",
      "source_path": "src/mountainash_treespec/core/flatten/",
      "chapter": "03-flatten-engine",
      "match_confidence": 0.7
    },
    {
      "id": 32,
      "label": "Field Extraction",
      "group": "FLAT",
      "source_module": null,
      "source_path": null,
      "chapter": "03-flatten-engine",
      "match_confidence": 0.3
    },
    {
      "id": 33,
      "label": "Inline Child Dispatch",
      "group": "FLAT",
      "source_module": null,
      "source_path": null,
      "chapter": "03-flatten-engine",
      "match_confidence": 0.3
    },
    {
      "id": 34,
      "label": "Separate Table Dispatch",
      "group": "FLAT",
      "source_module": null,
      "source_path": null,
      "chapter": "03-flatten-engine",
      "match_confidence": 0.3
    },
    {
      "id": 35,
      "label": "Routed Child Dispatch",
      "group": "FLAT",
      "source_module": null,
      "source_path": null,
      "chapter": "03-flatten-engine",
      "match_confidence": 0.3
    },
    {
      "id": 36,
      "label": "Key Propagation",
      "group": "FLAT",
      "source_module": null,
      "source_path": null,
      "chapter": "03-flatten-engine",
      "match_confidence": 0.3
    },
    {
      "id": 37,
      "label": "Synthetic Key Generation",
      "group": "FLAT",
      "source_module": null,
      "source_path": null,
      "chapter": "03-flatten-engine",
      "match_confidence": 0.3
    },
    {
      "id": 38,
      "label": "Column Naming Convention",
      "group": "FLAT",
      "source_module": null,
      "source_path": null,
      "chapter": "03-flatten-engine",
      "match_confidence": 0.3
    },
    {
      "id": 39,
      "label": "Snake Case Naming",
      "group": "FLAT",
      "source_module": null,
      "source_path": null,
      "chapter": "03-flatten-engine",
      "match_confidence": 0.3
    },
    {
      "id": 40,
      "label": "Prefixed Name Builder",
      "group": "FLAT",
      "source_module": "core-flatten",
      "source_path": "src/mountainash_treespec/core/flatten/",
      "chapter": "03-flatten-engine",
      "match_confidence": 0.85
    },
    {
      "id": 41,
      "label": "Null Handling Strategy",
      "group": "FLAT",
      "source_module": null,
      "source_path": null,
      "chapter": "03-flatten-engine",
      "match_confidence": 0.3
    },
    {
      "id": 42,
      "label": "TreeBuilder Class",
      "group": "BUILD",
      "source_module": "core-build",
      "source_path": "src/mountainash_treespec/core/build/",
      "chapter": "06-build-engine",
      "match_confidence": 0.85
    },
    {
      "id": 43,
      "label": "Build Method",
      "group": "BUILD",
      "source_module": "core-build",
      "source_path": "src/mountainash_treespec/core/build/",
      "chapter": "06-build-engine",
      "match_confidence": 0.85
    },
    {
      "id": 44,
      "label": "Build Many Method",
      "group": "BUILD",
      "source_module": "core-build",
      "source_path": "src/mountainash_treespec/core/build/",
      "chapter": "06-build-engine",
      "match_confidence": 0.7
    },
    {
      "id": 45,
      "label": "FK Pre Indexing",
      "group": "BUILD",
      "source_module": null,
      "source_path": null,
      "chapter": "06-build-engine",
      "match_confidence": 0.3
    },
    {
      "id": 46,
      "label": "Inverse Walk Algorithm",
      "group": "BUILD",
      "source_module": "core-flatten",
      "source_path": "src/mountainash_treespec/core/flatten/",
      "chapter": "06-build-engine",
      "match_confidence": 0.7
    },
    {
      "id": 47,
      "label": "Node Construction",
      "group": "BUILD",
      "source_module": null,
      "source_path": null,
      "chapter": "06-build-engine",
      "match_confidence": 0.3
    },
    {
      "id": 48,
      "label": "Handler Based Construct",
      "group": "BUILD",
      "source_module": null,
      "source_path": null,
      "chapter": "06-build-engine",
      "match_confidence": 0.3
    },
    {
      "id": 49,
      "label": "Class Registry Lookup",
      "group": "BUILD",
      "source_module": null,
      "source_path": null,
      "chapter": "06-build-engine",
      "match_confidence": 0.3
    },
    {
      "id": 50,
      "label": "Child Reassembly",
      "group": "BUILD",
      "source_module": null,
      "source_path": null,
      "chapter": "06-build-engine",
      "match_confidence": 0.3
    },
    {
      "id": 51,
      "label": "Inline Child Rebuild",
      "group": "BUILD",
      "source_module": "core-build",
      "source_path": "src/mountainash_treespec/core/build/",
      "chapter": "06-build-engine",
      "match_confidence": 0.7
    },
    {
      "id": 52,
      "label": "Separate Table Rebuild",
      "group": "BUILD",
      "source_module": "core-build",
      "source_path": "src/mountainash_treespec/core/build/",
      "chapter": "06-build-engine",
      "match_confidence": 0.7
    },
    {
      "id": 53,
      "label": "BatchFlattener Class",
      "group": "BATCH",
      "source_module": "core-batch",
      "source_path": "src/mountainash_treespec/core/batch/",
      "chapter": "08-batch-processing",
      "match_confidence": 0.85
    },
    {
      "id": 54,
      "label": "BatchBuilder Class",
      "group": "BATCH",
      "source_module": "core-batch",
      "source_path": "src/mountainash_treespec/core/batch/",
      "chapter": "08-batch-processing",
      "match_confidence": 0.85
    },
    {
      "id": 55,
      "label": "Multi File Processing",
      "group": "BATCH",
      "source_module": null,
      "source_path": null,
      "chapter": "08-batch-processing",
      "match_confidence": 0.3
    },
    {
      "id": 56,
      "label": "Source Column Injection",
      "group": "BATCH",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "08-batch-processing",
      "match_confidence": 0.7
    },
    {
      "id": 57,
      "label": "Source Column Extraction",
      "group": "BATCH",
      "source_module": "core-spec-model",
      "source_path": "src/mountainash_treespec/core/spec/model.py",
      "chapter": "08-batch-processing",
      "match_confidence": 0.7
    },
    {
      "id": 58,
      "label": "Vertical Concat",
      "group": "BATCH",
      "source_module": null,
      "source_path": null,
      "chapter": "08-batch-processing",
      "match_confidence": 0.3
    },
    {
      "id": 59,
      "label": "Horizontal Concat",
      "group": "BATCH",
      "source_module": null,
      "source_path": null,
      "chapter": "08-batch-processing",
      "match_confidence": 0.3
    },
    {
      "id": 60,
      "label": "Column Alignment",
      "group": "BATCH",
      "source_module": null,
      "source_path": null,
      "chapter": "08-batch-processing",
      "match_confidence": 0.3
    },
    {
      "id": 61,
      "label": "Apply Dedup",
      "group": "BATCH",
      "source_module": "core-batch",
      "source_path": "src/mountainash_treespec/core/batch/",
      "chapter": "08-batch-processing",
      "match_confidence": 0.8
    },
    {
      "id": 62,
      "label": "Cascade Dedup",
      "group": "BATCH",
      "source_module": "core-batch",
      "source_path": "src/mountainash_treespec/core/batch/",
      "chapter": "08-batch-processing",
      "match_confidence": 0.7
    },
    {
      "id": 63,
      "label": "First Wins Strategy",
      "group": "BATCH",
      "source_module": null,
      "source_path": null,
      "chapter": "08-batch-processing",
      "match_confidence": 0.3
    },
    {
      "id": 64,
      "label": "Partition Key",
      "group": "BATCH",
      "source_module": null,
      "source_path": null,
      "chapter": "08-batch-processing",
      "match_confidence": 0.3
    },
    {
      "id": 65,
      "label": "SchemaHandler Protocol",
      "group": "SCHEMA",
      "source_module": "core-schema-protocol",
      "source_path": "src/mountainash_treespec/core/schema/protocol.py",
      "chapter": "05-schema-handling",
      "match_confidence": 0.85
    },
    {
      "id": 66,
      "label": "SchemaFieldInfo Protocol",
      "group": "SCHEMA",
      "source_module": "core-schema-protocol",
      "source_path": "src/mountainash_treespec/core/schema/protocol.py",
      "chapter": "04-type-system",
      "match_confidence": 0.85
    },
    {
      "id": 67,
      "label": "SchemaHandlerRegistry",
      "group": "SCHEMA",
      "source_module": "core-schema-registry",
      "source_path": "src/mountainash_treespec/core/schema/registry.py",
      "chapter": "05-schema-handling",
      "match_confidence": 1.0
    },
    {
      "id": 68,
      "label": "Default Registry",
      "group": "SCHEMA",
      "source_module": "core-schema-registry",
      "source_path": "src/mountainash_treespec/core/schema/registry.py",
      "chapter": "05-schema-handling",
      "match_confidence": 0.8
    },
    {
      "id": 69,
      "label": "Handler Registration",
      "group": "SCHEMA",
      "source_module": "core-schema-registry",
      "source_path": "src/mountainash_treespec/core/schema/registry.py",
      "chapter": "05-schema-handling",
      "match_confidence": 0.56
    },
    {
      "id": 70,
      "label": "Can Handle Check",
      "group": "SCHEMA",
      "source_module": null,
      "source_path": null,
      "chapter": "05-schema-handling",
      "match_confidence": 0.3
    },
    {
      "id": 71,
      "label": "Get Fields Method",
      "group": "SCHEMA",
      "source_module": null,
      "source_path": null,
      "chapter": "05-schema-handling",
      "match_confidence": 0.3
    },
    {
      "id": 72,
      "label": "Get Source Name Method",
      "group": "SCHEMA",
      "source_module": null,
      "source_path": null,
      "chapter": "05-schema-handling",
      "match_confidence": 0.3
    },
    {
      "id": 73,
      "label": "Get Cardinality Method",
      "group": "SCHEMA",
      "source_module": null,
      "source_path": null,
      "chapter": "05-schema-handling",
      "match_confidence": 0.3
    },
    {
      "id": 74,
      "label": "Get Choice Groups",
      "group": "SCHEMA",
      "source_module": null,
      "source_path": null,
      "chapter": "05-schema-handling",
      "match_confidence": 0.3
    },
    {
      "id": 75,
      "label": "To FieldSpec Conversion",
      "group": "SCHEMA",
      "source_module": null,
      "source_path": null,
      "chapter": "05-schema-handling",
      "match_confidence": 0.3
    },
    {
      "id": 76,
      "label": "JSON Schema Handler",
      "group": "FMT",
      "source_module": "core-schema-protocol",
      "source_path": "src/mountainash_treespec/core/schema/protocol.py",
      "chapter": "07-format-handlers",
      "match_confidence": 0.7
    },
    {
      "id": 77,
      "label": "Dataclass Field Introspection",
      "group": "FMT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-format-handlers",
      "match_confidence": 0.3
    },
    {
      "id": 78,
      "label": "XML Schema Handler",
      "group": "FMT",
      "source_module": "core-schema-protocol",
      "source_path": "src/mountainash_treespec/core/schema/protocol.py",
      "chapter": "07-format-handlers",
      "match_confidence": 0.7
    },
    {
      "id": 79,
      "label": "Xsdata Integration",
      "group": "FMT",
      "source_module": null,
      "source_path": null,
      "chapter": "04-type-system",
      "match_confidence": 0.3
    },
    {
      "id": 80,
      "label": "XML Streaming Handler",
      "group": "FMT",
      "source_module": "formats-xml",
      "source_path": "src/mountainash_treespec/formats/xml/",
      "chapter": "07-format-handlers",
      "match_confidence": 0.56
    },
    {
      "id": 81,
      "label": "XML Parser",
      "group": "FMT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-format-handlers",
      "match_confidence": 0.3
    },
    {
      "id": 82,
      "label": "XML Serializer",
      "group": "FMT",
      "source_module": "formats-avro",
      "source_path": "src/mountainash_treespec/formats/avro/",
      "chapter": "07-format-handlers",
      "match_confidence": 0.62
    },
    {
      "id": 83,
      "label": "Protobuf Schema Handler",
      "group": "FMT",
      "source_module": "formats-protobuf",
      "source_path": "src/mountainash_treespec/formats/protobuf/",
      "chapter": "07-format-handlers",
      "match_confidence": 0.8
    },
    {
      "id": 84,
      "label": "Protobuf Parser",
      "group": "FMT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-format-handlers",
      "match_confidence": 0.3
    },
    {
      "id": 85,
      "label": "Pydantic Schema Handler",
      "group": "FMT",
      "source_module": "formats-pydantic",
      "source_path": "src/mountainash_treespec/formats/pydantic/",
      "chapter": "07-format-handlers",
      "match_confidence": 0.8
    },
    {
      "id": 86,
      "label": "Avro Schema Handler",
      "group": "FMT",
      "source_module": "core-schema-protocol",
      "source_path": "src/mountainash_treespec/core/schema/protocol.py",
      "chapter": "07-format-handlers",
      "match_confidence": 0.7
    },
    {
      "id": 87,
      "label": "Avro Codegen",
      "group": "FMT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-format-handlers",
      "match_confidence": 0.3
    },
    {
      "id": 88,
      "label": "UniversalType Enum",
      "group": "TYPES",
      "shape": "box",
      "source_module": "core-schema-type-mapping",
      "source_path": "src/mountainash_treespec/core/schema/type_mapping.py",
      "chapter": "04-type-system",
      "match_confidence": 0.56
    },
    {
      "id": 89,
      "label": "Python Type to Universal Map",
      "group": "TYPES",
      "source_module": "core-schema-type-mapping",
      "source_path": "src/mountainash_treespec/core/schema/type_mapping.py",
      "chapter": "04-type-system",
      "match_confidence": 0.85
    },
    {
      "id": 90,
      "label": "Xsdata Type Names Map",
      "group": "TYPES",
      "source_module": "core-schema-type-mapping",
      "source_path": "src/mountainash_treespec/core/schema/type_mapping.py",
      "chapter": "04-type-system",
      "match_confidence": 0.85
    },
    {
      "id": 91,
      "label": "Resolve Universal Type",
      "group": "TYPES",
      "source_module": "core-schema-type-mapping",
      "source_path": "src/mountainash_treespec/core/schema/type_mapping.py",
      "chapter": "04-type-system",
      "match_confidence": 0.8
    },
    {
      "id": 92,
      "label": "Universal to PyArrow Map",
      "group": "TYPES",
      "source_module": "core-schema-type-mapping",
      "source_path": "src/mountainash_treespec/core/schema/type_mapping.py",
      "chapter": "04-type-system",
      "match_confidence": 0.85
    },
    {
      "id": 93,
      "label": "Arrow Schema Builder",
      "group": "TYPES",
      "source_module": "core-build",
      "source_path": "src/mountainash_treespec/core/build/",
      "chapter": "04-type-system",
      "match_confidence": 0.7
    },
    {
      "id": 94,
      "label": "FieldSpec Bridge",
      "group": "TYPES",
      "source_module": null,
      "source_path": null,
      "chapter": "04-type-system",
      "match_confidence": 0.3
    },
    {
      "id": 95,
      "label": "ResolvedField Dataclass",
      "group": "TYPES",
      "source_module": "core-spec-resolved-field",
      "source_path": "src/mountainash_treespec/core/spec/resolved_field.py",
      "chapter": "04-type-system",
      "match_confidence": 0.85
    },
    {
      "id": 96,
      "label": "HookRegistry Class",
      "group": "HOOKS",
      "source_module": "core-hooks",
      "source_path": "src/mountainash_treespec/core/hooks/",
      "chapter": "09-hooks-system",
      "match_confidence": 0.85
    },
    {
      "id": 97,
      "label": "Condition Hook",
      "group": "HOOKS",
      "source_module": null,
      "source_path": null,
      "chapter": "09-hooks-system",
      "match_confidence": 0.3
    },
    {
      "id": 98,
      "label": "Field Transform Hook",
      "group": "HOOKS",
      "source_module": null,
      "source_path": null,
      "chapter": "09-hooks-system",
      "match_confidence": 0.3
    },
    {
      "id": 99,
      "label": "Pre Flatten Hook",
      "group": "HOOKS",
      "source_module": "core-flatten",
      "source_path": "src/mountainash_treespec/core/flatten/",
      "chapter": "09-hooks-system",
      "match_confidence": 0.7
    },
    {
      "id": 100,
      "label": "Post Build Hook",
      "group": "HOOKS",
      "source_module": "core-build",
      "source_path": "src/mountainash_treespec/core/build/",
      "chapter": "09-hooks-system",
      "match_confidence": 0.7
    }
  ],
  "edges": [
    {
      "from": 3,
      "to": 1
    },
    {
      "from": 3,
      "to": 2
    },
    {
      "from": 4,
      "to": 3
    },
    {
      "from": 7,
      "to": 2
    },
    {
      "from": 8,
      "to": 2
    },
    {
      "from": 9,
      "to": 2
    },
    {
      "from": 10,
      "to": 2
    },
    {
      "from": 13,
      "to": 5
    },
    {
      "from": 13,
      "to": 14
    },
    {
      "from": 13,
      "to": 15
    },
    {
      "from": 14,
      "to": 5
    },
    {
      "from": 14,
      "to": 11
    },
    {
      "from": 15,
      "to": 5
    },
    {
      "from": 15,
      "to": 25
    },
    {
      "from": 16,
      "to": 5
    },
    {
      "from": 16,
      "to": 10
    },
    {
      "from": 17,
      "to": 5
    },
    {
      "from": 17,
      "to": 9
    },
    {
      "from": 17,
      "to": 16
    },
    {
      "from": 18,
      "to": 5
    },
    {
      "from": 18,
      "to": 19
    },
    {
      "from": 19,
      "to": 5
    },
    {
      "from": 20,
      "to": 18
    },
    {
      "from": 21,
      "to": 5
    },
    {
      "from": 21,
      "to": 22
    },
    {
      "from": 21,
      "to": 24
    },
    {
      "from": 22,
      "to": 5
    },
    {
      "from": 22,
      "to": 10
    },
    {
      "from": 23,
      "to": 22
    },
    {
      "from": 24,
      "to": 5
    },
    {
      "from": 25,
      "to": 5
    },
    {
      "from": 26,
      "to": 11
    },
    {
      "from": 26,
      "to": 13
    },
    {
      "from": 26,
      "to": 16
    },
    {
      "from": 26,
      "to": 17
    },
    {
      "from": 27,
      "to": 13
    },
    {
      "from": 27,
      "to": 16
    },
    {
      "from": 27,
      "to": 17
    },
    {
      "from": 28,
      "to": 13
    },
    {
      "from": 28,
      "to": 16
    },
    {
      "from": 28,
      "to": 17
    },
    {
      "from": 28,
      "to": 31
    },
    {
      "from": 29,
      "to": 28
    },
    {
      "from": 30,
      "to": 29
    },
    {
      "from": 31,
      "to": 1
    },
    {
      "from": 31,
      "to": 3
    },
    {
      "from": 32,
      "to": 16
    },
    {
      "from": 32,
      "to": 5
    },
    {
      "from": 33,
      "to": 17
    },
    {
      "from": 33,
      "to": 32
    },
    {
      "from": 33,
      "to": 36
    },
    {
      "from": 34,
      "to": 17
    },
    {
      "from": 34,
      "to": 9
    },
    {
      "from": 34,
      "to": 32
    },
    {
      "from": 34,
      "to": 36
    },
    {
      "from": 35,
      "to": 18
    },
    {
      "from": 35,
      "to": 34
    },
    {
      "from": 36,
      "to": 9
    },
    {
      "from": 36,
      "to": 10
    },
    {
      "from": 36,
      "to": 16
    },
    {
      "from": 37,
      "to": 10
    },
    {
      "from": 37,
      "to": 38
    },
    {
      "from": 38,
      "to": 15
    },
    {
      "from": 39,
      "to": 38
    },
    {
      "from": 40,
      "to": 38
    },
    {
      "from": 40,
      "to": 17
    },
    {
      "from": 41,
      "to": 15
    },
    {
      "from": 41,
      "to": 32
    },
    {
      "from": 42,
      "to": 13
    },
    {
      "from": 42,
      "to": 16
    },
    {
      "from": 42,
      "to": 17
    },
    {
      "from": 42,
      "to": 45
    },
    {
      "from": 43,
      "to": 42
    },
    {
      "from": 44,
      "to": 43
    },
    {
      "from": 45,
      "to": 9
    },
    {
      "from": 45,
      "to": 2
    },
    {
      "from": 46,
      "to": 31
    },
    {
      "from": 46,
      "to": 45
    },
    {
      "from": 47,
      "to": 42
    },
    {
      "from": 47,
      "to": 48
    },
    {
      "from": 48,
      "to": 65
    },
    {
      "from": 48,
      "to": 67
    },
    {
      "from": 49,
      "to": 42
    },
    {
      "from": 49,
      "to": 5
    },
    {
      "from": 50,
      "to": 42
    },
    {
      "from": 50,
      "to": 17
    },
    {
      "from": 50,
      "to": 46
    },
    {
      "from": 51,
      "to": 50
    },
    {
      "from": 51,
      "to": 33
    },
    {
      "from": 52,
      "to": 50
    },
    {
      "from": 52,
      "to": 34
    },
    {
      "from": 52,
      "to": 45
    },
    {
      "from": 53,
      "to": 28
    },
    {
      "from": 53,
      "to": 21
    },
    {
      "from": 53,
      "to": 55
    },
    {
      "from": 54,
      "to": 42
    },
    {
      "from": 54,
      "to": 21
    },
    {
      "from": 55,
      "to": 11
    },
    {
      "from": 56,
      "to": 57
    },
    {
      "from": 56,
      "to": 53
    },
    {
      "from": 57,
      "to": 24
    },
    {
      "from": 58,
      "to": 53
    },
    {
      "from": 58,
      "to": 60
    },
    {
      "from": 59,
      "to": 53
    },
    {
      "from": 59,
      "to": 60
    },
    {
      "from": 60,
      "to": 2
    },
    {
      "from": 61,
      "to": 22
    },
    {
      "from": 61,
      "to": 53
    },
    {
      "from": 62,
      "to": 61
    },
    {
      "from": 62,
      "to": 23
    },
    {
      "from": 63,
      "to": 61
    },
    {
      "from": 64,
      "to": 21
    },
    {
      "from": 64,
      "to": 10
    },
    {
      "from": 65,
      "to": 6
    },
    {
      "from": 66,
      "to": 6
    },
    {
      "from": 66,
      "to": 88
    },
    {
      "from": 67,
      "to": 65
    },
    {
      "from": 67,
      "to": 12
    },
    {
      "from": 68,
      "to": 67
    },
    {
      "from": 69,
      "to": 67
    },
    {
      "from": 69,
      "to": 12
    },
    {
      "from": 70,
      "to": 65
    },
    {
      "from": 71,
      "to": 65
    },
    {
      "from": 71,
      "to": 66
    },
    {
      "from": 72,
      "to": 65
    },
    {
      "from": 73,
      "to": 65
    },
    {
      "from": 74,
      "to": 65
    },
    {
      "from": 75,
      "to": 66
    },
    {
      "from": 75,
      "to": 94
    },
    {
      "from": 76,
      "to": 65
    },
    {
      "from": 76,
      "to": 77
    },
    {
      "from": 77,
      "to": 5
    },
    {
      "from": 78,
      "to": 65
    },
    {
      "from": 78,
      "to": 79
    },
    {
      "from": 79,
      "to": 1
    },
    {
      "from": 80,
      "to": 78
    },
    {
      "from": 80,
      "to": 25
    },
    {
      "from": 81,
      "to": 79
    },
    {
      "from": 81,
      "to": 1
    },
    {
      "from": 82,
      "to": 79
    },
    {
      "from": 82,
      "to": 1
    },
    {
      "from": 83,
      "to": 65
    },
    {
      "from": 83,
      "to": 84
    },
    {
      "from": 84,
      "to": 1
    },
    {
      "from": 85,
      "to": 65
    },
    {
      "from": 85,
      "to": 5
    },
    {
      "from": 86,
      "to": 65
    },
    {
      "from": 86,
      "to": 87
    },
    {
      "from": 87,
      "to": 1
    },
    {
      "from": 89,
      "to": 88
    },
    {
      "from": 90,
      "to": 88
    },
    {
      "from": 90,
      "to": 79
    },
    {
      "from": 91,
      "to": 89
    },
    {
      "from": 91,
      "to": 90
    },
    {
      "from": 92,
      "to": 88
    },
    {
      "from": 92,
      "to": 8
    },
    {
      "from": 93,
      "to": 92
    },
    {
      "from": 93,
      "to": 66
    },
    {
      "from": 94,
      "to": 88
    },
    {
      "from": 94,
      "to": 66
    },
    {
      "from": 95,
      "to": 5
    },
    {
      "from": 95,
      "to": 66
    },
    {
      "from": 96,
      "to": 12
    },
    {
      "from": 97,
      "to": 96
    },
    {
      "from": 98,
      "to": 96
    },
    {
      "from": 99,
      "to": 96
    },
    {
      "from": 99,
      "to": 28
    },
    {
      "from": 100,
      "to": 96
    },
    {
      "from": 100,
      "to": 42
    }
  ]
}
