

<!DOCTYPE html>

<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=Edge">

  <link rel="stylesheet" href="/org.json-kula.valem/assets/css/just-the-docs-default.css">

  <link rel="stylesheet" href="/org.json-kula.valem/assets/css/just-the-docs-head-nav.css" id="jtd-head-nav-stylesheet">

  <style id="jtd-nav-activation">
  
    .site-nav ul li a {
      background-image: none;
    }

  </style>

  

  
    <script src="/org.json-kula.valem/assets/js/vendor/lunr.min.js"></script>
  

  <script src="/org.json-kula.valem/assets/js/just-the-docs.js"></script>

  <meta name="viewport" content="width=device-width, initial-scale=1">

  



  <!-- Begin Jekyll SEO tag v2.9.0 -->
<title>Valem | Deterministic reactive computation runtime for AI-generated structured data models — a spreadsheet-like computation model for JSON-based agent systems.</title>
<meta name="generator" content="Jekyll v4.4.1" />
<meta property="og:title" content="Valem" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Deterministic reactive computation runtime for AI-generated structured data models — a spreadsheet-like computation model for JSON-based agent systems." />
<meta name="twitter:description" property="og:description" content="Deterministic reactive computation runtime for AI-generated structured data models — a spreadsheet-like computation model for JSON-based agent systems." />
<link rel="canonical" href="https://vlad-public-code.github.io/org.json-kula.valem/assets/css/just-the-docs-head-nav.css" />
<meta property="og:url" content="https://vlad-public-code.github.io/org.json-kula.valem/assets/css/just-the-docs-head-nav.css" />
<meta property="og:site_name" content="Valem" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="Valem" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebPage","description":"Deterministic reactive computation runtime for AI-generated structured data models — a spreadsheet-like computation model for JSON-based agent systems.","headline":"Valem","url":"https://vlad-public-code.github.io/org.json-kula.valem/assets/css/just-the-docs-head-nav.css"}</script>
<!-- End Jekyll SEO tag -->


  <!-- Brand "◆ Valem" diamond, inline so it needs no asset file and survives the build unchanged. -->
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='7' fill='%230969da'/%3E%3Cpath d='M16 6l10 10-10 10L6 16z' fill='%23fff'/%3E%3C/svg%3E" /><meta property="og:type" content="website" />
<meta property="og:site_name" content="Valem" />
<meta property="og:title" content="Valem · Valem" />
<meta property="og:description" content="Deterministic reactive computation runtime for AI-generated structured data models — a spreadsheet-like computation model for JSON-based agent systems." />
<meta property="og:url" content="https://vlad-public-code.github.io/org.json-kula.valem/assets/css/just-the-docs-head-nav.css" />
<meta property="og:image" content="https://vlad-public-code.github.io/org.json-kula.valem/assets/og.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Valem" />
<meta name="twitter:description" content="Deterministic reactive computation runtime for AI-generated structured data models — a spreadsheet-like computation model for JSON-based agent systems." />
<meta name="twitter:image" content="https://vlad-public-code.github.io/org.json-kula.valem/assets/og.png" />
<meta name="description" content="Deterministic reactive computation runtime for AI-generated structured data models — a spreadsheet-like computation model for JSON-based agent systems." /><link rel="canonical" href="https://vlad-public-code.github.io/org.json-kula.valem/assets/css/just-the-docs-head-nav.css" /><script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "Valem",
  "description": "Deterministic reactive computation runtime for AI-generated structured data models — a spreadsheet-like computation model for JSON-based agent systems.",
  "url": "https://vlad-public-code.github.io/org.json-kula.valem/assets/css/just-the-docs-head-nav.css",
  "isPartOf": { "@type": "WebSite", "name": "Valem", "url": "https://vlad-public-code.github.io/org.json-kula.valem/" }
}
</script>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Valem", "item": "https://vlad-public-code.github.io/org.json-kula.valem/" },
    { "@type": "ListItem", "position": 2, "name": "Valem", "item": "https://vlad-public-code.github.io/org.json-kula.valem/assets/css/just-the-docs-head-nav.css" }
  ]
}
</script><style>
  .jtd-theme-toggle {
    background: none; border: 0; cursor: pointer; padding: 0 0.4rem;
    font-size: 1rem; line-height: 1; color: inherit; opacity: 0.7;
  }
  .jtd-theme-toggle:hover { opacity: 1; }
</style>
<script>
  (function () {
    var KEY = 'valem-docs-theme';

    function preferred() {
      try {
        var saved = localStorage.getItem(KEY);
        if (saved === 'dark' || saved === 'light') return saved;
      } catch (e) { /* private mode — fall through to the OS preference */ }
      return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
        ? 'dark' : 'light';
    }

    function apply(theme) {
      if (typeof jtd === 'undefined' || !jtd.setTheme) return false;
      jtd.setTheme(theme);
      return true;
    }

    function addToggle(theme) {
      var nav = document.querySelector('.aux-nav-list');
      if (!nav || document.querySelector('.jtd-theme-toggle')) return;
      var li = document.createElement('li');
      li.className = 'aux-nav-list-item';
      var btn = document.createElement('button');
      btn.type = 'button';
      btn.className = 'jtd-theme-toggle';
      btn.setAttribute('aria-label', 'Toggle dark mode');
      btn.title = 'Toggle dark mode';
      btn.textContent = theme === 'dark' ? '☀' : '☾';
      btn.addEventListener('click', function () {
        var next = (typeof jtd !== 'undefined' && jtd.getTheme && jtd.getTheme() === 'dark')
          ? 'light' : 'dark';
        if (!apply(next)) return;
        try { localStorage.setItem(KEY, next); } catch (e) { /* nothing to do */ }
        btn.textContent = next === 'dark' ? '☀' : '☾';
      });
      li.appendChild(btn);
      nav.appendChild(li);
    }

    function init(attempt) {
      var theme = preferred();
      if (!apply(theme)) {
        // just-the-docs' script may not have executed yet; retry briefly, then give up.
        if (attempt < 20) return setTimeout(function () { init(attempt + 1); }, 50);
        return;
      }
      addToggle(theme);
    }

    if (document.readyState === 'loading') {
      document.addEventListener('DOMContentLoaded', function () { init(0); });
    } else {
      init(0);
    }
  })();
</script>


</head>

<body>
  <a class="skip-to-main" href="#main-content">Skip to main content</a>
  <svg xmlns="http://www.w3.org/2000/svg" class="d-none">
  <symbol id="svg-link" viewBox="0 0 24 24">
  <title>Link</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link">
    <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
  </svg>
</symbol>

  <symbol id="svg-menu" viewBox="0 0 24 24">
  <title>Menu</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu">
    <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
  </svg>
</symbol>

  <symbol id="svg-arrow-right" viewBox="0 0 24 24">
  <title>Expand</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
    <polyline points="9 18 15 12 9 6"></polyline>
  </svg>
</symbol>

  <!-- Feather. MIT License: https://github.com/feathericons/feather/blob/master/LICENSE -->
<symbol id="svg-external-link" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link">
  <title id="svg-external-link-title">(external link)</title>
  <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line>
</symbol>

  
    <symbol id="svg-doc" viewBox="0 0 24 24">
  <title>Document</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
    <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
  </svg>
</symbol>

    <symbol id="svg-search" viewBox="0 0 24 24">
  <title>Search</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
    <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
  </svg>
</symbol>

  
  
    <!-- Bootstrap Icons. MIT License: https://github.com/twbs/icons/blob/main/LICENSE.md -->
<symbol id="svg-copy" viewBox="0 0 16 16">
  <title>Copy</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16">
    <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/>
    <path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/>
  </svg>
</symbol>
<symbol id="svg-copied" viewBox="0 0 16 16">
  <title>Copied</title>
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard-check-fill" viewBox="0 0 16 16">
    <path d="M6.5 0A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3Zm3 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3Z"/>
    <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1A2.5 2.5 0 0 1 9.5 5h-3A2.5 2.5 0 0 1 4 2.5v-1Zm6.854 7.354-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708Z"/>
  </svg>
</symbol>

  
</svg>

  
    <header class="side-bar">
  <div class="site-header">
    <a href="/org.json-kula.valem/" class="site-title lh-tight">
  Valem

</a>
    <button id="menu-button" class="site-button btn-reset" aria-label="Menu" aria-expanded="false">
      <svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg>
    </button>
  </div>

  <nav aria-label="Main" id="site-nav" class="site-nav">
  
  
    <ul class="nav-list"><li class="nav-list-item"><a href="/org.json-kula.valem/" class="nav-list-link">Home</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Getting started submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/org.json-kula.valem/getting-started/" class="nav-list-link">Getting started</a><ul class="nav-list"><li class="nav-list-item"><a href="/org.json-kula.valem/getting-started/what-is-valem.html" class="nav-list-link">What is Valem?</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/getting-started/sandbox.html" class="nav-list-link">Try the sandbox</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/getting-started/quickstart.html" class="nav-list-link">Quickstart</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/getting-started/connect-your-agent.html" class="nav-list-link">Connect your agent (MCP pairing)</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/getting-started/faq.html" class="nav-list-link">FAQ — and when not to use Valem</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Usage scenarios submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/org.json-kula.valem/usage-scenarios/" class="nav-list-link">Usage scenarios</a><ul class="nav-list"><li class="nav-list-item"><a href="/org.json-kula.valem/usage-scenarios/agent-state.html" class="nav-list-link">Structured state for AI agents</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/usage-scenarios/rules-and-calculations.html" class="nav-list-link">Rules & calculations as data</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/usage-scenarios/workflows-and-effects.html" class="nav-list-link">Effect-driven workflows</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/usage-scenarios/model-driven-ui.html" class="nav-list-link">Model-driven UIs</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/usage-scenarios/examples-gallery.html" class="nav-list-link">Examples gallery</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/usage-scenarios/embed-a-live-model.html" class="nav-list-link">Embed a live model</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Model guide submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/org.json-kula.valem/model-guide/" class="nav-list-link">Model guide</a><ul class="nav-list"><li class="nav-list-item"><a href="/org.json-kula.valem/model-guide/anatomy.html" class="nav-list-link">Anatomy of a model</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/model-guide/reactive-pipeline.html" class="nav-list-link">The reactive pipeline</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/model-guide/effects.html" class="nav-list-link">Effects</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/model-guide/views.html" class="nav-list-link">Views</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/model-guide/composition-and-branching.html" class="nav-list-link">Composition & branching</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/model-guide/generating-specs-with-llm.html" class="nav-list-link">Generating specs with an LLM</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Reference submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/org.json-kula.valem/reference/" class="nav-list-link">Reference</a><ul class="nav-list"><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Model spec format submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/org.json-kula.valem/reference/model-spec-format.html" class="nav-list-link">Model spec format</a><ul class="nav-list"><li class="nav-list-item"><a href="/org.json-kula.valem/reference/model-spec/schema-and-values.html" class="nav-list-link">Schema, constants & defaults</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/reference/model-spec/derivations-and-constraints.html" class="nav-list-link">Derivations, meta & constraints</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/reference/model-spec/effects.html" class="nav-list-link">Effects</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/reference/model-spec/tests-and-evolution.html" class="nav-list-link">Tests & spec evolution</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/reference/model-spec/views.html" class="nav-list-link">View definition & components</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/reference/model-spec/component-catalog.html" class="nav-list-link">Component type catalog</a></li></ul></li><li class="nav-list-item"><a href="/org.json-kula.valem/reference/api-reference.html" class="nav-list-link">API reference</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/reference/mcp-tools.html" class="nav-list-link">MCP tools & resources</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/reference/llm-prompts.html" class="nav-list-link">LLM prompts</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/reference/view-system.html" class="nav-list-link">View system</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/reference/copy-paste-specs.html" class="nav-list-link">Copy-paste spec examples</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Deployment submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/org.json-kula.valem/deployment/" class="nav-list-link">Deployment</a><ul class="nav-list"><li class="nav-list-item"><a href="/org.json-kula.valem/deployment/web-api.html" class="nav-list-link">Running the web API</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/deployment/mcp-server.html" class="nav-list-link">Running the MCP server</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/deployment/configuration.html" class="nav-list-link">Configuration</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/deployment/operations.html" class="nav-list-link">Persistence & operations</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/deployment/security-model.html" class="nav-list-link">Security model</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Extending submenu" aria-expanded="false">
        <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
      </button><a href="/org.json-kula.valem/extending/" class="nav-list-link">Extending</a><ul class="nav-list"><li class="nav-list-item"><a href="/org.json-kula.valem/extending/embedding.html" class="nav-list-link">Embed Valem in your project</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/extending/client-sdks.html" class="nav-list-link">Client SDKs</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/extending/architecture.html" class="nav-list-link">Architecture overview</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/extending/reactive-engine.html" class="nav-list-link">Reactive engine internals</a></li></ul></li><li class="nav-list-item"><a href="/org.json-kula.valem/glossary.html" class="nav-list-link">Glossary</a></li><li class="nav-list-item"><a href="/org.json-kula.valem/libraries.html" class="nav-list-link">Third-party libraries</a></li></ul>
  
</nav>


<div class="d-md-block d-none site-footer">
  
  
    This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.
  
  </div>
</header>

  
  <div class="main" id="top">
    <div id="main-header" class="main-header">
  
    

<div class="search" role="search">
  <div class="search-input-wrap">
    <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search Valem" autocomplete="off">
    <label for="search-input" class="search-label">
      <span class="sr-only">Search Valem</span>
      <svg viewBox="0 0 24 24" class="search-icon" aria-hidden="true"><use xlink:href="#svg-search"></use></svg>
    </label>
  </div>
  <div id="search-results" class="search-results"></div>
</div>

  
  
  
    <nav aria-label="Auxiliary" class="aux-nav">
  <ul class="aux-nav-list">
    
      <li class="aux-nav-list-item">
        <a href="https://github.com/vlad-public-code/org.json-kula.valem" class="site-button"
          
          target="_blank" rel="noopener noreferrer"
          
        >
          GitHub
        </a>
      </li>
    
      <li class="aux-nav-list-item">
        <a href="https://valem.onrender.com" class="site-button"
          
          target="_blank" rel="noopener noreferrer"
          
        >
          Live sandbox
        </a>
      </li>
    
  </ul>
</nav>

  
</div>

    <div class="main-content-wrap">
      
      <div id="main-content" class="main-content">
        <main>
          
            <h.site-nav ul li a {
  background-image: linear-gradient(-90deg, rgb(92.0784313725%, 92.8705882353%, 96.0392156863%) 0%, rgba(92.0784313725%, 92.8705882353%, 96.0392156863%, 0.8) 80%, rgba(92.0784313725%, 92.8705882353%, 96.0392156863%, 0) 100%);
}

          

          
            
          
        </main>
        
<hr>
<footer>
  
    <p><a href="#top" id="back-to-top">Back to top</a></p>
  

  <p class="text-small mb-0">Valem — Apache-2.0. Built by <a href="https://github.com/vlad-public-code">vlad-public-code</a>.</p>

  
    <div class="d-flex mt-2">
      
      
        <p class="text-small mb-0">
          <a href="https://github.com/vlad-public-code/org.json-kula.valem/edit/main/docs/assets/css/just-the-docs-head-nav.css" id="edit-this-page">Edit this page on GitHub</a>
        </p>
      
    </div>
  <div class="d-md-none mt-4 fs-2">
    
    
      This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.
    
  </div>
</footer>

      </div>
    </div>
    
      

<div class="search-overlay"></div>

    
  </div>

  
    





<script type="module">
  
  import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10.9.1/dist/mermaid.esm.min.mjs';
  

  var config = {}
;
  mermaid.initialize(config);
  mermaid.run({
    querySelector: '.language-mermaid',
  });
</script>



  
</body>
</html>

