{
  "metadata": {
    "title": "Mountainash Rules Package Concept Graph",
    "description": "A concept dependency graph covering the mountainash-rules vectorized, backend-agnostic business rules engine. 130 concepts across 9 taxonomy categories spanning foundation, dimension model, expression rules engine, hit policies, expression engine results, batch evaluation, accumulator engine, lattice structures, and supporting modules.",
    "creator": "Nathaniel Ramm",
    "date": "2026-09-02",
    "version": "1.1",
    "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": "7d0e3dcb747949bb2d7172a34135a7872b2ed55f",
    "profile_dir": "docs-site/profile"
  },
  "groups": {
    "FOUND": {
      "classifierName": "Foundation Concepts",
      "color": "SteelBlue",
      "font": {
        "color": "white"
      }
    },
    "DIM": {
      "classifierName": "Dimension Model",
      "color": "DarkGreen",
      "font": {
        "color": "white"
      }
    },
    "EXPR": {
      "classifierName": "Expression Rules Engine",
      "color": "Gold",
      "font": {
        "color": "black"
      }
    },
    "POLICY": {
      "classifierName": "Hit Policies",
      "color": "DodgerBlue",
      "font": {
        "color": "white"
      }
    },
    "RESULT": {
      "classifierName": "Expression Engine Results",
      "color": "Teal",
      "font": {
        "color": "white"
      }
    },
    "BATCH": {
      "classifierName": "Batch Evaluation",
      "color": "DarkOrchid",
      "font": {
        "color": "white"
      }
    },
    "ACCUM": {
      "classifierName": "Accumulator Engine",
      "color": "MediumPurple",
      "font": {
        "color": "white"
      }
    },
    "LATT": {
      "classifierName": "Accumulator Lattice & Results",
      "color": "Orange",
      "font": {
        "color": "black"
      }
    },
    "SUPP": {
      "classifierName": "Supporting Modules",
      "color": "Crimson",
      "font": {
        "color": "white"
      }
    }
  },
  "nodes": [
    {
      "id": 1,
      "label": "Ternary Logic",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 2,
      "label": "Sentinel Values",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 3,
      "label": "Match Strategy Patterns",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 4,
      "label": "Pydantic Model Validation",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 5,
      "label": "Vectorized Evaluation",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 6,
      "label": "Backend-Agnostic Design",
      "group": "FOUND",
      "shape": "box",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 7,
      "label": "DataFrame as Rule Store",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 8,
      "label": "Mountainash Expressions",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 9,
      "label": "Mountainash Relations",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 10,
      "label": "Context Object",
      "group": "FOUND",
      "source_module": null,
      "source_path": null,
      "chapter": "01-foundation-concepts",
      "match_confidence": 0.0
    },
    {
      "id": 11,
      "label": "MatchStrategy Enum",
      "group": "DIM",
      "source_module": "mountainash_rules.core.constants",
      "source_path": "src/mountainash_rules/core/constants.py",
      "chapter": "02-match-strategies",
      "match_confidence": 0.85
    },
    {
      "id": 12,
      "label": "EXACT Strategy",
      "group": "DIM",
      "source_module": "mountainash_rules.core.constants",
      "source_path": "src/mountainash_rules/core/constants.py",
      "chapter": "02-match-strategies",
      "match_confidence": 0.62
    },
    {
      "id": 13,
      "label": "NOT_EQUAL Strategy",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "02-match-strategies",
      "match_confidence": 0.3
    },
    {
      "id": 14,
      "label": "RANGE Strategy",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "02-match-strategies",
      "match_confidence": 0.3
    },
    {
      "id": 15,
      "label": "GREATER_THAN Strategy",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "02-match-strategies",
      "match_confidence": 0.3
    },
    {
      "id": 16,
      "label": "LESS_THAN Strategy",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "02-match-strategies",
      "match_confidence": 0.3
    },
    {
      "id": 17,
      "label": "PREFIX Strategy",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "02-match-strategies",
      "match_confidence": 0.3
    },
    {
      "id": 18,
      "label": "SUFFIX Strategy",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "02-match-strategies",
      "match_confidence": 0.3
    },
    {
      "id": 19,
      "label": "CONTAINS Strategy",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "02-match-strategies",
      "match_confidence": 0.3
    },
    {
      "id": 20,
      "label": "REGEX Strategy",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "02-match-strategies",
      "match_confidence": 0.3
    },
    {
      "id": 21,
      "label": "SET_MEMBERSHIP Strategy",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "02-match-strategies",
      "match_confidence": 0.3
    },
    {
      "id": 22,
      "label": "SET_EXCLUSION Strategy",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "02-match-strategies",
      "match_confidence": 0.3
    },
    {
      "id": 23,
      "label": "DimensionRole Enum",
      "group": "DIM",
      "source_module": "mountainash_rules.core.constants",
      "source_path": "src/mountainash_rules/core/constants.py",
      "chapter": "03-dimension-model",
      "match_confidence": 0.85
    },
    {
      "id": 24,
      "label": "CONSTRAINT Role",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "03-dimension-model",
      "match_confidence": 0.3
    },
    {
      "id": 25,
      "label": "CONTEXT_KEY Role",
      "group": "DIM",
      "source_module": "mountainash_rules.core.context",
      "source_path": "src/mountainash_rules/core/context.py",
      "chapter": "03-dimension-model",
      "match_confidence": 0.6
    },
    {
      "id": 26,
      "label": "Dimension Class",
      "group": "DIM",
      "source_module": "mountainash_rules.core.dimension",
      "source_path": "src/mountainash_rules/core/dimension.py",
      "chapter": "03-dimension-model",
      "match_confidence": 0.85
    },
    {
      "id": 27,
      "label": "DimensionsMetadata",
      "group": "DIM",
      "source_module": "mountainash_rules.core.dimension",
      "source_path": "src/mountainash_rules/core/dimension.py",
      "chapter": "03-dimension-model",
      "match_confidence": 1.0
    },
    {
      "id": 28,
      "label": "Field Resolution",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "03-dimension-model",
      "match_confidence": 0.3
    },
    {
      "id": 29,
      "label": "Dimension Validator",
      "group": "DIM",
      "source_module": "mountainash_rules.core.dimension",
      "source_path": "src/mountainash_rules/core/dimension.py",
      "chapter": "03-dimension-model",
      "match_confidence": 0.7
    },
    {
      "id": 30,
      "label": "Data Type Constraints",
      "group": "DIM",
      "source_module": null,
      "source_path": null,
      "chapter": "03-dimension-model",
      "match_confidence": 0.3
    },
    {
      "id": 31,
      "label": "DimensionCompiler",
      "group": "EXPR",
      "source_module": "mountainash_rules.core.compiler",
      "source_path": "src/mountainash_rules/core/compiler.py",
      "chapter": "04-dimension-compiler",
      "match_confidence": 1.0
    },
    {
      "id": 32,
      "label": "Compile Exact Expression",
      "group": "EXPR",
      "source_module": null,
      "source_path": null,
      "chapter": "04-dimension-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 33,
      "label": "Compile Range Expression",
      "group": "EXPR",
      "source_module": "mountainash_rules.core.compiler",
      "source_path": "src/mountainash_rules/core/compiler.py",
      "chapter": "04-dimension-compiler",
      "match_confidence": 0.6
    },
    {
      "id": 34,
      "label": "Compile String Match",
      "group": "EXPR",
      "source_module": null,
      "source_path": null,
      "chapter": "04-dimension-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 35,
      "label": "Compile Regex Expression",
      "group": "EXPR",
      "source_module": "mountainash_rules.core.compiler",
      "source_path": "src/mountainash_rules/core/compiler.py",
      "chapter": "04-dimension-compiler",
      "match_confidence": 0.6
    },
    {
      "id": 36,
      "label": "Compile Set Expression",
      "group": "EXPR",
      "source_module": null,
      "source_path": null,
      "chapter": "04-dimension-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 37,
      "label": "Compile Threshold Expression",
      "group": "EXPR",
      "source_module": null,
      "source_path": null,
      "chapter": "04-dimension-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 38,
      "label": "Sentinel-Aware Ternary",
      "group": "EXPR",
      "source_module": null,
      "source_path": null,
      "chapter": "04-dimension-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 39,
      "label": "Context Value Extraction",
      "group": "EXPR",
      "source_module": "mountainash_rules.core.context",
      "source_path": "src/mountainash_rules/core/context.py",
      "chapter": "04-dimension-compiler",
      "match_confidence": 0.6
    },
    {
      "id": 40,
      "label": "ExpressionRulesEngine",
      "group": "EXPR",
      "source_module": "mountainash_rules.engines.filter.engine",
      "source_path": "src/mountainash_rules/engines/filter/engine.py",
      "chapter": "05-expression-rules-engine",
      "match_confidence": 1.0
    },
    {
      "id": 41,
      "label": "Engine Construction",
      "group": "EXPR",
      "source_module": "mountainash_rules.engines.filter.engine",
      "source_path": "src/mountainash_rules/engines/filter/engine.py",
      "chapter": "05-expression-rules-engine",
      "match_confidence": 0.6
    },
    {
      "id": 42,
      "label": "Convenience vs Advanced Path",
      "group": "EXPR",
      "source_module": null,
      "source_path": null,
      "chapter": "05-expression-rules-engine",
      "match_confidence": 0.3
    },
    {
      "id": 43,
      "label": "Single-Pass Evaluation",
      "group": "EXPR",
      "source_module": null,
      "source_path": null,
      "chapter": "05-expression-rules-engine",
      "match_confidence": 0.3
    },
    {
      "id": 44,
      "label": "Context Binding Phase",
      "group": "EXPR",
      "source_module": "mountainash_rules.core.context",
      "source_path": "src/mountainash_rules/core/context.py",
      "chapter": "05-expression-rules-engine",
      "match_confidence": 0.6
    },
    {
      "id": 45,
      "label": "Dimension Expression Phase",
      "group": "EXPR",
      "source_module": "mountainash_rules.core.dimension",
      "source_path": "src/mountainash_rules/core/dimension.py",
      "chapter": "05-expression-rules-engine",
      "match_confidence": 0.7
    },
    {
      "id": 46,
      "label": "Survival Computation",
      "group": "EXPR",
      "source_module": null,
      "source_path": null,
      "chapter": "05-expression-rules-engine",
      "match_confidence": 0.3
    },
    {
      "id": 47,
      "label": "Specificity Scoring",
      "group": "EXPR",
      "source_module": null,
      "source_path": null,
      "chapter": "05-expression-rules-engine",
      "match_confidence": 0.3
    },
    {
      "id": 48,
      "label": "Rank Assignment",
      "group": "EXPR",
      "source_module": null,
      "source_path": null,
      "chapter": "05-expression-rules-engine",
      "match_confidence": 0.3
    },
    {
      "id": 49,
      "label": "RuleResult Class",
      "group": "RESULT",
      "source_module": "mountainash_rules.core.result",
      "source_path": "src/mountainash_rules/core/result.py",
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.85
    },
    {
      "id": 50,
      "label": "Survivors Accessor",
      "group": "RESULT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.3
    },
    {
      "id": 51,
      "label": "Best Match Accessor",
      "group": "RESULT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.3
    },
    {
      "id": 52,
      "label": "Count Accessor",
      "group": "RESULT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.3
    },
    {
      "id": 53,
      "label": "Active Dimensions",
      "group": "RESULT",
      "source_module": "mountainash_rules.core.dimension",
      "source_path": "src/mountainash_rules/core/dimension.py",
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.7
    },
    {
      "id": 54,
      "label": "RuleResult Explain Method",
      "group": "RESULT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.3
    },
    {
      "id": 55,
      "label": "At Least Filter",
      "group": "RESULT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.3
    },
    {
      "id": 56,
      "label": "Top N Filtering",
      "group": "RESULT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.3
    },
    {
      "id": 57,
      "label": "Min Specificity Filter",
      "group": "RESULT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.3
    },
    {
      "id": 58,
      "label": "Observability Columns",
      "group": "RESULT",
      "source_module": null,
      "source_path": null,
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.3
    },
    {
      "id": 59,
      "label": "AccumulatorCompiler",
      "group": "ACCUM",
      "source_module": "mountainash_rules.engines.accumulator.compiler",
      "source_path": "src/mountainash_rules/engines/accumulator/compiler.py",
      "chapter": "09-accumulator-compiler",
      "match_confidence": 1.0
    },
    {
      "id": 60,
      "label": "Compatible Expression",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "09-accumulator-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 61,
      "label": "Coalesce Expression",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "09-accumulator-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 62,
      "label": "Coalesce NA Flag",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "09-accumulator-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 63,
      "label": "Compatible Exact",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "09-accumulator-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 64,
      "label": "Compatible Range",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "09-accumulator-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 65,
      "label": "Coalesce Exact",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "09-accumulator-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 66,
      "label": "Coalesce Range",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "09-accumulator-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 67,
      "label": "Coalesce Threshold",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "09-accumulator-compiler",
      "match_confidence": 0.3
    },
    {
      "id": 68,
      "label": "AccumulatorEngine",
      "group": "ACCUM",
      "source_module": "mountainash_rules.engines.accumulator.engine",
      "source_path": "src/mountainash_rules/engines/accumulator/engine.py",
      "chapter": "10-accumulator-engine",
      "match_confidence": 1.0
    },
    {
      "id": 69,
      "label": "Prime Number Encoding",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "10-accumulator-engine",
      "match_confidence": 0.3
    },
    {
      "id": 70,
      "label": "Prime Table Sieve",
      "group": "ACCUM",
      "source_module": "mountainash_rules.engines.accumulator.primes",
      "source_path": "src/mountainash_rules/engines/accumulator/primes.py",
      "chapter": "10-accumulator-engine",
      "match_confidence": 0.7
    },
    {
      "id": 71,
      "label": "Get Prime Function",
      "group": "ACCUM",
      "source_module": "mountainash_rules.engines.accumulator.primes",
      "source_path": "src/mountainash_rules/engines/accumulator/primes.py",
      "chapter": "10-accumulator-engine",
      "match_confidence": 0.85
    },
    {
      "id": 72,
      "label": "Checked Multiply",
      "group": "ACCUM",
      "source_module": "mountainash_rules.engines.accumulator.primes",
      "source_path": "src/mountainash_rules/engines/accumulator/primes.py",
      "chapter": "10-accumulator-engine",
      "match_confidence": 0.8
    },
    {
      "id": 73,
      "label": "Anchor Creation",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "10-accumulator-engine",
      "match_confidence": 0.3
    },
    {
      "id": 74,
      "label": "Level Expansion",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "10-accumulator-engine",
      "match_confidence": 0.3
    },
    {
      "id": 75,
      "label": "Canonical Ordering Guard",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "10-accumulator-engine",
      "match_confidence": 0.3
    },
    {
      "id": 76,
      "label": "Frontier Filter",
      "group": "ACCUM",
      "source_module": null,
      "source_path": null,
      "chapter": "10-accumulator-engine",
      "match_confidence": 0.3
    },
    {
      "id": 77,
      "label": "Lattice Class",
      "group": "LATT",
      "source_module": "mountainash_rules.engines.accumulator.lattice",
      "source_path": "src/mountainash_rules/engines/accumulator/lattice.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.85
    },
    {
      "id": 78,
      "label": "Lattice Combinations",
      "group": "LATT",
      "source_module": "mountainash_rules.engines.accumulator.lattice",
      "source_path": "src/mountainash_rules/engines/accumulator/lattice.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.7
    },
    {
      "id": 79,
      "label": "Lattice Partition Key",
      "group": "LATT",
      "source_module": "mountainash_rules.engines.accumulator.lattice",
      "source_path": "src/mountainash_rules/engines/accumulator/lattice.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.7
    },
    {
      "id": 80,
      "label": "Coalesced Columns",
      "group": "LATT",
      "source_module": null,
      "source_path": null,
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.3
    },
    {
      "id": 81,
      "label": "NA Flag Columns",
      "group": "LATT",
      "source_module": null,
      "source_path": null,
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.3
    },
    {
      "id": 82,
      "label": "Combination Depth",
      "group": "LATT",
      "source_module": null,
      "source_path": null,
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.3
    },
    {
      "id": 83,
      "label": "AccumulatorResult Class",
      "group": "LATT",
      "source_module": "mountainash_rules.engines.accumulator.result",
      "source_path": "src/mountainash_rules/engines/accumulator/result.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.85
    },
    {
      "id": 84,
      "label": "Accumulated Aggregates",
      "group": "LATT",
      "source_module": "mountainash_rules.engines.accumulator.aggregate",
      "source_path": "src/mountainash_rules/engines/accumulator/aggregate.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.7
    },
    {
      "id": 85,
      "label": "Provenance Accessor",
      "group": "LATT",
      "source_module": null,
      "source_path": null,
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.3
    },
    {
      "id": 86,
      "label": "Depths Accessor",
      "group": "LATT",
      "source_module": null,
      "source_path": null,
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.3
    },
    {
      "id": 87,
      "label": "Aggregate Model",
      "group": "SUPP",
      "source_module": "mountainash_rules.engines.accumulator.aggregate",
      "source_path": "src/mountainash_rules/engines/accumulator/aggregate.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.85
    },
    {
      "id": 88,
      "label": "Partition Key Filtering",
      "group": "SUPP",
      "source_module": null,
      "source_path": null,
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.3
    },
    {
      "id": 89,
      "label": "Build All Partitions",
      "group": "SUPP",
      "source_module": "mountainash_rules.engines.accumulator.engine",
      "source_path": "src/mountainash_rules/engines/accumulator/engine.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.7
    },
    {
      "id": 90,
      "label": "Apply Auto Selection",
      "group": "SUPP",
      "source_module": "mountainash_rules.engines.accumulator.engine",
      "source_path": "src/mountainash_rules/engines/accumulator/engine.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.7
    },
    {
      "id": 91,
      "label": "EXACT_KEY Strategy",
      "group": "DIM",
      "source_module": "mountainash_rules.core.constants",
      "source_path": "src/mountainash_rules/core/constants.py",
      "chapter": "02-match-strategies",
      "match_confidence": 0.85
    },
    {
      "id": 92,
      "label": "CONTEXT_REGEX Strategy",
      "group": "DIM",
      "source_module": "mountainash_rules.core.constants",
      "source_path": "src/mountainash_rules/core/constants.py",
      "chapter": "02-match-strategies",
      "match_confidence": 0.7
    },
    {
      "id": 93,
      "label": "Bool Ternary Comparison",
      "group": "DIM",
      "source_module": "mountainash_rules.core.compiler",
      "source_path": "src/mountainash_rules/core/compiler.py",
      "chapter": "02-match-strategies",
      "match_confidence": 0.6
    },
    {
      "id": 94,
      "label": "DataType Enum",
      "group": "DIM",
      "source_module": "mountainash_rules.core.constants",
      "source_path": "src/mountainash_rules/core/constants.py",
      "chapter": "03-dimension-model",
      "match_confidence": 0.85
    },
    {
      "id": 95,
      "label": "Temporal Sentinels",
      "group": "DIM",
      "source_module": "mountainash_rules.core.constants",
      "source_path": "src/mountainash_rules/core/constants.py",
      "chapter": "03-dimension-model",
      "match_confidence": 0.7
    },
    {
      "id": 96,
      "label": "YAML Round-Trip",
      "group": "DIM",
      "source_module": "mountainash_rules.core.dimension",
      "source_path": "src/mountainash_rules/core/dimension.py",
      "chapter": "03-dimension-model",
      "match_confidence": 0.7
    },
    {
      "id": 97,
      "label": "Table-Level Hit Policy Fields",
      "group": "POLICY",
      "source_module": "mountainash_rules.core.dimension",
      "source_path": "src/mountainash_rules/core/dimension.py",
      "chapter": "06-hit-policies",
      "match_confidence": 0.6
    },
    {
      "id": 98,
      "label": "Set Wildcard Sentinel",
      "group": "EXPR",
      "source_module": "mountainash_rules.core.set_wildcard",
      "source_path": "src/mountainash_rules/core/set_wildcard.py",
      "chapter": "04-dimension-compiler",
      "match_confidence": 0.85
    },
    {
      "id": 99,
      "label": "Set Value Normalization",
      "group": "EXPR",
      "source_module": "mountainash_rules.core.set_wildcard",
      "source_path": "src/mountainash_rules/core/set_wildcard.py",
      "chapter": "04-dimension-compiler",
      "match_confidence": 0.7
    },
    {
      "id": 100,
      "label": "HitPolicy Enum",
      "group": "POLICY",
      "source_module": "mountainash_rules.core.constants",
      "source_path": "src/mountainash_rules/core/constants.py",
      "chapter": "06-hit-policies",
      "match_confidence": 0.85
    },
    {
      "id": 101,
      "label": "Collect Policy",
      "group": "POLICY",
      "source_module": null,
      "source_path": null,
      "chapter": "06-hit-policies",
      "match_confidence": 0.4
    },
    {
      "id": 102,
      "label": "Unique Policy",
      "group": "POLICY",
      "source_module": null,
      "source_path": null,
      "chapter": "06-hit-policies",
      "match_confidence": 0.4
    },
    {
      "id": 103,
      "label": "First And Priority Policy",
      "group": "POLICY",
      "source_module": null,
      "source_path": null,
      "chapter": "06-hit-policies",
      "match_confidence": 0.4
    },
    {
      "id": 104,
      "label": "Any Policy",
      "group": "POLICY",
      "source_module": null,
      "source_path": null,
      "chapter": "06-hit-policies",
      "match_confidence": 0.4
    },
    {
      "id": 105,
      "label": "Rule Order Policy",
      "group": "POLICY",
      "source_module": null,
      "source_path": null,
      "chapter": "06-hit-policies",
      "match_confidence": 0.4
    },
    {
      "id": 106,
      "label": "SelectionInfo Dataclass",
      "group": "POLICY",
      "source_module": "mountainash_rules.core.hit_policy",
      "source_path": "src/mountainash_rules/core/hit_policy.py",
      "chapter": "06-hit-policies",
      "match_confidence": 0.85
    },
    {
      "id": 107,
      "label": "HitPolicyViolationError",
      "group": "POLICY",
      "source_module": "mountainash_rules.core.hit_policy",
      "source_path": "src/mountainash_rules/core/hit_policy.py",
      "chapter": "06-hit-policies",
      "match_confidence": 0.85
    },
    {
      "id": 108,
      "label": "Cardinality Application",
      "group": "POLICY",
      "source_module": "mountainash_rules.core.hit_policy",
      "source_path": "src/mountainash_rules/core/hit_policy.py",
      "chapter": "06-hit-policies",
      "match_confidence": 0.7
    },
    {
      "id": 109,
      "label": "ExplainResult Class",
      "group": "RESULT",
      "source_module": "mountainash_rules.core.result",
      "source_path": "src/mountainash_rules/core/result.py",
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.85
    },
    {
      "id": 110,
      "label": "Engine-Level Explain",
      "group": "RESULT",
      "source_module": "mountainash_rules.engines.filter.engine",
      "source_path": "src/mountainash_rules/engines/filter/engine.py",
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.7
    },
    {
      "id": 111,
      "label": "RuleResult Select Method",
      "group": "RESULT",
      "source_module": "mountainash_rules.core.result",
      "source_path": "src/mountainash_rules/core/result.py",
      "chapter": "07-expression-engine-results",
      "match_confidence": 0.7
    },
    {
      "id": 112,
      "label": "BatchRuleResult Class",
      "group": "BATCH",
      "source_module": "mountainash_rules.core.batch_result",
      "source_path": "src/mountainash_rules/core/batch_result.py",
      "chapter": "08-batch-evaluation",
      "match_confidence": 0.85
    },
    {
      "id": 113,
      "label": "Evaluate Batch Method",
      "group": "BATCH",
      "source_module": "mountainash_rules.engines.filter.engine",
      "source_path": "src/mountainash_rules/engines/filter/engine.py",
      "chapter": "08-batch-evaluation",
      "match_confidence": 0.85
    },
    {
      "id": 114,
      "label": "Batch Context Preparation",
      "group": "BATCH",
      "source_module": "mountainash_rules.engines.filter.engine",
      "source_path": "src/mountainash_rules/engines/filter/engine.py",
      "chapter": "08-batch-evaluation",
      "match_confidence": 0.6
    },
    {
      "id": 115,
      "label": "Cross-Join Evaluation",
      "group": "BATCH",
      "source_module": "mountainash_rules.engines.filter.engine",
      "source_path": "src/mountainash_rules/engines/filter/engine.py",
      "chapter": "08-batch-evaluation",
      "match_confidence": 0.6
    },
    {
      "id": 116,
      "label": "Per-Context Ranking",
      "group": "BATCH",
      "source_module": "mountainash_rules.engines.filter.engine",
      "source_path": "src/mountainash_rules/engines/filter/engine.py",
      "chapter": "08-batch-evaluation",
      "match_confidence": 0.6
    },
    {
      "id": 117,
      "label": "Backend Conforming",
      "group": "BATCH",
      "source_module": "mountainash_rules.engines.filter.engine",
      "source_path": "src/mountainash_rules/engines/filter/engine.py",
      "chapter": "08-batch-evaluation",
      "match_confidence": 0.6
    },
    {
      "id": 118,
      "label": "Chunked Batch Evaluation",
      "group": "BATCH",
      "source_module": "mountainash_rules.engines.filter.engine",
      "source_path": "src/mountainash_rules/engines/filter/engine.py",
      "chapter": "08-batch-evaluation",
      "match_confidence": 0.6
    },
    {
      "id": 119,
      "label": "For Context Accessor",
      "group": "BATCH",
      "source_module": "mountainash_rules.core.batch_result",
      "source_path": "src/mountainash_rules/core/batch_result.py",
      "chapter": "08-batch-evaluation",
      "match_confidence": 0.7
    },
    {
      "id": 120,
      "label": "Set Membership Compatible",
      "group": "ACCUM",
      "source_module": "mountainash_rules.engines.accumulator.compiler",
      "source_path": "src/mountainash_rules/engines/accumulator/compiler.py",
      "chapter": "09-accumulator-compiler",
      "match_confidence": 0.7
    },
    {
      "id": 121,
      "label": "Set Membership Coalesce",
      "group": "ACCUM",
      "source_module": "mountainash_rules.engines.accumulator.compiler",
      "source_path": "src/mountainash_rules/engines/accumulator/compiler.py",
      "chapter": "09-accumulator-compiler",
      "match_confidence": 0.7
    },
    {
      "id": 122,
      "label": "Apply-Phase Caching",
      "group": "ACCUM",
      "source_module": "mountainash_rules.engines.accumulator.engine",
      "source_path": "src/mountainash_rules/engines/accumulator/engine.py",
      "chapter": "10-accumulator-engine",
      "match_confidence": 0.6
    },
    {
      "id": 123,
      "label": "Prime Table Size Cap",
      "group": "ACCUM",
      "source_module": "mountainash_rules.engines.accumulator.primes",
      "source_path": "src/mountainash_rules/engines/accumulator/primes.py",
      "chapter": "10-accumulator-engine",
      "match_confidence": 0.85
    },
    {
      "id": 124,
      "label": "Lattice Save Method",
      "group": "LATT",
      "source_module": "mountainash_rules.engines.accumulator.lattice",
      "source_path": "src/mountainash_rules/engines/accumulator/lattice.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.85
    },
    {
      "id": 125,
      "label": "Lattice Load Method",
      "group": "LATT",
      "source_module": "mountainash_rules.engines.accumulator.lattice",
      "source_path": "src/mountainash_rules/engines/accumulator/lattice.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.85
    },
    {
      "id": 126,
      "label": "Lattice Is Composed",
      "group": "LATT",
      "source_module": "mountainash_rules.engines.accumulator.lattice",
      "source_path": "src/mountainash_rules/engines/accumulator/lattice.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.7
    },
    {
      "id": 127,
      "label": "Aggregate Min Max Product",
      "group": "LATT",
      "source_module": "mountainash_rules.engines.accumulator.aggregate",
      "source_path": "src/mountainash_rules/engines/accumulator/aggregate.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.85
    },
    {
      "id": 128,
      "label": "LatticeIndex Router",
      "group": "SUPP",
      "source_module": "mountainash_rules.engines.accumulator.lattice",
      "source_path": "src/mountainash_rules/engines/accumulator/lattice.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.85
    },
    {
      "id": 129,
      "label": "AmbiguousPartitionError",
      "group": "SUPP",
      "source_module": "mountainash_rules.engines.accumulator.lattice",
      "source_path": "src/mountainash_rules/engines/accumulator/lattice.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.7
    },
    {
      "id": 130,
      "label": "EXACT_KEY Partition Routing",
      "group": "SUPP",
      "source_module": "mountainash_rules.engines.accumulator.lattice",
      "source_path": "src/mountainash_rules/engines/accumulator/lattice.py",
      "chapter": "11-lattice-structures-and-results",
      "match_confidence": 0.6
    }
  ],
  "edges": [
    {
      "from": 2,
      "to": 1
    },
    {
      "from": 7,
      "to": 5
    },
    {
      "from": 8,
      "to": 5
    },
    {
      "from": 8,
      "to": 6
    },
    {
      "from": 9,
      "to": 8
    },
    {
      "from": 9,
      "to": 7
    },
    {
      "from": 10,
      "to": 4
    },
    {
      "from": 11,
      "to": 3
    },
    {
      "from": 12,
      "to": 11
    },
    {
      "from": 13,
      "to": 11
    },
    {
      "from": 14,
      "to": 11
    },
    {
      "from": 15,
      "to": 11
    },
    {
      "from": 16,
      "to": 11
    },
    {
      "from": 17,
      "to": 11
    },
    {
      "from": 18,
      "to": 11
    },
    {
      "from": 19,
      "to": 11
    },
    {
      "from": 20,
      "to": 11
    },
    {
      "from": 21,
      "to": 11
    },
    {
      "from": 22,
      "to": 11
    },
    {
      "from": 23,
      "to": 3
    },
    {
      "from": 24,
      "to": 23
    },
    {
      "from": 25,
      "to": 23
    },
    {
      "from": 26,
      "to": 4
    },
    {
      "from": 26,
      "to": 11
    },
    {
      "from": 26,
      "to": 23
    },
    {
      "from": 27,
      "to": 26
    },
    {
      "from": 28,
      "to": 26
    },
    {
      "from": 29,
      "to": 26
    },
    {
      "from": 29,
      "to": 14
    },
    {
      "from": 29,
      "to": 20
    },
    {
      "from": 30,
      "to": 26
    },
    {
      "from": 30,
      "to": 12
    },
    {
      "from": 30,
      "to": 14
    },
    {
      "from": 30,
      "to": 15
    },
    {
      "from": 30,
      "to": 16
    },
    {
      "from": 30,
      "to": 17
    },
    {
      "from": 30,
      "to": 20
    },
    {
      "from": 31,
      "to": 27
    },
    {
      "from": 31,
      "to": 8
    },
    {
      "from": 32,
      "to": 31
    },
    {
      "from": 32,
      "to": 12
    },
    {
      "from": 32,
      "to": 2
    },
    {
      "from": 33,
      "to": 31
    },
    {
      "from": 33,
      "to": 14
    },
    {
      "from": 33,
      "to": 2
    },
    {
      "from": 34,
      "to": 31
    },
    {
      "from": 34,
      "to": 17
    },
    {
      "from": 34,
      "to": 18
    },
    {
      "from": 34,
      "to": 19
    },
    {
      "from": 34,
      "to": 2
    },
    {
      "from": 35,
      "to": 31
    },
    {
      "from": 35,
      "to": 20
    },
    {
      "from": 36,
      "to": 31
    },
    {
      "from": 36,
      "to": 21
    },
    {
      "from": 36,
      "to": 22
    },
    {
      "from": 36,
      "to": 2
    },
    {
      "from": 37,
      "to": 31
    },
    {
      "from": 37,
      "to": 15
    },
    {
      "from": 37,
      "to": 16
    },
    {
      "from": 37,
      "to": 2
    },
    {
      "from": 38,
      "to": 1
    },
    {
      "from": 38,
      "to": 2
    },
    {
      "from": 38,
      "to": 8
    },
    {
      "from": 39,
      "to": 10
    },
    {
      "from": 39,
      "to": 2
    },
    {
      "from": 40,
      "to": 31
    },
    {
      "from": 40,
      "to": 9
    },
    {
      "from": 40,
      "to": 39
    },
    {
      "from": 41,
      "to": 40
    },
    {
      "from": 41,
      "to": 27
    },
    {
      "from": 42,
      "to": 41
    },
    {
      "from": 43,
      "to": 40
    },
    {
      "from": 43,
      "to": 7
    },
    {
      "from": 43,
      "to": 5
    },
    {
      "from": 44,
      "to": 43
    },
    {
      "from": 44,
      "to": 39
    },
    {
      "from": 44,
      "to": 8
    },
    {
      "from": 45,
      "to": 43
    },
    {
      "from": 45,
      "to": 32
    },
    {
      "from": 45,
      "to": 33
    },
    {
      "from": 45,
      "to": 34
    },
    {
      "from": 45,
      "to": 35
    },
    {
      "from": 45,
      "to": 36
    },
    {
      "from": 45,
      "to": 37
    },
    {
      "from": 46,
      "to": 45
    },
    {
      "from": 46,
      "to": 38
    },
    {
      "from": 46,
      "to": 1
    },
    {
      "from": 47,
      "to": 46
    },
    {
      "from": 48,
      "to": 47
    },
    {
      "from": 49,
      "to": 48
    },
    {
      "from": 50,
      "to": 49
    },
    {
      "from": 51,
      "to": 49
    },
    {
      "from": 51,
      "to": 9
    },
    {
      "from": 52,
      "to": 49
    },
    {
      "from": 52,
      "to": 9
    },
    {
      "from": 53,
      "to": 49
    },
    {
      "from": 54,
      "to": 49
    },
    {
      "from": 54,
      "to": 38
    },
    {
      "from": 55,
      "to": 49
    },
    {
      "from": 55,
      "to": 47
    },
    {
      "from": 56,
      "to": 43
    },
    {
      "from": 57,
      "to": 43
    },
    {
      "from": 57,
      "to": 47
    },
    {
      "from": 58,
      "to": 43
    },
    {
      "from": 58,
      "to": 38
    },
    {
      "from": 59,
      "to": 8
    },
    {
      "from": 59,
      "to": 26
    },
    {
      "from": 60,
      "to": 59
    },
    {
      "from": 60,
      "to": 12
    },
    {
      "from": 61,
      "to": 59
    },
    {
      "from": 61,
      "to": 12
    },
    {
      "from": 62,
      "to": 59
    },
    {
      "from": 62,
      "to": 2
    },
    {
      "from": 63,
      "to": 60
    },
    {
      "from": 63,
      "to": 2
    },
    {
      "from": 64,
      "to": 60
    },
    {
      "from": 64,
      "to": 14
    },
    {
      "from": 65,
      "to": 61
    },
    {
      "from": 65,
      "to": 2
    },
    {
      "from": 66,
      "to": 61
    },
    {
      "from": 66,
      "to": 14
    },
    {
      "from": 67,
      "to": 61
    },
    {
      "from": 67,
      "to": 15
    },
    {
      "from": 67,
      "to": 16
    },
    {
      "from": 68,
      "to": 59
    },
    {
      "from": 68,
      "to": 27
    },
    {
      "from": 68,
      "to": 40
    },
    {
      "from": 69,
      "to": 68
    },
    {
      "from": 70,
      "to": 69
    },
    {
      "from": 71,
      "to": 70
    },
    {
      "from": 72,
      "to": 71
    },
    {
      "from": 73,
      "to": 68
    },
    {
      "from": 73,
      "to": 69
    },
    {
      "from": 74,
      "to": 73
    },
    {
      "from": 74,
      "to": 63
    },
    {
      "from": 74,
      "to": 64
    },
    {
      "from": 74,
      "to": 65
    },
    {
      "from": 74,
      "to": 66
    },
    {
      "from": 74,
      "to": 67
    },
    {
      "from": 75,
      "to": 74
    },
    {
      "from": 75,
      "to": 69
    },
    {
      "from": 76,
      "to": 74
    },
    {
      "from": 76,
      "to": 72
    },
    {
      "from": 77,
      "to": 76
    },
    {
      "from": 77,
      "to": 27
    },
    {
      "from": 78,
      "to": 77
    },
    {
      "from": 79,
      "to": 77
    },
    {
      "from": 79,
      "to": 25
    },
    {
      "from": 80,
      "to": 77
    },
    {
      "from": 80,
      "to": 61
    },
    {
      "from": 81,
      "to": 77
    },
    {
      "from": 81,
      "to": 62
    },
    {
      "from": 82,
      "to": 77
    },
    {
      "from": 82,
      "to": 74
    },
    {
      "from": 83,
      "to": 77
    },
    {
      "from": 83,
      "to": 49
    },
    {
      "from": 84,
      "to": 83
    },
    {
      "from": 84,
      "to": 87
    },
    {
      "from": 85,
      "to": 83
    },
    {
      "from": 85,
      "to": 72
    },
    {
      "from": 86,
      "to": 83
    },
    {
      "from": 86,
      "to": 82
    },
    {
      "from": 87,
      "to": 4
    },
    {
      "from": 88,
      "to": 25
    },
    {
      "from": 88,
      "to": 9
    },
    {
      "from": 89,
      "to": 68
    },
    {
      "from": 89,
      "to": 88
    },
    {
      "from": 90,
      "to": 89
    },
    {
      "from": 90,
      "to": 83
    },
    {
      "from": 91,
      "to": 11
    },
    {
      "from": 91,
      "to": 12
    },
    {
      "from": 92,
      "to": 20
    },
    {
      "from": 93,
      "to": 11
    },
    {
      "from": 93,
      "to": 1
    },
    {
      "from": 94,
      "to": 30
    },
    {
      "from": 95,
      "to": 94
    },
    {
      "from": 95,
      "to": 2
    },
    {
      "from": 96,
      "to": 27
    },
    {
      "from": 97,
      "to": 27
    },
    {
      "from": 97,
      "to": 100
    },
    {
      "from": 98,
      "to": 2
    },
    {
      "from": 98,
      "to": 21
    },
    {
      "from": 99,
      "to": 98
    },
    {
      "from": 100,
      "to": 11
    },
    {
      "from": 100,
      "to": 48
    },
    {
      "from": 101,
      "to": 100
    },
    {
      "from": 102,
      "to": 100
    },
    {
      "from": 103,
      "to": 100
    },
    {
      "from": 104,
      "to": 100
    },
    {
      "from": 105,
      "to": 100
    },
    {
      "from": 106,
      "to": 100
    },
    {
      "from": 107,
      "to": 102
    },
    {
      "from": 107,
      "to": 104
    },
    {
      "from": 108,
      "to": 103
    },
    {
      "from": 108,
      "to": 106
    },
    {
      "from": 109,
      "to": 40
    },
    {
      "from": 109,
      "to": 43
    },
    {
      "from": 110,
      "to": 109
    },
    {
      "from": 110,
      "to": 54
    },
    {
      "from": 111,
      "to": 49
    },
    {
      "from": 111,
      "to": 100
    },
    {
      "from": 112,
      "to": 49
    },
    {
      "from": 113,
      "to": 40
    },
    {
      "from": 113,
      "to": 43
    },
    {
      "from": 114,
      "to": 113
    },
    {
      "from": 114,
      "to": 10
    },
    {
      "from": 115,
      "to": 114
    },
    {
      "from": 116,
      "to": 115
    },
    {
      "from": 116,
      "to": 100
    },
    {
      "from": 116,
      "to": 47
    },
    {
      "from": 117,
      "to": 114
    },
    {
      "from": 118,
      "to": 113
    },
    {
      "from": 119,
      "to": 112
    },
    {
      "from": 119,
      "to": 116
    },
    {
      "from": 120,
      "to": 59
    },
    {
      "from": 120,
      "to": 21
    },
    {
      "from": 120,
      "to": 98
    },
    {
      "from": 121,
      "to": 120
    },
    {
      "from": 122,
      "to": 68
    },
    {
      "from": 123,
      "to": 70
    },
    {
      "from": 123,
      "to": 71
    },
    {
      "from": 124,
      "to": 77
    },
    {
      "from": 125,
      "to": 124
    },
    {
      "from": 126,
      "to": 77
    },
    {
      "from": 127,
      "to": 87
    },
    {
      "from": 128,
      "to": 77
    },
    {
      "from": 128,
      "to": 89
    },
    {
      "from": 129,
      "to": 128
    },
    {
      "from": 130,
      "to": 128
    },
    {
      "from": 130,
      "to": 91
    }
  ]
}
