{
  "packages": [
    {
      "name": "@babel/runtime",
      "version": "7.29.10",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/babel/babel.git",
        "directory": "packages/babel-runtime"
      },
      "files": [
        "/assets/licenses/interactive/npm/@babel_runtime-7.29.10/LICENSE"
      ]
    },
    {
      "name": "@braintree/sanitize-url",
      "version": "6.0.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/braintree/sanitize-url.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/@braintree_sanitize-url-6.0.2/LICENSE"
      ]
    },
    {
      "name": "@excalidraw/excalidraw",
      "version": "0.18.1",
      "license": "MIT",
      "repository": "https://github.com/excalidraw/excalidraw",
      "files": []
    },
    {
      "name": "@radix-ui/primitive",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-tabs",
      "version": "1.0.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-context",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-direction",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-id",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-use-layout-effect",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-presence",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-compose-refs",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-use-layout-effect",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-primitive",
      "version": "1.0.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-slot",
      "version": "1.0.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-compose-refs",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-roving-focus",
      "version": "1.0.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-collection",
      "version": "1.0.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-slot",
      "version": "1.0.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-compose-refs",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-use-callback-ref",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-use-controllable-state",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-use-callback-ref",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@excalidraw/laser-pointer",
      "version": "1.3.1",
      "license": "MIT",
      "files": [
        "/assets/licenses/interactive/npm/@excalidraw_laser-pointer-1.3.1/LICENSE"
      ]
    },
    {
      "name": "@excalidraw/markdown-to-text",
      "version": "0.1.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/danestves/markdown-to-text.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/@excalidraw_markdown-to-text-0.1.2/LICENSE"
      ]
    },
    {
      "name": "@excalidraw/mermaid-to-excalidraw",
      "version": "2.2.2",
      "license": "MIT",
      "files": [
        "/assets/licenses/interactive/npm/@excalidraw_mermaid-to-excalidraw-2.2.2/LICENSE"
      ]
    },
    {
      "name": "nanoid",
      "version": "4.0.2",
      "license": "MIT",
      "repository": "ai/nanoid",
      "files": [
        "/assets/licenses/interactive/npm/nanoid-4.0.2/LICENSE"
      ]
    },
    {
      "name": "@floating-ui/core",
      "version": "1.8.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/floating-ui/floating-ui.git",
        "directory": "packages/core"
      },
      "files": [
        "/assets/licenses/interactive/npm/@floating-ui_core-1.8.0/LICENSE"
      ]
    },
    {
      "name": "@floating-ui/dom",
      "version": "1.8.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/floating-ui/floating-ui.git",
        "directory": "packages/dom"
      },
      "files": [
        "/assets/licenses/interactive/npm/@floating-ui_dom-1.8.0/LICENSE"
      ]
    },
    {
      "name": "@floating-ui/react-dom",
      "version": "2.1.9",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/floating-ui/floating-ui.git",
        "directory": "packages/react-dom"
      },
      "files": [
        "/assets/licenses/interactive/npm/@floating-ui_react-dom-2.1.9/LICENSE"
      ]
    },
    {
      "name": "@floating-ui/utils",
      "version": "0.2.12",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/floating-ui/floating-ui.git",
        "directory": "packages/utils"
      },
      "files": [
        "/assets/licenses/interactive/npm/@floating-ui_utils-0.2.12/LICENSE"
      ]
    },
    {
      "name": "@iconify/utils",
      "version": "3.1.7",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/iconify/iconify.git",
        "directory": "packages/utils"
      },
      "files": [
        "/assets/licenses/interactive/npm/@iconify_utils-3.1.7/license.txt"
      ]
    },
    {
      "name": "@radix-ui/primitive",
      "version": "1.1.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-arrow",
      "version": "1.1.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-compose-refs",
      "version": "1.1.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-context",
      "version": "1.1.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-dismissable-layer",
      "version": "1.1.5",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-focus-guards",
      "version": "1.1.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-focus-scope",
      "version": "1.1.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-id",
      "version": "1.1.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-popover",
      "version": "1.1.6",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-popper",
      "version": "1.2.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-portal",
      "version": "1.1.4",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-presence",
      "version": "1.1.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-primitive",
      "version": "2.0.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-slot",
      "version": "1.1.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-use-callback-ref",
      "version": "1.1.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-use-controllable-state",
      "version": "1.1.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-use-escape-keydown",
      "version": "1.1.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-use-layout-effect",
      "version": "1.1.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@radix-ui/react-use-size",
      "version": "1.1.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/radix-ui/primitives.git"
      },
      "files": []
    },
    {
      "name": "@tesseract.js-data/chi_sim",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/naptha/tessdata.git"
      },
      "files": []
    },
    {
      "name": "@tesseract.js-data/eng",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/naptha/tessdata.git"
      },
      "files": []
    },
    {
      "name": "@upsetjs/venn.js",
      "version": "2.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/upsetjs/venn.js.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/@upsetjs_venn.js-2.0.0/LICENSE"
      ]
    },
    {
      "name": "abcjs",
      "version": "6.7.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/paulrosen/abcjs.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/abcjs-6.7.2/license.js",
        "/assets/licenses/interactive/npm/abcjs-6.7.2/LICENSE.md"
      ]
    },
    {
      "name": "aria-hidden",
      "version": "1.2.6",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/theKashey/aria-hidden.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/aria-hidden-1.2.6/LICENSE"
      ]
    },
    {
      "name": "blockly",
      "version": "13.4.0",
      "license": "Apache-2.0",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/RaspberryPiFoundation/blockly.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/blockly-13.4.0/LICENSE"
      ]
    },
    {
      "name": "browser-fs-access",
      "version": "0.29.1",
      "license": "Apache-2.0",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/GoogleChromeLabs/browser-fs-access.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/browser-fs-access-0.29.1/LICENSE"
      ]
    },
    {
      "name": "canvas-roundrect-polyfill",
      "version": "0.0.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/Kaiido/roundRect.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/canvas-roundrect-polyfill-0.0.1/LICENSE"
      ]
    },
    {
      "name": "clsx",
      "version": "1.1.1",
      "license": "MIT",
      "repository": "lukeed/clsx",
      "files": [
        "/assets/licenses/interactive/npm/clsx-1.1.1/license"
      ]
    },
    {
      "name": "cose-base",
      "version": "1.0.3",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/iVis-at-Bilkent/cose-base.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/cose-base-1.0.3/LICENSE"
      ]
    },
    {
      "name": "crc-32",
      "version": "0.3.0",
      "license": "Apache-2.0",
      "repository": {
        "type": "git",
        "url": "git://github.com/SheetJS/js-crc32.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/crc-32-0.3.0/LICENSE"
      ]
    },
    {
      "name": "cytoscape",
      "version": "3.34.4",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/cytoscape/cytoscape.js.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/cytoscape-3.34.4/LICENSE",
        "/assets/licenses/interactive/npm/cytoscape-3.34.4/license-update.mjs"
      ]
    },
    {
      "name": "cytoscape-cose-bilkent",
      "version": "4.1.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/cytoscape/cytoscape.js-cose-bilkent.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/cytoscape-cose-bilkent-4.1.0/LICENSE"
      ]
    },
    {
      "name": "cytoscape-fcose",
      "version": "2.2.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/iVis-at-Bilkent/cytoscape.js-fcose.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/cytoscape-fcose-2.2.0/LICENSE"
      ]
    },
    {
      "name": "cose-base",
      "version": "2.2.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/iVis-at-Bilkent/cose-base.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/cose-base-2.2.0/LICENSE"
      ]
    },
    {
      "name": "layout-base",
      "version": "2.0.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/iVis-at-Bilkent/layout-base.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/layout-base-2.0.1/LICENSE"
      ]
    },
    {
      "name": "d3",
      "version": "7.9.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-7.9.0/LICENSE"
      ]
    },
    {
      "name": "d3-array",
      "version": "3.2.4",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-array.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-array-3.2.4/LICENSE"
      ]
    },
    {
      "name": "d3-axis",
      "version": "3.0.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-axis.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-axis-3.0.0/LICENSE"
      ]
    },
    {
      "name": "d3-brush",
      "version": "3.0.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-brush.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-brush-3.0.0/LICENSE"
      ]
    },
    {
      "name": "d3-chord",
      "version": "3.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-chord.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-chord-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-color",
      "version": "3.1.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-color.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-color-3.1.0/LICENSE"
      ]
    },
    {
      "name": "d3-contour",
      "version": "4.0.2",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-contour.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-contour-4.0.2/LICENSE"
      ]
    },
    {
      "name": "d3-delaunay",
      "version": "6.0.4",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-delaunay.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-delaunay-6.0.4/LICENSE"
      ]
    },
    {
      "name": "d3-dispatch",
      "version": "3.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-dispatch.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-dispatch-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-drag",
      "version": "3.0.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-drag.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-drag-3.0.0/LICENSE"
      ]
    },
    {
      "name": "d3-dsv",
      "version": "3.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-dsv.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-dsv-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-ease",
      "version": "3.0.1",
      "license": "BSD-3-Clause",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-ease.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-ease-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-fetch",
      "version": "3.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-fetch.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-fetch-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-force",
      "version": "3.0.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-force.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-force-3.0.0/LICENSE"
      ]
    },
    {
      "name": "d3-format",
      "version": "3.1.2",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-format.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-format-3.1.2/LICENSE"
      ]
    },
    {
      "name": "d3-geo",
      "version": "3.1.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-geo.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-geo-3.1.1/LICENSE"
      ]
    },
    {
      "name": "d3-hierarchy",
      "version": "3.1.2",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-hierarchy.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-hierarchy-3.1.2/LICENSE"
      ]
    },
    {
      "name": "d3-interpolate",
      "version": "3.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-interpolate.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-interpolate-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-path",
      "version": "3.1.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-path.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-path-3.1.0/LICENSE"
      ]
    },
    {
      "name": "d3-polygon",
      "version": "3.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-polygon.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-polygon-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-quadtree",
      "version": "3.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-quadtree.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-quadtree-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-random",
      "version": "3.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-random.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-random-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-sankey",
      "version": "0.12.3",
      "license": "BSD-3-Clause",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-sankey.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-sankey-0.12.3/LICENSE"
      ]
    },
    {
      "name": "d3-array",
      "version": "2.12.1",
      "license": "BSD-3-Clause",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-array.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-array-2.12.1/LICENSE"
      ]
    },
    {
      "name": "d3-path",
      "version": "1.0.9",
      "license": "BSD-3-Clause",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-path.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-path-1.0.9/LICENSE"
      ]
    },
    {
      "name": "d3-shape",
      "version": "1.3.7",
      "license": "BSD-3-Clause",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-shape.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-shape-1.3.7/LICENSE"
      ]
    },
    {
      "name": "internmap",
      "version": "1.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/mbostock/internmap.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/internmap-1.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-scale",
      "version": "4.0.2",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-scale.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-scale-4.0.2/LICENSE"
      ]
    },
    {
      "name": "d3-scale-chromatic",
      "version": "3.1.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-scale-chromatic.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-scale-chromatic-3.1.0/LICENSE"
      ]
    },
    {
      "name": "d3-selection",
      "version": "3.0.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-selection.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-selection-3.0.0/LICENSE"
      ]
    },
    {
      "name": "d3-shape",
      "version": "3.2.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-shape.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-shape-3.2.0/LICENSE"
      ]
    },
    {
      "name": "d3-time",
      "version": "3.1.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-time.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-time-3.1.0/LICENSE"
      ]
    },
    {
      "name": "d3-time-format",
      "version": "4.1.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-time-format.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-time-format-4.1.0/LICENSE"
      ]
    },
    {
      "name": "d3-timer",
      "version": "3.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-timer.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-timer-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-transition",
      "version": "3.0.1",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-transition.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-transition-3.0.1/LICENSE"
      ]
    },
    {
      "name": "d3-zoom",
      "version": "3.0.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/d3/d3-zoom.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/d3-zoom-3.0.0/LICENSE"
      ]
    },
    {
      "name": "dagre-d3-es",
      "version": "7.0.14",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/tbo47/dagre-es.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/dagre-d3-es-7.0.14/LICENSE.md"
      ]
    },
    {
      "name": "dayjs",
      "version": "1.11.23",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/iamkun/dayjs.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/dayjs-1.11.23/LICENSE"
      ]
    },
    {
      "name": "delaunator",
      "version": "5.1.0",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/mapbox/delaunator.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/delaunator-5.1.0/LICENSE"
      ]
    },
    {
      "name": "detect-node-es",
      "version": "1.1.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/thekashey/detect-node"
      },
      "files": [
        "/assets/licenses/interactive/npm/detect-node-es-1.1.0/LICENSE"
      ]
    },
    {
      "name": "dompurify",
      "version": "3.4.17",
      "license": "(MPL-2.0 OR Apache-2.0)",
      "repository": {
        "type": "git",
        "url": "git://github.com/cure53/DOMPurify.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/dompurify-3.4.17/LICENSE",
        "/assets/licenses/interactive/npm/dompurify-3.4.17/LICENSE-MPL"
      ]
    },
    {
      "name": "es-toolkit",
      "version": "1.52.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/toss/es-toolkit.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/es-toolkit-1.52.0/LICENSE",
        "/assets/licenses/interactive/npm/es-toolkit-1.52.0/NOTICE"
      ]
    },
    {
      "name": "es6-promise-pool",
      "version": "2.5.0",
      "license": "MIT",
      "repository": "timdp/es6-promise-pool",
      "files": [
        "/assets/licenses/interactive/npm/es6-promise-pool-2.5.0/LICENSE"
      ]
    },
    {
      "name": "fastdom",
      "version": "1.0.12",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git://github.com/wilsonpage/fastdom.git"
      },
      "files": []
    },
    {
      "name": "fflate",
      "version": "0.8.2",
      "license": "MIT",
      "repository": "https://github.com/101arrowz/fflate",
      "files": [
        "/assets/licenses/interactive/npm/fflate-0.8.2/LICENSE"
      ]
    },
    {
      "name": "fractional-indexing",
      "version": "3.2.0",
      "license": "CC0-1.0",
      "repository": {
        "type": "git",
        "url": "https://github.com/rocicorp/fractional-indexing.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/fractional-indexing-3.2.0/LICENSE"
      ]
    },
    {
      "name": "fuzzy",
      "version": "0.1.3",
      "repository": {
        "type": "git",
        "url": "git://github.com/mattyork/fuzzy.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/fuzzy-0.1.3/LICENSE-MIT"
      ]
    },
    {
      "name": "get-nonce",
      "version": "1.0.1",
      "license": "MIT",
      "repository": "git@github.com:theKashey/get-nonce.git",
      "files": [
        "/assets/licenses/interactive/npm/get-nonce-1.0.1/LICENSE"
      ]
    },
    {
      "name": "hachure-fill",
      "version": "0.5.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pshihn/hachure-fill.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/hachure-fill-0.5.2/LICENSE"
      ]
    },
    {
      "name": "image-blob-reduce",
      "version": "3.0.1",
      "license": "MIT",
      "repository": "nodeca/image-blob-reduce",
      "files": [
        "/assets/licenses/interactive/npm/image-blob-reduce-3.0.1/LICENSE"
      ]
    },
    {
      "name": "internmap",
      "version": "2.0.3",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "https://github.com/mbostock/internmap.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/internmap-2.0.3/LICENSE"
      ]
    },
    {
      "name": "jotai",
      "version": "2.11.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pmndrs/jotai.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/jotai-2.11.0/LICENSE"
      ]
    },
    {
      "name": "jotai-scope",
      "version": "0.7.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/jotaijs/jotai-scope.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/jotai-scope-0.7.2/LICENSE"
      ]
    },
    {
      "name": "jsxgraph",
      "version": "1.14.1",
      "license": "(MIT OR LGPL-3.0-or-later)",
      "repository": {
        "type": "git",
        "url": "https://github.com/jsxgraph/jsxgraph.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/jsxgraph-1.14.1/LICENSE.LGPL",
        "/assets/licenses/interactive/npm/jsxgraph-1.14.1/LICENSE.MIT"
      ]
    },
    {
      "name": "katex",
      "version": "0.16.47",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/KaTeX/KaTeX.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/katex-0.16.47/LICENSE"
      ]
    },
    {
      "name": "khroma",
      "version": "2.1.0",
      "repository": "github:fabiospampinato/khroma",
      "files": [
        "/assets/licenses/interactive/npm/khroma-2.1.0/license"
      ]
    },
    {
      "name": "layout-base",
      "version": "1.0.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/iVis-at-Bilkent/layout-base.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/layout-base-1.0.2/LICENSE"
      ]
    },
    {
      "name": "lodash-es",
      "version": "4.17.21",
      "license": "MIT",
      "repository": "lodash/lodash",
      "files": [
        "/assets/licenses/interactive/npm/lodash-es-4.17.21/LICENSE"
      ]
    },
    {
      "name": "lodash.debounce",
      "version": "4.0.8",
      "license": "MIT",
      "repository": "lodash/lodash",
      "files": [
        "/assets/licenses/interactive/npm/lodash.debounce-4.0.8/LICENSE"
      ]
    },
    {
      "name": "lodash.throttle",
      "version": "4.1.1",
      "license": "MIT",
      "repository": "lodash/lodash",
      "files": [
        "/assets/licenses/interactive/npm/lodash.throttle-4.1.1/LICENSE"
      ]
    },
    {
      "name": "marked",
      "version": "16.4.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git://github.com/markedjs/marked.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/marked-16.4.2/LICENSE.md"
      ]
    },
    {
      "name": "mermaid",
      "version": "11.17.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/mermaid-js/mermaid"
      },
      "files": [
        "/assets/licenses/interactive/npm/mermaid-11.17.2/LICENSE"
      ]
    },
    {
      "name": "@braintree/sanitize-url",
      "version": "7.1.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/braintree/sanitize-url.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/@braintree_sanitize-url-7.1.2/LICENSE"
      ]
    },
    {
      "name": "@mermaid-js/parser",
      "version": "1.2.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/mermaid-js/mermaid.git",
        "directory": "packages/parser"
      },
      "files": [
        "/assets/licenses/interactive/npm/@mermaid-js_parser-1.2.1/LICENSE"
      ]
    },
    {
      "name": "roughjs",
      "version": "4.6.6",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pshihn/rough.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/roughjs-4.6.6/LICENSE"
      ]
    },
    {
      "name": "nanoid",
      "version": "3.3.3",
      "license": "MIT",
      "repository": "ai/nanoid",
      "files": [
        "/assets/licenses/interactive/npm/nanoid-3.3.3/LICENSE"
      ]
    },
    {
      "name": "open-color",
      "version": "1.9.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/yeun/open-color.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/open-color-1.9.1/LICENSE"
      ]
    },
    {
      "name": "pako",
      "version": "2.0.3",
      "license": "(MIT AND Zlib)",
      "repository": "nodeca/pako",
      "files": [
        "/assets/licenses/interactive/npm/pako-2.0.3/LICENSE"
      ]
    },
    {
      "name": "path-data-parser",
      "version": "0.1.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pshihn/path-data-parser.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/path-data-parser-0.1.0/LICENSE"
      ]
    },
    {
      "name": "perfect-freehand",
      "version": "1.2.0",
      "license": "MIT",
      "repository": "https://github.com/steveruizok/perfect-freehand",
      "files": [
        "/assets/licenses/interactive/npm/perfect-freehand-1.2.0/LICENSE"
      ]
    },
    {
      "name": "pica",
      "version": "7.1.1",
      "license": "MIT",
      "repository": "nodeca/pica",
      "files": [
        "/assets/licenses/interactive/npm/pica-7.1.1/LICENSE"
      ]
    },
    {
      "name": "png-chunk-text",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git://github.com/hughsk/png-chunk-text.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/png-chunk-text-1.0.0/LICENSE.md"
      ]
    },
    {
      "name": "png-chunks-encode",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git://github.com/hughsk/png-chunks-encode.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/png-chunks-encode-1.0.0/LICENSE.md"
      ]
    },
    {
      "name": "png-chunks-extract",
      "version": "1.0.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git://github.com/hughsk/png-chunks-extract.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/png-chunks-extract-1.0.0/LICENSE.md"
      ]
    },
    {
      "name": "points-on-curve",
      "version": "1.0.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pshihn/bezier-points.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/points-on-curve-1.0.1/LICENSE"
      ]
    },
    {
      "name": "points-on-path",
      "version": "0.2.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pshihn/points-on-path.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/points-on-path-0.2.1/LICENSE"
      ]
    },
    {
      "name": "points-on-curve",
      "version": "0.2.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pshihn/bezier-points.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/points-on-curve-0.2.0/LICENSE"
      ]
    },
    {
      "name": "react",
      "version": "18.3.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/facebook/react.git",
        "directory": "packages/react"
      },
      "files": [
        "/assets/licenses/interactive/npm/react-18.3.1/LICENSE"
      ]
    },
    {
      "name": "react-dom",
      "version": "18.3.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/facebook/react.git",
        "directory": "packages/react-dom"
      },
      "files": [
        "/assets/licenses/interactive/npm/react-dom-18.3.1/LICENSE"
      ]
    },
    {
      "name": "react-remove-scroll",
      "version": "2.7.2",
      "license": "MIT",
      "repository": "https://github.com/theKashey/react-remove-scroll",
      "files": [
        "/assets/licenses/interactive/npm/react-remove-scroll-2.7.2/LICENSE"
      ]
    },
    {
      "name": "react-remove-scroll-bar",
      "version": "2.3.8",
      "license": "MIT",
      "repository": "https://github.com/theKashey/react-remove-scroll-bar",
      "files": []
    },
    {
      "name": "react-style-singleton",
      "version": "2.2.3",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/theKashey/react-style-singleton"
      },
      "files": [
        "/assets/licenses/interactive/npm/react-style-singleton-2.2.3/LICENSE"
      ]
    },
    {
      "name": "regenerator-runtime",
      "version": "0.13.11",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/facebook/regenerator/tree/main/packages/runtime"
      },
      "files": [
        "/assets/licenses/interactive/npm/regenerator-runtime-0.13.11/LICENSE"
      ]
    },
    {
      "name": "robust-predicates",
      "version": "3.0.3",
      "license": "Unlicense",
      "repository": {
        "type": "git",
        "url": "https://github.com/mourner/robust-predicates.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/robust-predicates-3.0.3/LICENSE"
      ]
    },
    {
      "name": "roughjs",
      "version": "4.6.4",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pshihn/rough.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/roughjs-4.6.4/LICENSE"
      ]
    },
    {
      "name": "points-on-curve",
      "version": "0.2.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pshihn/bezier-points.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/points-on-curve-0.2.0/LICENSE"
      ]
    },
    {
      "name": "scheduler",
      "version": "0.23.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/facebook/react.git",
        "directory": "packages/scheduler"
      },
      "files": [
        "/assets/licenses/interactive/npm/scheduler-0.23.2/LICENSE"
      ]
    },
    {
      "name": "sliced",
      "version": "1.0.1",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git://github.com/aheckmann/sliced"
      },
      "files": [
        "/assets/licenses/interactive/npm/sliced-1.0.1/LICENSE"
      ]
    },
    {
      "name": "stylis",
      "version": "4.4.0",
      "license": "MIT",
      "repository": "https://github.com/thysultan/stylis.js",
      "files": [
        "/assets/licenses/interactive/npm/stylis-4.4.0/LICENSE"
      ]
    },
    {
      "name": "tesseract.js",
      "version": "7.0.0",
      "license": "Apache-2.0",
      "repository": {
        "type": "git",
        "url": "https://github.com/naptha/tesseract.js.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/tesseract.js-7.0.0/LICENSE.md"
      ]
    },
    {
      "name": "tesseract.js-core",
      "version": "7.0.0",
      "license": "Apache-2.0",
      "repository": {
        "type": "git",
        "url": "https://github.com/naptha/tesseract.js-core.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/tesseract.js-core-7.0.0/LICENSE"
      ]
    },
    {
      "name": "ts-dedent",
      "version": "2.3.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/tamino-martinius/node-ts-dedent.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/ts-dedent-2.3.0/LICENSE"
      ]
    },
    {
      "name": "tslib",
      "version": "2.8.1",
      "license": "0BSD",
      "repository": {
        "type": "git",
        "url": "https://github.com/Microsoft/tslib.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/tslib-2.8.1/LICENSE.txt"
      ]
    },
    {
      "name": "tunnel-rat",
      "version": "0.1.2",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pmndrs/tunnel-rat.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/tunnel-rat-0.1.2/LICENSE"
      ]
    },
    {
      "name": "use-callback-ref",
      "version": "1.3.3",
      "license": "MIT",
      "repository": "https://github.com/theKashey/use-callback-ref/",
      "files": [
        "/assets/licenses/interactive/npm/use-callback-ref-1.3.3/LICENSE"
      ]
    },
    {
      "name": "use-sidecar",
      "version": "1.1.3",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/theKashey/use-sidecar"
      },
      "files": [
        "/assets/licenses/interactive/npm/use-sidecar-1.1.3/LICENSE"
      ]
    },
    {
      "name": "use-sync-external-store",
      "version": "1.7.0",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/react/react.git",
        "directory": "packages/use-sync-external-store"
      },
      "files": [
        "/assets/licenses/interactive/npm/use-sync-external-store-1.7.0/LICENSE"
      ]
    },
    {
      "name": "uuid",
      "version": "14.0.3",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/uuidjs/uuid.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/uuid-14.0.3/LICENSE.md"
      ]
    },
    {
      "name": "zustand",
      "version": "4.5.7",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "git+https://github.com/pmndrs/zustand.git"
      },
      "files": [
        "/assets/licenses/interactive/npm/zustand-4.5.7/LICENSE"
      ]
    }
  ],
  "upstream": [
    {
      "id": "hanzigraph",
      "repository": "https://github.com/mreichhoff/HanziGraph",
      "commit": "c5caec12cda6f6e6dd6f7feb38b357c4aa11aba5",
      "archiveSha256": "ee6464bfcf967fe16b19087098a95c2c62237f007f567c4809ad34368ca80003",
      "source": "/study/hanzi-map/app/source/README.md"
    },
    {
      "id": "qwerty",
      "repository": "https://github.com/RealKai42/qwerty-learner",
      "commit": "1182426f2bd0a28c95302c33f9e19136b1262a70",
      "archiveSha256": "9fbe211600a076960523c5fabc0f5ccf5fae897be11836663493ba0717c7bf7d",
      "source": "/study/typing/app/qwerty-local-source.zip"
    },
    {
      "id": "circuitjs",
      "repository": "https://github.com/sharpie7/circuitjs1",
      "commit": "dd47cf43a1baa91e2d6ae0f5884ccf0f589989bf",
      "archiveSha256": "22e5e904a333cc56f6ef4ada338940d28371369e549308481e0fcf98b89e18dd",
      "source": "/study/circuit-lab/app/circuitjs-source.zip"
    }
  ],
  "fontLicenses": "/assets/licenses/interactive/fonts/provenance.json",
  "features": [
    {
      "url": "/study/hanzi-map/",
      "title": "汉字关系图",
      "description": "按汉字查看组词关系和部件树，连接本站字词查询。",
      "project": "HanziGraph"
    },
    {
      "url": "/study/typing/",
      "title": "英语打字背词",
      "description": "三组自编基础词库，结合打字、拼写、发音和本机进度。",
      "project": "Qwerty Learner"
    },
    {
      "url": "/study/math-lab/",
      "title": "交互数学实验",
      "description": "拖动三角形、调整二次函数系数、观察单位圆与三角函数。",
      "project": "JSXGraph"
    },
    {
      "url": "/study/whiteboard/",
      "title": "在线白板",
      "description": "画示意图和作文构思图，导入导出画板并保存到本机。",
      "project": "Excalidraw"
    },
    {
      "url": "/study/circuit-lab/",
      "title": "电路模拟实验",
      "description": "搭建电路、观察电流动画和波形，载入或修改示例电路。",
      "project": "CircuitJS1"
    },
    {
      "url": "/study/blockly/",
      "title": "积木编程",
      "description": "用循环、条件和变量控制画笔，运行后观察图形和代码。",
      "project": "Blockly"
    },
    {
      "url": "/study/music/",
      "title": "乐谱与节奏",
      "description": "编辑 ABC 乐谱、移调、播放合成音色，导出 SVG 与 MIDI。",
      "project": "abcjs"
    },
    {
      "url": "/toolbox/ai/ocr.html",
      "title": "中文图片识字",
      "description": "本地中英文 OCR 模型，识别结果可校对、复制、导出和查词。",
      "project": "Tesseract.js"
    }
  ]
}
