{
  "definitions": [
    {
      "callable": true,
      "callees": [
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "attributionLine",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        }
      ],
      "callers": [
        {
          "file": "core/renderers/chapter.renderer.ts",
          "name": "renderChapters",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
            "label": "core/renderers/chapter.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
          }
        }
      ],
      "exported": true,
      "flow": "relay",
      "kind": "lexical_declaration",
      "line": 176,
      "name": "renderReadme",
      "signature": "export const renderReadme = function renderReadme(inputs: ReadmeInputs, attribution: Attribution): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "link",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        },
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "numbered",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        },
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "section",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        },
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "tabFileOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 164,
      "name": "reading",
      "signature": "const reading = function reading(page: ReadmePage): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/normalizers/readme.normalizer.ts",
          "name": "isRepositoryPage",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-normalizers-readme-normalizer-ts",
            "json": "https://banes-lab.com/json/source/content/core/normalizers/readme.normalizer.ts",
            "label": "core/normalizers/readme.normalizer.ts",
            "markdown": "https://banes-lab.com/source/content/core/normalizers/readme.normalizer.ts.md",
            "ref": "anatomy:file-content-core-normalizers-readme-normalizer-ts"
          }
        },
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "link",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        },
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "tabFileOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 144,
      "name": "exhibitChapters",
      "signature": "const exhibitChapters = function exhibitChapters(page: ReadmePage): string[] {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "link",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        },
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "tabFileOf",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 129,
      "name": "chapterEntry",
      "signature": "const chapterEntry = function chapterEntry(tab: ReadmeTab): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "numbered",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        },
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "section",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 138,
      "name": "stance",
      "signature": "const stance = function stance(): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "section",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 134,
      "name": "works",
      "signature": "const works = function works(page: ReadmePage): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "section",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 152,
      "name": "exhibits",
      "signature": "const exhibits = function exhibits(inputs: ReadmeInputs): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "numbered",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 160,
      "name": "stepGroup",
      "signature": "const stepGroup = function stepGroup(group: ReadmeStep): string {"
    },
    {
      "callable": true,
      "callees": [
        {
          "file": "core/renderers/markdown.renderer.ts",
          "name": "section",
          "source": {
            "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
            "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
            "label": "core/renderers/markdown.renderer.ts",
            "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
            "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
          }
        }
      ],
      "callers": [],
      "exported": false,
      "flow": "entry",
      "kind": "lexical_declaration",
      "line": 168,
      "name": "loop",
      "signature": "const loop = function loop(page: ReadmePage): string {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 93,
      "name": "ATTRIBUTION_SPACE",
      "signature": "const ATTRIBUTION_SPACE = \" \";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 94,
      "name": "ITEM_INDENT",
      "signature": "const ITEM_INDENT = \"  \";"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 96,
      "name": "header",
      "signature": "const header = function header(inputs: ReadmeInputs, attribution: Attribution): string {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 97,
      "name": "owner",
      "signature": "const owner ="
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 103,
      "name": "license",
      "signature": "const license = LICENSED_UNDER + link(attribution.licenseName, attribution.licenseUrl);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 104,
      "name": "icons",
      "signature": "const icons = [LICENSE_CC, LICENSE_BY, LICENSE_SA].map((icon) => image(SITE_URL + icon, ICON_SIZE, \"\")).join(\"\");"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 105,
      "name": "logo",
      "signature": "const logo = image(SITE_URL + BADGE_LOGO, LOGO_WIDTH, inputs.heading);"
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 109,
      "name": "callout",
      "signature": "const callout = function callout(inputs: ReadmeInputs): string {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 110,
      "name": "grammar",
      "signature": "const grammar = inputs.exhibits.find((page) => page.page === GRAMMAR_PAGE);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 111,
      "name": "lines",
      "signature": "const lines = ["
    },
    {
      "callable": true,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 125,
      "name": "sectionsOf",
      "signature": "const sectionsOf = function sectionsOf(page: ReadmePage): readonly ReadmeSection[] {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 130,
      "name": "summary",
      "signature": "const summary = CHAPTER_SUMMARIES.find((entry) => entry.tab === tab.id)?.summary ?? \"\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 139,
      "name": "target",
      "signature": "const target = tabFileOf(START_TAB) + ANCHOR_MARK + STANCE_SECTION_ID;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 140,
      "name": "tail",
      "signature": "const tail = STANCE_TAIL + link(STANCE_TITLE, target) + SENTENCE_END;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 148,
      "name": "folder",
      "signature": "const folder = pageFolderOf(page.page, page.title);"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 153,
      "name": "items",
      "signature": "const items = inputs.exhibits.flatMap((page) => ["
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 169,
      "name": "diagram",
      "signature": "const diagram = sectionsOf(page).find((candidate) => candidate.id === LOOP_SECTION_ID)?.diagram;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 177,
      "name": "body",
      "signature": "const body = ["
    }
  ],
  "document": null,
  "findings": [],
  "generated": false,
  "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-readme-renderer-ts",
  "language": "typescript",
  "layer": "product",
  "name": "readme.renderer.ts",
  "path": "core/renderers/readme.renderer.ts",
  "ref": "anatomy:file-content-core-renderers-readme-renderer-ts",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/content#folder-content-core-renderers",
          "json": "https://banes-lab.com/json/anatomy/content/folder-content-core-renderers",
          "label": "core/renderers",
          "markdown": "https://banes-lab.com/anatomy/content/folder-content-core-renderers.md",
          "ref": "chapter:/anatomy/content#folder-content-core-renderers"
        }
      ],
      "relation": "contained-in"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/content#file-content-core-normalizers-readme-normalizer-ts",
          "json": "https://banes-lab.com/json/source/content/core/normalizers/readme.normalizer.ts",
          "label": "core/normalizers/readme.normalizer.ts",
          "markdown": "https://banes-lab.com/source/content/core/normalizers/readme.normalizer.ts.md",
          "ref": "anatomy:file-content-core-normalizers-readme-normalizer-ts"
        },
        {
          "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
          "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
          "label": "core/renderers/markdown.renderer.ts",
          "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
          "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
        }
      ],
      "relation": "uses"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-chapter-renderer-ts",
          "json": "https://banes-lab.com/json/source/content/core/renderers/chapter.renderer.ts",
          "label": "core/renderers/chapter.renderer.ts",
          "markdown": "https://banes-lab.com/source/content/core/renderers/chapter.renderer.ts.md",
          "ref": "anatomy:file-content-core-renderers-chapter-renderer-ts"
        }
      ],
      "relation": "used-by"
    },
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/content#folder-content-core-normalizers",
          "json": "https://banes-lab.com/json/anatomy/content/folder-content-core-normalizers",
          "label": "core/normalizers",
          "markdown": "https://banes-lab.com/anatomy/content/folder-content-core-normalizers.md",
          "ref": "chapter:/anatomy/content#folder-content-core-normalizers"
        },
        {
          "href": "https://banes-lab.com/anatomy/content#folder-content-core-renderers",
          "json": "https://banes-lab.com/json/anatomy/content/folder-content-core-renderers",
          "label": "core/renderers",
          "markdown": "https://banes-lab.com/anatomy/content/folder-content-core-renderers.md",
          "ref": "chapter:/anatomy/content#folder-content-core-renderers"
        }
      ],
      "relation": "linked-from"
    }
  ],
  "slots": {
    "concern": "renderer",
    "subject": "readme",
    "variant": null
  },
  "stats": {
    "bytes": 7068,
    "callable": 12,
    "definitions": 27,
    "edges": 16,
    "exported": 2,
    "files": 1,
    "findings": {},
    "flows": {
      "relay": 1,
      "entry": 8,
      "isolated": 18
    },
    "lines": {
      "blank": 13,
      "code": 184,
      "total": 197
    }
  },
  "summary": "184 lines of code and 27 definitions.",
  "text": "https://banes-lab.com/source/content/core/renderers/readme.renderer.ts.txt",
  "tree": "content",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-wiki-renderer-ts",
      "json": "https://banes-lab.com/json/source/content/core/renderers/wiki.renderer.ts",
      "label": "core/renderers/wiki.renderer.ts",
      "markdown": "https://banes-lab.com/source/content/core/renderers/wiki.renderer.ts.md",
      "ref": "anatomy:file-content-core-renderers-wiki-renderer-ts"
    },
    "previous": {
      "href": "https://banes-lab.com/anatomy/content#file-content-core-renderers-markdown-renderer-ts",
      "json": "https://banes-lab.com/json/source/content/core/renderers/markdown.renderer.ts",
      "label": "core/renderers/markdown.renderer.ts",
      "markdown": "https://banes-lab.com/source/content/core/renderers/markdown.renderer.ts.md",
      "ref": "anatomy:file-content-core-renderers-markdown-renderer-ts"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/source/content/core/renderers",
    "label": "core/renderers",
    "markdown": "https://banes-lab.com/api/source/content/core/renderers.md",
    "ref": "api:source/content/core/renderers"
  }
}
