{
  "openapi": "3.1.0",
  "info": {
    "title": "Bioelectricity Nexus × Infinite Morphospace Integration API",
    "version": "1.2.0",
    "description": "Queryable static JSON API and interactive widget manifest for integrating Joel Dietz's Infinite Morphospace discoveries (Self-Sorting Cells / Platonic Space / Causal Emergence 2.0, D'Arcy Thompson 10,303-Species Bioelectric Morphospace, and Wolfram Rule 30 Neurosecretory Mantle Isomorphism) into bioelectricity.net.",
    "contact": {
      "name": "Joel Dietz (Project Delphi)",
      "url": "https://github.com/fractastical/morpholib"
    }
  },
  "servers": [
    {
      "url": "https://fractastical.github.io/morpholib/bioelectricity",
      "description": "GitHub Pages Production CDN (CORS-enabled static endpoints)"
    }
  ],
  "paths": {
    "/bioelectricity_nexus_feed.json": {
      "get": {
        "operationId": "getBioelectricityNexusFeed",
        "summary": "Fetch all featured bioelectric morphospace modules, PDFs, hero diagrams, and iframe embed URLs",
        "responses": {
          "200": {
            "description": "Full catalog of modules (`zhang-levin-hoel-sorting-morphogenesis-ce2`, `thompson-1917-morphospace-vs-competition`, `wolfram-rule30-conus-neural-mantle-isomorphism`)"
          }
        }
      }
    },
    "/integration-guide.json": {
      "get": {
        "operationId": "getQueryableIntegrationGuide",
        "summary": "Fetch machine-queryable integration guide with URL query parameters, postMessage API events, React props, and embed snippets",
        "responses": {
          "200": {
            "description": "Structured integration specification for AI agents and frontend apps"
          }
        }
      }
    },
    "/sorting-morphogenesis.html": {
      "get": {
        "operationId": "renderSortingMorphogenesisModule",
        "summary": "Interactive Self-Sorting Cells, Platonic Space & Causal Emergence 2.0 Web App / Iframe Widget",
        "parameters": [
          {
            "name": "tab",
            "in": "query",
            "description": "Initial tab to open (`guide13`, `sim`, `magazine`, `ce2`, `embed`)",
            "schema": { "type": "string", "enum": ["guide13", "sim", "magazine", "ce2", "embed"], "default": "guide13" }
          },
          {
            "name": "scenario",
            "in": "query",
            "description": "Initial simulator experiment to load (`rulers`, `insertion_on`, `insertion_off`, `unique_wave`, `c2_anticluster`, `c6_cliques`)",
            "schema": { "type": "string", "enum": ["rulers", "insertion_on", "insertion_off", "unique_wave", "c2_anticluster", "c6_cliques"], "default": "rulers" }
          },
          {
            "name": "autoplay",
            "in": "query",
            "description": "Automatically start the cell-sorting animation when loaded (`1` or `true`)",
            "schema": { "type": "boolean", "default": false }
          },
          {
            "name": "compact",
            "in": "query",
            "description": "Hide the top hero banner for compact card/iframe embedding (`1` or `true`)",
            "schema": { "type": "boolean", "default": false }
          }
        ],
        "responses": {
          "200": { "description": "HTML5 Interactive Application" }
        }
      }
    }
  }
}
