{
  "format": "subfork.graph/1",
  "thumbnail": "data:image/jpeg;base64,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",
  "definition": {
    "version": "0.1.0",
    "name": "Other Worlds / Exoplanet Portrait",
    "description": "A radial portrait of 96 nearby exoplanets from NASA. Remap period, radius, temperature, and discovery data; inspect missing measurements and source records. No API key required.",
    "nodes": [
      {
        "node_instance_id": "url",
        "node_id": "n_url_input",
        "node_version": "1.0.0",
        "title": "NASA Exoplanet Archive",
        "params": {
          "url": "https://exoplanetarchive.ipac.caltech.edu/TAP/sync"
        }
      },
      {
        "node_instance_id": "fetch",
        "node_id": "n_fetch_url",
        "node_version": "1.0.0",
        "title": "Nearest 96 planets",
        "params": {
          "method": "GET",
          "query": {
            "query": "select pl_name,hostname,discoverymethod,disc_year,pl_rade,pl_radelim,pl_orbper,pl_orbperlim,pl_eqt,pl_eqtlim,sy_dist from ps where default_flag=1 and pl_controv_flag=0 and sy_dist>0 and sy_dist<20 order by sy_dist,pl_name",
            "format": "json"
          },
          "timeout_seconds": 45,
          "max_response_bytes": 2000000
        },
        "exposed_inputs": [
          "url"
        ],
        "inputs_visibility_configured": true,
        "exposed_outputs": [
          "body",
          "headers",
          "status"
        ],
        "outputs_visibility_configured": true
      },
      {
        "node_instance_id": "parse",
        "node_id": "n_json_parse",
        "node_version": "1.0.0",
        "title": "Parse archive records",
        "params": {}
      },
      {
        "node_instance_id": "sort",
        "node_id": "n_sort_rows",
        "node_version": "1.0.0",
        "title": "Nearest first",
        "params": {
          "field": "sy_dist",
          "direction": "asc"
        }
      },
      {
        "node_instance_id": "limit",
        "node_id": "n_limit",
        "node_version": "1.0.0",
        "title": "Keep nearest 96",
        "params": {
          "count": 96
        }
      },
      {
        "node_instance_id": "rows",
        "node_id": "n_map_fields",
        "node_version": "1.0.0",
        "title": "Normalize planet measurements",
        "params": {
          "mapping": {
            "name": "pl_name",
            "host": "hostname",
            "method": "discoverymethod",
            "discovery_year": "disc_year",
            "radius_earth": "pl_rade",
            "radius_limit": "pl_radelim",
            "period_days": "pl_orbper",
            "period_limit": "pl_orbperlim",
            "temperature_k": "pl_eqt",
            "temperature_limit": "pl_eqtlim",
            "distance_pc": "sy_dist"
          }
        }
      },
      {
        "node_instance_id": "dataset",
        "node_id": "n_json_template",
        "node_version": "1.0.0",
        "title": "Exoplanet dataset",
        "params": {
          "template": {
            "schema_version": "exoplanet-portrait/1",
            "source": "NASA Exoplanet Archive / ps",
            "source_url": "https://exoplanetarchive.ipac.caltech.edu/",
            "selection": "select pl_name,hostname,discoverymethod,disc_year,pl_rade,pl_radelim,pl_orbper,pl_orbperlim,pl_eqt,pl_eqtlim,sy_dist from ps where default_flag=1 and pl_controv_flag=0 and sy_dist>0 and sy_dist<20 order by sy_dist,pl_name",
            "rows": "{{ inputs.rows }}",
            "response_headers": "{{ inputs.headers }}",
            "units": {
              "radius_earth": "Earth radii",
              "period_days": "days",
              "temperature_k": "K",
              "distance_pc": "parsecs"
            }
          }
        },
        "custom_inputs": {
          "rows": "json",
          "headers": "json"
        },
        "exposed_inputs": [
          "rows",
          "headers"
        ],
        "inputs_visibility_configured": true
      },
      {
        "node_instance_id": "encode",
        "node_id": "n_json_stringify",
        "node_version": "1.0.0",
        "title": "HTML-safe dataset",
        "params": {
          "html_safe": true
        }
      },
      {
        "node_instance_id": "view",
        "node_id": "n_html_template",
        "node_version": "1.0.0",
        "title": "Other Worlds / radial portrait",
        "params": {
          "template": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n    <title>Other Worlds / Dataset Portrait</title>\n    <style>\n      :root {\n        color-scheme: dark;\n        --bg: #08121d;\n        --ink: #e0e9ed;\n        --muted: #a2b4c2;\n        --line: #2b4051;\n        --accent: #efc67c;\n      }\n      * {\n        box-sizing: border-box;\n      }\n      body {\n        margin: 0;\n        color: var(--ink);\n        background:\n          radial-gradient(ellipse at 35% 45%, #173347, transparent 65%),\n          var(--bg);\n        font:\n          15px/1.5 Georgia,\n          serif;\n      }\n      main {\n        max-width: 1450px;\n        margin: auto;\n        padding: 32px;\n      }\n      header {\n        display: flex;\n        justify-content: space-between;\n        align-items: end;\n        gap: 30px;\n      }\n      .eyebrow,\n      label,\n      select,\n      button,\n      .small,\n      footer,\n      dt {\n        font-family: monospace;\n      }\n      .eyebrow {\n        font-size: 11px;\n        letter-spacing: 0.2em;\n        color: var(--accent);\n      }\n      h1 {\n        font-size: clamp(42px, 6vw, 76px);\n        font-weight: 400;\n        letter-spacing: -0.035em;\n        margin: 10px 0;\n      }\n      h1 em {\n        color: var(--accent);\n      }\n      p {\n        margin: 8px 0;\n      }\n      .small {\n        font-size: 11px;\n        color: var(--muted);\n        line-height: 1.7;\n      }\n      .controls {\n        display: flex;\n        gap: 18px;\n        flex-wrap: wrap;\n        border-block: 1px solid var(--line);\n        margin: 24px 0 12px;\n        padding: 16px 0;\n      }\n      label {\n        display: grid;\n        gap: 5px;\n        font-size: 11px;\n        color: var(--muted);\n      }\n      select,\n      button {\n        background: #122331;\n        color: var(--ink);\n        border: 1px solid #40586a;\n        padding: 8px 10px;\n        border-radius: 3px;\n        font-size: 12px;\n      }\n      button {\n        cursor: pointer;\n      }\n      button:hover {\n        background: #254356;\n      }\n      :focus-visible {\n        outline: 2px solid var(--accent);\n        outline-offset: 3px;\n      }\n      .layout {\n        display: grid;\n        grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr);\n        gap: 32px;\n        align-items: start;\n      }\n      svg {\n        display: block;\n        width: 100%;\n        height: auto;\n      }\n      svg text {\n        fill: var(--muted);\n        font: 12px monospace;\n      }\n      .planet {\n        cursor: pointer;\n        outline: none;\n      }\n      .halo {\n        opacity: 0;\n      }\n      .planet:hover .halo,\n      .planet:focus .halo,\n      .planet[aria-pressed=\"true\"] .halo {\n        opacity: 1;\n      }\n      .planet:hover .spoke,\n      .planet:focus .spoke {\n        stroke-opacity: 1;\n      }\n      aside {\n        padding-top: 24px;\n      }\n      h2 {\n        font-size: 25px;\n        font-weight: 400;\n        margin: 0 0 12px;\n      }\n      #detail {\n        padding: 18px;\n        background: #152b39;\n        border-left: 2px solid var(--accent);\n        min-height: 230px;\n        overflow-wrap: anywhere;\n      }\n      #detail h3 {\n        font-size: 23px;\n        font-weight: 400;\n        margin: 0 0 12px;\n      }\n      dl {\n        display: grid;\n        grid-template-columns: 120px 1fr;\n        gap: 7px 12px;\n        margin: 0;\n      }\n      dt {\n        font-size: 11px;\n        color: var(--muted);\n      }\n      dd {\n        margin: 0;\n      }\n      #index {\n        max-height: 230px;\n        overflow: auto;\n        display: grid;\n        gap: 6px;\n        margin-top: 18px;\n      }\n      #index button {\n        text-align: left;\n      }\n      #index button[aria-pressed=\"true\"] {\n        border-color: var(--accent);\n      }\n      #legend {\n        display: grid;\n        gap: 5px;\n      }\n      #error {\n        color: #ffa694;\n      }\n      footer {\n        margin-top: 24px;\n        padding-top: 18px;\n        border-top: 1px solid var(--line);\n        font-size: 11px;\n        color: var(--muted);\n      }\n      @media (max-width: 750px) {\n        main {\n          padding: 20px 14px;\n        }\n        header {\n          display: block;\n        }\n        .layout {\n          grid-template-columns: 1fr;\n          gap: 0;\n        }\n        aside {\n          padding-top: 12px;\n        }\n      }\n    </style>\n  </head>\n  <body>\n    <main>\n      <header>\n        <div>\n          <div class=\"eyebrow\">SUBFORK / DATASET PORTRAITS / 03</div>\n          <h1>Other <em>Worlds.</em></h1>\n          <p>A radial atlas of our planetary neighbors.</p>\n        </div>\n        <div class=\"small\">\n          NASA Exoplanet Archive / Planetary Systems<br />Up to 96 nearest planets\n          within 20 parsecs<br />One default parameter set per planet\n        </div>\n      </header>\n      <div class=\"controls\">\n        <label\n          >Spoke length<select id=\"length\">\n            <option value=\"period_days\">Orbital period</option>\n            <option value=\"distance_pc\">Distance from Earth</option>\n            <option value=\"radius_earth\">Planet radius</option>\n          </select></label\n        >\n        <label\n          >Mark size<select id=\"size\">\n            <option value=\"radius_earth\">Planet radius</option>\n            <option value=\"period_days\">Orbital period</option>\n            <option value=\"distance_pc\">Distance from Earth</option>\n          </select></label\n        >\n        <label\n          >Color<select id=\"color\">\n            <option value=\"temperature_k\">Equilibrium temperature</option>\n            <option value=\"discovery_year\">Discovery year</option>\n            <option value=\"method\">Discovery method</option>\n          </select></label\n        >\n        <label\n          >Order, clockwise<select id=\"sort\">\n            <option value=\"distance_pc\">Distance, nearest first</option>\n            <option value=\"discovery_year\">\n              Discovery year, earliest first\n            </option>\n            <option value=\"radius_earth\">Radius, smallest first</option>\n            <option value=\"name\">Planet name</option>\n          </select></label\n        >\n        <label\n          >Palette<select id=\"palette\">\n            <option value=\"starlight\">Starlight</option>\n            <option value=\"ember\">Ember</option>\n            <option value=\"ocean\">Ocean</option>\n          </select></label\n        >\n      </div>\n      <p id=\"error\" role=\"alert\" hidden></p>\n      <p id=\"summary\" class=\"small\"></p>\n      <div class=\"layout\">\n        <section>\n          <svg\n            id=\"portrait\"\n            viewBox=\"0 0 800 800\"\n            role=\"group\"\n            aria-label=\"Radial exoplanet portrait. Select a mark or use the planet index.\"\n          >\n            <g fill=\"none\" stroke=\"#2c4557\" stroke-width=\"1\">\n              <circle cx=\"400\" cy=\"400\" r=\"110\" />\n              <circle cx=\"400\" cy=\"400\" r=\"220\" stroke-dasharray=\"2 7\" />\n              <circle cx=\"400\" cy=\"400\" r=\"345\" />\n            </g>\n            <path d=\"M400 44V65\" stroke=\"#efc67c\" />\n            <text x=\"400\" y=\"30\" text-anchor=\"middle\">\n              ORDER START / CLOCKWISE\n            </text>\n            <g id=\"marks\"></g>\n            <circle cx=\"400\" cy=\"400\" r=\"89\" fill=\"#0d202d\" stroke=\"#405b69\" />\n            <text\n              id=\"count\"\n              x=\"400\"\n              y=\"402\"\n              text-anchor=\"middle\"\n              style=\"font-size: 38px; fill: #efc67c\"\n            >\n              --\n            </text>\n            <text x=\"400\" y=\"427\" text-anchor=\"middle\">OTHER WORLDS</text>\n          </svg>\n          <div id=\"legend\" class=\"small\"></div>\n        </section>\n        <aside>\n          <h2>Planet dossier</h2>\n          <div id=\"detail\" aria-live=\"polite\">\n            Select a planet to inspect its reported measurements.\n          </div>\n          <div id=\"index\" aria-label=\"Planet index\"></div>\n        </aside>\n      </div>\n      <footer>\n        Source: NASA Exoplanet Archive, operated by Caltech/IPAC for NASA. A\n        bounded nearby sample, not the complete census. This artwork is not a\n        sky map or an orbital simulation. Spoke length and mark radius use log(1\n        + value) scaling over this sample. Color is a data mapping, not the\n        planet's visible color. Equilibrium temperature is an estimate, not\n        surface temperature or evidence of habitability. Uncertainties are not\n        plotted. Run the graph to refresh.\n      </footer>\n    </main>\n    <!-- prettier-ignore -->\n    <script id=\"dataset\" type=\"application/json\">{{ inputs.dataset_json }}</script>\n    <script>\n      \"use strict\";\n      const $ = (id) => document.getElementById(id);\n      const fields = {\n        period_days: [\"Orbital period\", \"days\"],\n        radius_earth: [\"Radius\", \"Earth radii\"],\n        distance_pc: [\"Distance\", \"parsecs\"],\n        temperature_k: [\"Equilibrium temp.\", \"K\"],\n        discovery_year: [\"Discovery year\", \"\"],\n      };\n      const palettes = {\n        starlight: [\"#83c8dd\", \"#e9cd87\", \"#ed8668\"],\n        ember: [\"#ffe2a3\", \"#e99c69\", \"#c66873\"],\n        ocean: [\"#b4ded0\", \"#6fbbb8\", \"#7b9dc7\"],\n      };\n      const fmt = (value) =>\n        Number.isFinite(value)\n          ? Number(value.toFixed(2)).toLocaleString()\n          : \"Not reported\";\n      function measurement(row, key) {\n        const limitKey = {\n          radius_earth: \"radius_limit\",\n          period_days: \"period_limit\",\n          temperature_k: \"temperature_limit\",\n        }[key];\n        if (limitKey && row[limitKey] !== 0) return null;\n        return Number.isFinite(row[key]) && row[key] > 0 ? row[key] : null;\n      }\n      function range(rows, key) {\n        const values = rows\n          .map((r) => measurement(r, key))\n          .filter((v) => v !== null);\n        return values.length\n          ? [Math.min(...values), Math.max(...values)]\n          : null;\n      }\n      function scale(value, bounds, log = false) {\n        if (value === null || !bounds) return null;\n        const f = log ? Math.log1p : (v) => v;\n        const low = f(bounds[0]),\n          high = f(bounds[1]);\n        return high === low\n          ? 0.5\n          : Math.max(0, Math.min(1, (f(value) - low) / (high - low)));\n      }\n      function svg(tag, attrs = {}) {\n        const node = document.createElementNS(\n          \"http://www.w3.org/2000/svg\",\n          tag,\n        );\n        for (const [k, v] of Object.entries(attrs))\n          node.setAttribute(k, String(v));\n        return node;\n      }\n      try {\n        const data = JSON.parse($(\"dataset\").textContent);\n        if (!Array.isArray(data.rows))\n          throw new Error(\"Expected a dataset containing planet rows.\");\n        const valid = data.rows.filter(\n          (r) => r && typeof r.name === \"string\" && r.name.trim(),\n        );\n        const rows = valid\n          .slice(0, 96)\n          .map((row, index) => ({ ...row, _key: index }));\n        const excluded = data.rows.length - valid.length;\n        $(\"count\").textContent = String(rows.length);\n        const date = data.response_headers?.date || data.response_headers?.Date;\n        $(\"summary\").textContent =\n          rows.length +\n          \" planets returned. \" +\n          (excluded ? excluded + \" invalid records omitted. \" : \"\") +\n          (valid.length > 96 ? \"Display capped at 96. \" : \"\") +\n          (date ? \"HTTP response date: \" + date + \". \" : \"\") +\n          \"Hollow marks: missing or limit-only size. Dashed spokes: missing or limit-only length. Gray: missing color value.\";\n        if (!rows.length)\n          $(\"detail\").textContent =\n            \"No planets returned. Check the query or run again.\";\n        let selected = null;\n        const controls = [\"length\", \"size\", \"color\", \"sort\", \"palette\"];\n        const pairs = new Map();\n        function inspect(row) {\n          selected = row;\n          $(\"detail\").replaceChildren();\n          const heading = document.createElement(\"h3\");\n          heading.textContent = row.name;\n          const list = document.createElement(\"dl\");\n          for (const [key, title] of [\n            [\"host\", \"Host star\"],\n            [\"method\", \"Discovery method\"],\n            ...Object.entries(fields).map(([k, v]) => [k, v[0]]),\n          ]) {\n            const dt = document.createElement(\"dt\"),\n              dd = document.createElement(\"dd\");\n            dt.textContent = title;\n            if (fields[key]) {\n              const v = measurement(row, key);\n              dd.textContent =\n                v === null\n                  ? row[key] == null\n                    ? \"Not reported\"\n                    : \"Limit-only or unusable value (not plotted)\"\n                  : fmt(v) + \" \" + fields[key][1];\n            } else dd.textContent = String(row[key] ?? \"Not reported\");\n            list.append(dt, dd);\n          }\n          $(\"detail\").append(heading, list);\n          for (const [id, nodes] of pairs)\n            for (const n of nodes)\n              n.setAttribute(\"aria-pressed\", String(id === row._key));\n        }\n        function draw() {\n          const lengthKey = $(\"length\").value,\n            sizeKey = $(\"size\").value,\n            colorKey = $(\"color\").value,\n            sortKey = $(\"sort\").value;\n          const ordered = [...rows].sort((a, b) =>\n            sortKey === \"name\"\n              ? a.name.localeCompare(b.name)\n              : (measurement(a, sortKey) ?? Infinity) -\n                  (measurement(b, sortKey) ?? Infinity) ||\n                a.name.localeCompare(b.name),\n          );\n          const lr = range(rows, lengthKey),\n            sr = range(rows, sizeKey),\n            cr = range(rows, colorKey),\n            colors = palettes[$(\"palette\").value];\n          const methods = [\n            ...new Set(\n              rows.map((r) => r.method).filter((v) => typeof v === \"string\"),\n            ),\n          ].sort();\n          $(\"marks\").replaceChildren();\n          $(\"index\").replaceChildren();\n          $(\"legend\").replaceChildren();\n          pairs.clear();\n          function legend(text, color) {\n            const p = document.createElement(\"div\");\n            p.textContent = text;\n            if (color) p.style.color = color;\n            $(\"legend\").append(p);\n          }\n          function boundsText(key, bounds) {\n            return bounds\n              ? fmt(bounds[0]) + \" to \" + fmt(bounds[1]) + \" \" + fields[key][1]\n              : \"no usable values\";\n          }\n          legend(\n            \"Spoke / \" +\n              fields[lengthKey][0] +\n              \": \" +\n              boundsText(lengthKey, lr) +\n              \" (log scale)\",\n          );\n          legend(\n            \"Mark / \" +\n              fields[sizeKey][0] +\n              \": \" +\n              boundsText(sizeKey, sr) +\n              \" (log scale; not physical scale)\",\n          );\n          if (colorKey === \"method\")\n            methods.forEach((method, i) =>\n              legend(method + \" / color \" + ((i % 3) + 1), colors[i % 3]),\n            );\n          else {\n            legend(\n              \"Color / \" +\n                fields[colorKey][0] +\n                \": \" +\n                boundsText(colorKey, cr) +\n                \" (three equal-width bins)\",\n            );\n            colors.forEach((c, i) => legend([\"Low\", \"Middle\", \"High\"][i], c));\n          }\n          ordered.forEach((row, index) => {\n            const angle =\n              (index / Math.max(1, ordered.length)) * Math.PI * 2 - Math.PI / 2;\n            const l = scale(measurement(row, lengthKey), lr, true),\n              s = scale(measurement(row, sizeKey), sr, true),\n              c = scale(measurement(row, colorKey), cr);\n            const radial = 140 + (l ?? 0) * 180,\n              x = 400 + Math.cos(angle) * radial,\n              y = 400 + Math.sin(angle) * radial,\n              radius = s === null ? 4 : 3 + s * 10;\n            const color =\n              colorKey === \"method\"\n                ? typeof row.method === \"string\"\n                  ? colors[methods.indexOf(row.method) % 3]\n                  : \"#83909b\"\n                : c === null\n                  ? \"#83909b\"\n                  : colors[Math.min(2, Math.floor(c * 3))];\n            const group = svg(\"g\", {\n              class: \"planet\",\n              role: \"button\",\n              tabindex: 0,\n              \"aria-label\": row.name,\n              \"aria-pressed\": String(selected?._key === row._key),\n            });\n            group.append(\n              svg(\"path\", {\n                class: \"spoke\",\n                d:\n                  \"M\" +\n                  (400 + Math.cos(angle) * 110) +\n                  \",\" +\n                  (400 + Math.sin(angle) * 110) +\n                  \" L\" +\n                  x +\n                  \",\" +\n                  y,\n                stroke: color,\n                \"stroke-opacity\": 0.5,\n                \"stroke-width\": 1,\n                \"stroke-dasharray\": l === null ? \"3 4\" : \"none\",\n              }),\n              svg(\"circle\", {\n                class: \"halo\",\n                cx: x,\n                cy: y,\n                r: radius + 5,\n                fill: \"none\",\n                stroke: \"#fff\",\n                \"stroke-width\": 1.5,\n              }),\n              svg(\"circle\", {\n                cx: x,\n                cy: y,\n                r: radius,\n                fill: s === null ? \"#08121d\" : color,\n                stroke: color,\n                \"stroke-width\": 1.5,\n              }),\n            );\n            const title = svg(\"title\");\n            title.textContent = row.name;\n            group.append(title);\n            $(\"marks\").append(group);\n            group.addEventListener(\"click\", () => inspect(row));\n            group.addEventListener(\"focus\", () => inspect(row));\n            group.addEventListener(\"keydown\", (e) => {\n              if (e.key === \"Enter\" || e.key === \" \") {\n                e.preventDefault();\n                inspect(row);\n              }\n            });\n            const button = document.createElement(\"button\");\n            button.type = \"button\";\n            button.textContent =\n              String(index + 1).padStart(2, \"0\") + \" / \" + row.name;\n            button.setAttribute(\n              \"aria-pressed\",\n              String(selected?._key === row._key),\n            );\n            button.addEventListener(\"click\", () => inspect(row));\n            $(\"index\").append(button);\n            pairs.set(row._key, [group, button]);\n          });\n        }\n        controls.forEach((id) => $(id).addEventListener(\"change\", draw));\n        draw();\n      } catch (error) {\n        $(\"error\").hidden = false;\n        $(\"error\").textContent =\n          error instanceof Error ? error.message : \"Unable to render dataset.\";\n      }\n    </script>\n  </body>\n</html>\n"
        },
        "custom_inputs": {
          "dataset_json": "str"
        },
        "exposed_inputs": [
          "dataset_json"
        ],
        "inputs_visibility_configured": true
      },
      {
        "node_instance_id": "response",
        "node_id": "n_html_response",
        "node_version": "1.0.0",
        "title": "Portrait page",
        "params": {}
      },
      {
        "node_instance_id": "data_response",
        "node_id": "n_json_response",
        "node_version": "1.0.0",
        "title": "Dataset response",
        "params": {}
      }
    ],
    "edges": [
      {
        "source_node_id": "url",
        "source_output": "url",
        "target_node_id": "fetch",
        "target_input": "url"
      },
      {
        "source_node_id": "fetch",
        "source_output": "body",
        "target_node_id": "parse",
        "target_input": "text"
      },
      {
        "source_node_id": "parse",
        "source_output": "value",
        "target_node_id": "sort",
        "target_input": "items"
      },
      {
        "source_node_id": "sort",
        "source_output": "items",
        "target_node_id": "limit",
        "target_input": "items"
      },
      {
        "source_node_id": "limit",
        "source_output": "items",
        "target_node_id": "rows",
        "target_input": "value"
      },
      {
        "source_node_id": "rows",
        "source_output": "items",
        "target_node_id": "dataset",
        "target_input": "rows"
      },
      {
        "source_node_id": "fetch",
        "source_output": "headers",
        "target_node_id": "dataset",
        "target_input": "headers"
      },
      {
        "source_node_id": "dataset",
        "source_output": "value",
        "target_node_id": "encode",
        "target_input": "value"
      },
      {
        "source_node_id": "encode",
        "source_output": "text",
        "target_node_id": "view",
        "target_input": "dataset_json"
      },
      {
        "source_node_id": "view",
        "source_output": "html",
        "target_node_id": "response",
        "target_input": "html"
      },
      {
        "source_node_id": "dataset",
        "source_output": "value",
        "target_node_id": "data_response",
        "target_input": "value"
      }
    ],
    "graph_outputs": {
      "html": {
        "node_instance_id": "view",
        "output_name": "html"
      },
      "response": {
        "node_instance_id": "response",
        "output_name": "response"
      },
      "dataset": {
        "node_instance_id": "dataset",
        "output_name": "value"
      },
      "rows": {
        "node_instance_id": "rows",
        "output_name": "items"
      },
      "data_response": {
        "node_instance_id": "data_response",
        "output_name": "response"
      }
    },
    "metadata": {
      "template": {
        "category": "html",
        "status": "provider-backed-probe",
        "summary": "A bounded NASA dataset rendered as a remappable SVG portrait.",
        "requires": {
          "nodes": [
            "n_url_input",
            "n_fetch_url",
            "n_json_parse",
            "n_sort_rows",
            "n_limit",
            "n_map_fields",
            "n_json_template",
            "n_json_stringify",
            "n_html_template",
            "n_html_response",
            "n_json_response"
          ],
          "panels": [
            "html",
            "table",
            "json"
          ],
          "capabilities": [
            "public-http"
          ],
          "secrets": []
        }
      },
      "canvas": {
        "positions": {
          "url": {
            "x": 60,
            "y": 180
          },
          "fetch": {
            "x": 340,
            "y": 180
          },
          "parse": {
            "x": 620,
            "y": 180
          },
          "sort": {
            "x": 900,
            "y": 180
          },
          "limit": {
            "x": 1180,
            "y": 180
          },
          "rows": {
            "x": 1460,
            "y": 180
          },
          "dataset": {
            "x": 1740,
            "y": 180
          },
          "encode": {
            "x": 2020,
            "y": 180
          },
          "view": {
            "x": 2300,
            "y": 180
          },
          "response": {
            "x": 2580,
            "y": 180
          },
          "data_response": {
            "x": 2860,
            "y": 400
          }
        },
        "recommended_panels": [
          {
            "kind": "html",
            "binding": {
              "nodeInstanceId": "view",
              "outputName": "html"
            }
          },
          {
            "kind": "table",
            "binding": {
              "nodeInstanceId": "rows",
              "outputName": "items"
            }
          },
          {
            "kind": "json",
            "binding": {
              "nodeInstanceId": "dataset",
              "outputName": "value"
            }
          }
        ]
      }
    }
  },
  "tags": [
    "html",
    "visualizations"
  ]
}
