{
  "definitions": [
    {
      "callable": true,
      "callees": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "fieldValues",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "arrayRefs",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        },
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "arrayRefs",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 136,
      "name": "fieldRefs",
      "signature": "const fieldRefs = function fieldRefs(text: string, fields: ReadonlyMap<string, string>, line: number): TemplateRef[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "fieldRefs",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        },
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "fieldRefs",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "scanLine",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 140,
      "name": "arrayRefs",
      "signature": "const arrayRefs = function arrayRefs(trimmed: string, array: string | null, line: number): TemplateRef[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "tokensOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "spineScan",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 127,
      "name": "isSeparatorRow",
      "signature": "const isSeparatorRow = function isSeparatorRow(trimmed: string): boolean {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "isPlaceholder",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "unresolvedTemplateRefsOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "exported": true,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 182,
      "name": "templateRefsOf",
      "signature": "export const templateRefsOf = function templateRefsOf(text: string): TemplateRef[] {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "templateRefsOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 47,
      "name": "isPlaceholder",
      "signature": "const isPlaceholder = function isPlaceholder(value: string): boolean {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "fieldRefs",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 65,
      "name": "fieldValues",
      "signature": "const fieldValues = function fieldValues(text: string, field: string): string[] {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "isSeparatorRow",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 83,
      "name": "tokensOf",
      "signature": "const tokensOf = function tokensOf(text: string): string[] {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "scanLine",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 87,
      "name": "headerRefs",
      "signature": "const headerRefs = function headerRefs(trimmed: string, line: number): TemplateRef[] {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "spineScan",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 111,
      "name": "spineRefs",
      "signature": "const spineRefs = function spineRefs(trimmed: string, spine: SpineIndexes, line: number): TemplateRef[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "isSeparatorRow",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        },
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "spineRefs",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 153,
      "name": "spineScan",
      "signature": "const spineScan = function spineScan(trimmed: string, state: ScanState, line: number): LineScan | null {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "arrayRefs",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        },
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "headerRefs",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 167,
      "name": "scanLine",
      "signature": "const scanLine = function scanLine(trimmed: string, state: ScanState, line: number): LineScan {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/analyzers/template.analyzer.ts",
          "name": "templateRefsOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
            "json": "https://banes-lab.com/json/source/context/core/analyzers/template.analyzer.ts",
            "label": "core/analyzers/template.analyzer.ts",
            "markdown": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.md",
            "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts"
          }
        }
      ],
      "callers": [],
      "exported": true,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 193,
      "name": "unresolvedTemplateRefsOf",
      "signature": "export const unresolvedTemplateRefsOf = function unresolvedTemplateRefsOf("
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "type_alias_declaration",
      "line": 26,
      "name": "KindMembers",
      "signature": "type KindMembers = ReadonlyMap<string, ReadonlySet<string>>;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "interface_declaration",
      "line": 28,
      "name": "SpineIndexes",
      "signature": "interface SpineIndexes {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "interface_declaration",
      "line": 34,
      "name": "ScanState",
      "signature": "interface ScanState {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "interface_declaration",
      "line": 39,
      "name": "LineScan",
      "signature": "interface LineScan {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 44,
      "name": "LINE_FEED",
      "signature": "const LINE_FEED = \"\\n\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 45,
      "name": "WORD_SEPARATOR",
      "signature": "const WORD_SEPARATOR = \" \";"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 51,
      "name": "quotedStrings",
      "signature": "const quotedStrings = function quotedStrings(text: string): string[] {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 66,
      "name": "marker",
      "signature": "const marker = `${field}${FIELD_OPEN}`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 67,
      "name": "values",
      "signature": "const values: string[] = [];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 68,
      "name": "at",
      "signature": "let at = text.indexOf(marker);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 70,
      "name": "start",
      "signature": "const start = at + marker.length;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 71,
      "name": "end",
      "signature": "const end = text.indexOf(QUOTE, start);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 89,
      "name": "close",
      "signature": "const close = trimmed.lastIndexOf(ARRAY_CLOSE);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 93,
      "name": "[layer, axis, math]",
      "signature": "const [layer, axis, math] = trimmed.slice(open + 1, close).split(HEADER_SEPARATOR);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 97,
      "name": "[layerKind, axisKind, mathKind]",
      "signature": "const [layerKind, axisKind, mathKind] = HEADER_KINDS;"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 105,
      "name": "spineIndexes",
      "signature": "const spineIndexes = function spineIndexes(trimmed: string): SpineIndexes | null {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 106,
      "name": "columns",
      "signature": "const columns = tokensOf(trimmed.slice(COMMENT.length));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 107,
      "name": "[layer = -1, axis = -1, mathType = -1]",
      "signature": "const [layer = -1, axis = -1, mathType = -1] = SPINE_COLUMNS.map((name) => columns.indexOf(name));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 112,
      "name": "tokens",
      "signature": "const tokens = tokensOf(trimmed.slice(COMMENT.length));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 113,
      "name": "layer",
      "signature": "const layer = tokens[spine.layer];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 114,
      "name": "axis",
      "signature": "const axis = tokens[spine.axis];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 115,
      "name": "math",
      "signature": "const math = tokens[spine.mathType];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 119,
      "name": "second",
      "signature": "const second = tokens[spine.mathType + 1] === MATH_PLUS ? tokens[spine.mathType + 2] : undefined;"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 131,
      "name": "arrayNameOf",
      "signature": "const arrayNameOf = function arrayNameOf(trimmed: string): string | null {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 141,
      "name": "listKind",
      "signature": "const listKind = array === null ? undefined : LIST_KINDS_BY_ARRAY.get(array);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 142,
      "name": "assign",
      "signature": "const assign = trimmed.indexOf(SET_ASSIGN);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 143,
      "name": "listText",
      "signature": "const listText = assign === -1 ? trimmed : trimmed.slice(assign);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 144,
      "name": "listed",
      "signature": "const listed = listKind === undefined ? [] : quotedStrings(listText).map((id) => ({ id, kind: listKind, line }));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 145,
      "name": "fields",
      "signature": "const fields = array === null ? undefined : FIELD_KINDS_BY_ARRAY.get(array);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 168,
      "name": "spine",
      "signature": "const spine = spineScan(trimmed, state, line);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 172,
      "name": "open",
      "signature": "const open = { ...state, spine: null };"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 176,
      "name": "opened",
      "signature": "const opened = arrayNameOf(trimmed);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 177,
      "name": "array",
      "signature": "const array = opened ?? open.array;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 178,
      "name": "closes",
      "signature": "const closes = trimmed.startsWith(ARRAY_CLOSE) || (opened !== null && trimmed.endsWith(ARRAY_CLOSE));"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 183,
      "name": "state",
      "signature": "let state: ScanState = { array: null, spine: null };"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 184,
      "name": "refs",
      "signature": "const refs: TemplateRef[] = [];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 186,
      "name": "scan",
      "signature": "const scan = scanLine(raw.trim(), state, index + 1);"
    }
  ],
  "document": null,
  "findings": [],
  "generated": false,
  "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-template-analyzer-ts",
  "language": "typescript",
  "layer": "processing",
  "name": "template.analyzer.ts",
  "path": "core/analyzers/template.analyzer.ts",
  "ref": "anatomy:file-context-core-analyzers-template-analyzer-ts",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/context#folder-context-core-analyzers",
          "json": "https://banes-lab.com/json/anatomy/context/folder-context-core-analyzers",
          "label": "core/analyzers",
          "markdown": "https://banes-lab.com/anatomy/context/folder-context-core-analyzers.md",
          "ref": "chapter:/anatomy/context#folder-context-core-analyzers"
        }
      ],
      "relation": "contained-in"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/context#folder-context-core-analyzers",
          "json": "https://banes-lab.com/json/anatomy/context/folder-context-core-analyzers",
          "label": "core/analyzers",
          "markdown": "https://banes-lab.com/anatomy/context/folder-context-core-analyzers.md",
          "ref": "chapter:/anatomy/context#folder-context-core-analyzers"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "slots": {
    "concern": "analyzer",
    "subject": "template",
    "variant": null
  },
  "stats": {
    "bytes": 7161,
    "callable": 15,
    "definitions": 49,
    "edges": 10,
    "exported": 5,
    "files": 1,
    "findings": {},
    "flows": {
      "relay": 4,
      "leaf": 5,
      "entry": 3,
      "isolated": 37
    },
    "lines": {
      "blank": 20,
      "code": 178,
      "total": 198
    }
  },
  "summary": "178 lines of code and 49 definitions.",
  "text": "https://banes-lab.com/source/context/core/analyzers/template.analyzer.ts.txt",
  "tree": "context",
  "siblings": {
    "next": null,
    "previous": {
      "href": "https://banes-lab.com/anatomy/context#file-context-core-analyzers-check-analyzer-ts",
      "json": "https://banes-lab.com/json/source/context/core/analyzers/check.analyzer.ts",
      "label": "core/analyzers/check.analyzer.ts",
      "markdown": "https://banes-lab.com/source/context/core/analyzers/check.analyzer.ts.md",
      "ref": "anatomy:file-context-core-analyzers-check-analyzer-ts"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/source/context/core/analyzers",
    "label": "core/analyzers",
    "markdown": "https://banes-lab.com/api/source/context/core/analyzers.md",
    "ref": "api:source/context/core/analyzers"
  }
}
