{
  "definitions": [
    {
      "callable": true,
      "callees": [
        {
          "file": "tools/core/readers/document.reader.ts",
          "name": "unfencedLines",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-document-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/document.reader.ts",
            "label": "tools/core/readers/document.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/document.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-document-reader-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "tools/core/validators/coverage.validator.ts",
          "name": "digestOutcome",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-validators-coverage-validator-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/validators/coverage.validator.ts",
            "label": "tools/core/validators/coverage.validator.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/validators/coverage.validator.ts.md",
            "ref": "anatomy:file-coordination-tools-core-validators-coverage-validator-ts"
          }
        },
        {
          "file": "tools/core/validators/coverage.validator.ts",
          "name": "expansionFindings",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-validators-coverage-validator-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/validators/coverage.validator.ts",
            "label": "tools/core/validators/coverage.validator.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/validators/coverage.validator.ts.md",
            "ref": "anatomy:file-coordination-tools-core-validators-coverage-validator-ts"
          }
        }
      ],
      "exported": true,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 115,
      "name": "readExpandedSlugs",
      "signature": "export const readExpandedSlugs = function readExpandedSlugs(source: string): { slug: string; line: number }[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "slugAfter",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "readDeclaredRules",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "exported": false,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 77,
      "name": "headingSlug",
      "signature": "const headingSlug = function headingSlug(line: string): string | null {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "spacesBefore",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "withoutGate",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "exported": false,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 124,
      "name": "declarationStart",
      "signature": "const declarationStart = function declarationStart(line: string, marker: number): number {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "gateRunEnd",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 24,
      "name": "isGateChar",
      "signature": "const isGateChar = function isGateChar(char: string): boolean {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "declarationStart",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 36,
      "name": "spacesBefore",
      "signature": "const spacesBefore = function spacesBefore(line: string, from: number): number {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "withoutGate",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 52,
      "name": "gateOf",
      "signature": "const gateOf = function gateOf(line: string): string | null {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "headingSlug",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 70,
      "name": "slugAfter",
      "signature": "const slugAfter = function slugAfter(line: string, open: number): string | null {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "readDeclaredRules",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 83,
      "name": "listedRule",
      "signature": "const listedRule = function listedRule(line: string, number: number): DeclaredRule[] {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "tools/core/validators/coverage.validator.ts",
          "name": "declarationOutcome",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-validators-coverage-validator-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/validators/coverage.validator.ts",
            "label": "tools/core/validators/coverage.validator.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/validators/coverage.validator.ts.md",
            "ref": "anatomy:file-coordination-tools-core-validators-coverage-validator-ts"
          }
        }
      ],
      "exported": true,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 139,
      "name": "stripGateDeclarations",
      "signature": "export const stripGateDeclarations = function stripGateDeclarations(source: string): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "tools/core/readers/document.reader.ts",
          "name": "unfencedLines",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-document-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/document.reader.ts",
            "label": "tools/core/readers/document.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/document.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-document-reader-ts"
          }
        },
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "headingSlug",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        },
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "listedRule",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "callers": [],
      "exported": true,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 96,
      "name": "readDeclaredRules",
      "signature": "export const readDeclaredRules = function readDeclaredRules(source: string): DeclaredRule[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "declarationStart",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        },
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "gateOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 130,
      "name": "withoutGate",
      "signature": "const withoutGate = function withoutGate(line: string): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "tools/core/readers/rule.reader.ts",
          "name": "isGateChar",
          "source": {
            "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
            "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/rule.reader.ts",
            "label": "tools/core/readers/rule.reader.ts",
            "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.md",
            "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 44,
      "name": "gateRunEnd",
      "signature": "const gateRunEnd = function gateRunEnd(line: string, from: number): number {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "interface_declaration",
      "line": 4,
      "name": "HeadingState",
      "signature": "interface HeadingState {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 9,
      "name": "GATE_MARKER",
      "signature": "const GATE_MARKER = \"gate:\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 11,
      "name": "LOCKED_MARKER",
      "signature": "const LOCKED_MARKER = \"(LOCKED)\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 13,
      "name": "LIST_SLUG",
      "signature": "const LIST_SLUG = \"- `\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 15,
      "name": "SEPARATOR_DOT",
      "signature": "const SEPARATOR_DOT = \"·\";"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 17,
      "name": "backtickedSlug",
      "signature": "const backtickedSlug = function backtickedSlug(line: string): string | null {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 28,
      "name": "spacesAfter",
      "signature": "const spacesAfter = function spacesAfter(line: string, from: number): number {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 57,
      "name": "start",
      "signature": "const start = spacesAfter(line, marker + GATE_MARKER.length);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 58,
      "name": "value",
      "signature": "const value = line.slice(start, gateRunEnd(line, start));"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 62,
      "name": "hashRun",
      "signature": "const hashRun = function hashRun(line: string): number {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 63,
      "name": "cursor",
      "signature": "let cursor = 0;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 71,
      "name": "close",
      "signature": "const close = line.indexOf(\"`\", open + 1);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 73,
      "name": "tail",
      "signature": "const tail = line.slice(close + 1).trim();"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 78,
      "name": "hashes",
      "signature": "const hashes = hashRun(line);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 79,
      "name": "open",
      "signature": "const open = spacesAfter(line, hashes);"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 89,
      "name": "headedRule",
      "signature": "const headedRule = function headedRule(heading: HeadingState, line: string, number: number): DeclaredRule | null {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 90,
      "name": "gate",
      "signature": "const gate = heading.slug === null ? null : gateOf(line);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 97,
      "name": "out",
      "signature": "const out: DeclaredRule[] = [];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 98,
      "name": "heading",
      "signature": "let heading: HeadingState = { locked: false, slug: null };"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 106,
      "name": "rule",
      "signature": "const rule = headedRule(heading, line, number);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 119,
      "name": "slug",
      "signature": "const slug = headingSlug(text);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 125,
      "name": "before",
      "signature": "const before = spacesBefore(line, marker);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 126,
      "name": "dotted",
      "signature": "const dotted = before > 0 && line.charAt(before - 1) === SEPARATOR_DOT ? before - 1 : before;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 131,
      "name": "marker",
      "signature": "const marker = line.lastIndexOf(GATE_MARKER);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 135,
      "name": "end",
      "signature": "const end = gateRunEnd(line, spacesAfter(line, marker + GATE_MARKER.length));"
    }
  ],
  "document": null,
  "findings": [],
  "generated": false,
  "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-rule-reader-ts",
  "language": "typescript",
  "layer": "processing",
  "name": "rule.reader.ts",
  "path": "tools/core/readers/rule.reader.ts",
  "ref": "anatomy:file-coordination-tools-core-readers-rule-reader-ts",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/coordination#folder-coordination-tools-core-readers",
          "json": "https://banes-lab.com/json/anatomy/coordination/folder-coordination-tools-core-readers",
          "label": "tools/core/readers",
          "markdown": "https://banes-lab.com/anatomy/coordination/folder-coordination-tools-core-readers.md",
          "ref": "chapter:/anatomy/coordination#folder-coordination-tools-core-readers"
        }
      ],
      "relation": "contained-in"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-document-reader-ts",
          "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/document.reader.ts",
          "label": "tools/core/readers/document.reader.ts",
          "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/document.reader.ts.md",
          "ref": "anatomy:file-coordination-tools-core-readers-document-reader-ts"
        }
      ],
      "relation": "uses"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-validators-coverage-validator-ts",
          "json": "https://banes-lab.com/json/source/coordination/tools/core/validators/coverage.validator.ts",
          "label": "tools/core/validators/coverage.validator.ts",
          "markdown": "https://banes-lab.com/source/coordination/tools/core/validators/coverage.validator.ts.md",
          "ref": "anatomy:file-coordination-tools-core-validators-coverage-validator-ts"
        }
      ],
      "relation": "used-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/coordination#folder-coordination-tools-core-readers",
          "json": "https://banes-lab.com/json/anatomy/coordination/folder-coordination-tools-core-readers",
          "label": "tools/core/readers",
          "markdown": "https://banes-lab.com/anatomy/coordination/folder-coordination-tools-core-readers.md",
          "ref": "chapter:/anatomy/coordination#folder-coordination-tools-core-readers"
        },
        {
          "href": "https://banes-lab.com/anatomy/coordination#folder-coordination-tools-core-validators",
          "json": "https://banes-lab.com/json/anatomy/coordination/folder-coordination-tools-core-validators",
          "label": "tools/core/validators",
          "markdown": "https://banes-lab.com/anatomy/coordination/folder-coordination-tools-core-validators.md",
          "ref": "chapter:/anatomy/coordination#folder-coordination-tools-core-validators"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "slots": {
    "concern": "reader",
    "subject": "rule",
    "variant": null
  },
  "stats": {
    "bytes": 4966,
    "callable": 16,
    "definitions": 37,
    "edges": 9,
    "exported": 7,
    "files": 1,
    "findings": {},
    "flows": {
      "relay": 3,
      "leaf": 6,
      "entry": 3,
      "isolated": 25
    },
    "lines": {
      "blank": 23,
      "code": 118,
      "total": 141
    }
  },
  "summary": "118 lines of code and 37 definitions.",
  "text": "https://banes-lab.com/source/coordination/tools/core/readers/rule.reader.ts.txt",
  "tree": "coordination",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-snapshot-reader-ts",
      "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/snapshot.reader.ts",
      "label": "tools/core/readers/snapshot.reader.ts",
      "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/snapshot.reader.ts.md",
      "ref": "anatomy:file-coordination-tools-core-readers-snapshot-reader-ts"
    },
    "previous": {
      "href": "https://banes-lab.com/anatomy/coordination#file-coordination-tools-core-readers-report-reader-ts",
      "json": "https://banes-lab.com/json/source/coordination/tools/core/readers/report.reader.ts",
      "label": "tools/core/readers/report.reader.ts",
      "markdown": "https://banes-lab.com/source/coordination/tools/core/readers/report.reader.ts.md",
      "ref": "anatomy:file-coordination-tools-core-readers-report-reader-ts"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/source/coordination/tools/core/readers",
    "label": "tools/core/readers",
    "markdown": "https://banes-lab.com/api/source/coordination/tools/core/readers.md",
    "ref": "api:source/coordination/tools/core/readers"
  }
}
