{
  "definitions": [
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/validators/graph.validator.ts",
          "name": "isDuplicate",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-graph-validator-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/validators/graph.validator.ts",
            "label": "core/validators/graph.validator.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/validators/graph.validator.ts.md",
            "ref": "anatomy:file-build-scripts-core-validators-graph-validator-ts"
          }
        },
        {
          "file": "core/validators/graph.validator.ts",
          "name": "isDuplicate",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-graph-validator-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/validators/graph.validator.ts",
            "label": "core/validators/graph.validator.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/validators/graph.validator.ts.md",
            "ref": "anatomy:file-build-scripts-core-validators-graph-validator-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 74,
      "name": "isNode",
      "signature": "const isNode = function isNode(value: unknown): value is GraphNode {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "configuration/strings/graph.strings.ts",
          "name": "undeclaredAbsence",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-configuration-strings-graph-strings-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/configuration/strings/graph.strings.ts",
            "label": "configuration/strings/graph.strings.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/configuration/strings/graph.strings.ts.md",
            "ref": "anatomy:file-build-scripts-configuration-strings-graph-strings-ts"
          }
        },
        {
          "file": "core/validators/graph.validator.ts",
          "name": "countsOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-graph-validator-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/validators/graph.validator.ts",
            "label": "core/validators/graph.validator.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/validators/graph.validator.ts.md",
            "ref": "anatomy:file-build-scripts-core-validators-graph-validator-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "core/validators/graph.validator.ts",
          "name": "populationFindings",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-graph-validator-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/validators/graph.validator.ts",
            "label": "core/validators/graph.validator.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/validators/graph.validator.ts.md",
            "ref": "anatomy:file-build-scripts-core-validators-graph-validator-ts"
          }
        }
      ],
      "exported": false,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 128,
      "name": "absenceFindings",
      "signature": "const absenceFindings = function absenceFindings(report: string, population: Population): Finding[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/converters/reference.converter.ts",
          "name": "check",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-converters-reference-converter-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/converters/reference.converter.ts",
            "label": "core/converters/reference.converter.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/converters/reference.converter.ts.md",
            "ref": "anatomy:file-build-scripts-core-converters-reference-converter-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "core/coordinators/validation.coordinator.ts",
          "name": "validateDiscovery",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-coordinators-validation-coordinator-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/coordinators/validation.coordinator.ts",
            "label": "core/coordinators/validation.coordinator.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/coordinators/validation.coordinator.ts.md",
            "ref": "anatomy:file-build-scripts-core-coordinators-validation-coordinator-ts"
          }
        }
      ],
      "exported": true,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 180,
      "name": "graphFindings",
      "signature": "export const graphFindings = function graphFindings(report: string): Finding[] {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [
        {
          "file": "core/validators/graph.validator.ts",
          "name": "absenceFindings",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-graph-validator-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/validators/graph.validator.ts",
            "label": "core/validators/graph.validator.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/validators/graph.validator.ts.md",
            "ref": "anatomy:file-build-scripts-core-validators-graph-validator-ts"
          }
        }
      ],
      "exported": false,
      "flow": "leaf",
      "kind": "lexical_declaration",
      "line": 124,
      "name": "countsOf",
      "signature": "const countsOf = function countsOf(population: Population): readonly (readonly [string, number])[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "configuration/strings/graph.strings.ts",
          "name": "malformedReportEntries",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-configuration-strings-graph-strings-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/configuration/strings/graph.strings.ts",
            "label": "configuration/strings/graph.strings.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/configuration/strings/graph.strings.ts.md",
            "ref": "anatomy:file-build-scripts-configuration-strings-graph-strings-ts"
          }
        },
        {
          "file": "configuration/strings/graph.strings.ts",
          "name": "missingReportList",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-configuration-strings-graph-strings-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/configuration/strings/graph.strings.ts",
            "label": "configuration/strings/graph.strings.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/configuration/strings/graph.strings.ts.md",
            "ref": "anatomy:file-build-scripts-configuration-strings-graph-strings-ts"
          }
        },
        {
          "file": "core/validators/catalog.kind.validator.ts",
          "name": "findingsOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-catalog-kind-validator-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/validators/catalog.kind.validator.ts",
            "label": "core/validators/catalog.kind.validator.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/validators/catalog.kind.validator.ts.md",
            "ref": "anatomy:file-build-scripts-core-validators-catalog-kind-validator-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 89,
      "name": "reportCheck",
      "signature": "const reportCheck = function reportCheck<T>("
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "configuration/strings/graph.strings.ts",
          "name": "emptyPopulation",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-configuration-strings-graph-strings-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/configuration/strings/graph.strings.ts",
            "label": "configuration/strings/graph.strings.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/configuration/strings/graph.strings.ts.md",
            "ref": "anatomy:file-build-scripts-configuration-strings-graph-strings-ts"
          }
        },
        {
          "file": "configuration/strings/graph.strings.ts",
          "name": "unbalancedPopulation",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-configuration-strings-graph-strings-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/configuration/strings/graph.strings.ts",
            "label": "configuration/strings/graph.strings.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/configuration/strings/graph.strings.ts.md",
            "ref": "anatomy:file-build-scripts-configuration-strings-graph-strings-ts"
          }
        },
        {
          "file": "core/validators/graph.validator.ts",
          "name": "absenceFindings",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-graph-validator-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/validators/graph.validator.ts",
            "label": "core/validators/graph.validator.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/validators/graph.validator.ts.md",
            "ref": "anatomy:file-build-scripts-core-validators-graph-validator-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 142,
      "name": "populationFindings",
      "signature": "const populationFindings = function populationFindings(report: string, population: Population): Finding[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/validators/graph.validator.ts",
          "name": "isNode",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-graph-validator-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/validators/graph.validator.ts",
            "label": "core/validators/graph.validator.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/validators/graph.validator.ts.md",
            "ref": "anatomy:file-build-scripts-core-validators-graph-validator-ts"
          }
        },
        {
          "file": "core/validators/graph.validator.ts",
          "name": "isNode",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-graph-validator-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/core/validators/graph.validator.ts",
            "label": "core/validators/graph.validator.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/core/validators/graph.validator.ts.md",
            "ref": "anatomy:file-build-scripts-core-validators-graph-validator-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 83,
      "name": "isDuplicate",
      "signature": "const isDuplicate = function isDuplicate(value: unknown): value is Duplicate {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "configuration/strings/graph.strings.ts",
          "name": "sharedNumber",
          "source": {
            "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-configuration-strings-graph-strings-ts",
            "json": "https://banes-lab.com/json/source/build-scripts/configuration/strings/graph.strings.ts",
            "label": "configuration/strings/graph.strings.ts",
            "markdown": "https://banes-lab.com/source/build-scripts/configuration/strings/graph.strings.ts.md",
            "ref": "anatomy:file-build-scripts-configuration-strings-graph-strings-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 109,
      "name": "duplicateNumbers",
      "signature": "const duplicateNumbers = function duplicateNumbers(nodes: readonly GraphNode[]): Finding[] {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 26,
      "name": "ABSENT_MARK",
      "signature": "const ABSENT_MARK = \"absent\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 27,
      "name": "PART_SEPARATOR",
      "signature": "const PART_SEPARATOR = \" \";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "interface_declaration",
      "line": 29,
      "name": "Numbered",
      "signature": "interface Numbered {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "interface_declaration",
      "line": 34,
      "name": "Duplicate",
      "signature": "interface Duplicate {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 39,
      "name": "isText",
      "signature": "const isText = function isText(value: unknown): value is string {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 43,
      "name": "isEdge",
      "signature": "const isEdge = function isEdge(value: unknown): value is GraphEdge {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 52,
      "name": "isUndeclared",
      "signature": "const isUndeclared = function isUndeclared(value: unknown): value is Undeclared {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 56,
      "name": "isPopulation",
      "signature": "const isPopulation = function isPopulation(value: unknown): value is Population {"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 65,
      "name": "isTarget",
      "signature": "const isTarget = function isTarget(value: unknown): value is UnresolvedTarget {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "type_alias_declaration",
      "line": 87,
      "name": "ReportCheck",
      "signature": "type ReportCheck = (report: string, parsed: unknown) => Finding[];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 94,
      "name": "key",
      "signature": "const key = path.join(\".\");"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 96,
      "name": "list",
      "signature": "const list = path.reduce<unknown>((value, segment) => (isRecord(value) ? value[segment] : null), parsed);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 100,
      "name": "kept",
      "signature": "const kept = list.filter(guard);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 101,
      "name": "dropped",
      "signature": "const dropped = list.length - kept.length;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 110,
      "name": "first",
      "signature": "const first = new Map<string, string>();"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 111,
      "name": "findings",
      "signature": "const findings: Finding[] = [];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 112,
      "name": "numbered",
      "signature": "const numbered = nodes.filter((node): node is GraphNode & Numbered => node.number !== null);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 114,
      "name": "held",
      "signature": "const held = first.get(node.number);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 129,
      "name": "noun",
      "signature": "const noun = POPULATION_NOUNS.get(population.name);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 133,
      "name": "declared",
      "signature": "const declared = EXPECTED_ABSENCES.get(population.name);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 135,
      "name": "[state = \"\", layer = \"\", kind = \"\"]",
      "signature": "const [state = \"\", layer = \"\", kind = \"\"] = part.split(PART_SEPARATOR);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 143,
      "name": "sum",
      "signature": "const sum = countsOf(population).reduce((total, [, count]) => total + count, 0);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 153,
      "name": "REPORT_CHECKS",
      "signature": "const REPORT_CHECKS: readonly ReportCheck[] = ["
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 184,
      "name": "parsed",
      "signature": "const parsed: unknown = JSON.parse(readFileSync(report, \"utf8\"));"
    }
  ],
  "document": null,
  "findings": [],
  "generated": false,
  "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-graph-validator-ts",
  "language": "typescript",
  "layer": "processing",
  "name": "graph.validator.ts",
  "path": "core/validators/graph.validator.ts",
  "ref": "anatomy:file-build-scripts-core-validators-graph-validator-ts",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/build-scripts#folder-build-scripts-core-validators",
          "json": "https://banes-lab.com/json/anatomy/build-scripts/folder-build-scripts-core-validators",
          "label": "core/validators",
          "markdown": "https://banes-lab.com/anatomy/build-scripts/folder-build-scripts-core-validators.md",
          "ref": "chapter:/anatomy/build-scripts#folder-build-scripts-core-validators"
        }
      ],
      "relation": "contained-in"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-configuration-strings-graph-strings-ts",
          "json": "https://banes-lab.com/json/source/build-scripts/configuration/strings/graph.strings.ts",
          "label": "configuration/strings/graph.strings.ts",
          "markdown": "https://banes-lab.com/source/build-scripts/configuration/strings/graph.strings.ts.md",
          "ref": "anatomy:file-build-scripts-configuration-strings-graph-strings-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-converters-reference-converter-ts",
          "json": "https://banes-lab.com/json/source/build-scripts/core/converters/reference.converter.ts",
          "label": "core/converters/reference.converter.ts",
          "markdown": "https://banes-lab.com/source/build-scripts/core/converters/reference.converter.ts.md",
          "ref": "anatomy:file-build-scripts-core-converters-reference-converter-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-catalog-kind-validator-ts",
          "json": "https://banes-lab.com/json/source/build-scripts/core/validators/catalog.kind.validator.ts",
          "label": "core/validators/catalog.kind.validator.ts",
          "markdown": "https://banes-lab.com/source/build-scripts/core/validators/catalog.kind.validator.ts.md",
          "ref": "anatomy:file-build-scripts-core-validators-catalog-kind-validator-ts"
        }
      ],
      "relation": "uses"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-coordinators-validation-coordinator-ts",
          "json": "https://banes-lab.com/json/source/build-scripts/core/coordinators/validation.coordinator.ts",
          "label": "core/coordinators/validation.coordinator.ts",
          "markdown": "https://banes-lab.com/source/build-scripts/core/coordinators/validation.coordinator.ts.md",
          "ref": "anatomy:file-build-scripts-core-coordinators-validation-coordinator-ts"
        }
      ],
      "relation": "used-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/build-scripts#folder-build-scripts-configuration-strings",
          "json": "https://banes-lab.com/json/anatomy/build-scripts/folder-build-scripts-configuration-strings",
          "label": "configuration/strings",
          "markdown": "https://banes-lab.com/anatomy/build-scripts/folder-build-scripts-configuration-strings.md",
          "ref": "chapter:/anatomy/build-scripts#folder-build-scripts-configuration-strings"
        },
        {
          "href": "https://banes-lab.com/anatomy/build-scripts#folder-build-scripts-core-converters",
          "json": "https://banes-lab.com/json/anatomy/build-scripts/folder-build-scripts-core-converters",
          "label": "core/converters",
          "markdown": "https://banes-lab.com/anatomy/build-scripts/folder-build-scripts-core-converters.md",
          "ref": "chapter:/anatomy/build-scripts#folder-build-scripts-core-converters"
        },
        {
          "href": "https://banes-lab.com/anatomy/build-scripts#folder-build-scripts-core-coordinators",
          "json": "https://banes-lab.com/json/anatomy/build-scripts/folder-build-scripts-core-coordinators",
          "label": "core/coordinators",
          "markdown": "https://banes-lab.com/anatomy/build-scripts/folder-build-scripts-core-coordinators.md",
          "ref": "chapter:/anatomy/build-scripts#folder-build-scripts-core-coordinators"
        },
        {
          "href": "https://banes-lab.com/anatomy/build-scripts#folder-build-scripts-core-validators",
          "json": "https://banes-lab.com/json/anatomy/build-scripts/folder-build-scripts-core-validators",
          "label": "core/validators",
          "markdown": "https://banes-lab.com/anatomy/build-scripts/folder-build-scripts-core-validators.md",
          "ref": "chapter:/anatomy/build-scripts#folder-build-scripts-core-validators"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "slots": {
    "concern": "validator",
    "subject": "graph",
    "variant": null
  },
  "stats": {
    "bytes": 7086,
    "callable": 13,
    "definitions": 32,
    "edges": 12,
    "exported": 2,
    "files": 1,
    "findings": {},
    "flows": {
      "leaf": 2,
      "relay": 2,
      "entry": 4,
      "isolated": 24
    },
    "lines": {
      "blank": 18,
      "code": 168,
      "total": 186
    }
  },
  "summary": "168 lines of code and 32 definitions.",
  "text": "https://banes-lab.com/source/build-scripts/core/validators/graph.validator.ts.txt",
  "tree": "build-scripts",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-link-validator-ts",
      "json": "https://banes-lab.com/json/source/build-scripts/core/validators/link.validator.ts",
      "label": "core/validators/link.validator.ts",
      "markdown": "https://banes-lab.com/source/build-scripts/core/validators/link.validator.ts.md",
      "ref": "anatomy:file-build-scripts-core-validators-link-validator-ts"
    },
    "previous": {
      "href": "https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-validators-figure-validator-ts",
      "json": "https://banes-lab.com/json/source/build-scripts/core/validators/figure.validator.ts",
      "label": "core/validators/figure.validator.ts",
      "markdown": "https://banes-lab.com/source/build-scripts/core/validators/figure.validator.ts.md",
      "ref": "anatomy:file-build-scripts-core-validators-figure-validator-ts"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/source/build-scripts/core/validators",
    "label": "core/validators",
    "markdown": "https://banes-lab.com/api/source/build-scripts/core/validators.md",
    "ref": "api:source/build-scripts/core/validators"
  }
}
