<?xml version="1.0" encoding="UTF-8"?>
<!-- OurCircuits sitemap.
     FOUR URLs, and the count is principled rather than arbitrary: every other surface in this app
     is a HASH route (#/learn, #/parts, #/groups, …), and a fragment is not a separate URL to a
     crawler — listing them would be padding the file with entries that all resolve to "/". Only
     real paths belong here. The migration entry point is one; /terms and /privacy became two more
     at v99, when counsel cleared the documents and make-legal-html.mjs began emitting them.
     These two entries are one leg of a three-way equivalence (emitter writes ⇔ netlify.toml rules
     live ⇔ listed here) that scripts/triage-legal.mjs §S asserts in both directions — removing
     them alone reddens the gate.
     Gated by scripts/triage-migrate.mjs §8 (canonical host, absolute, no fragments). -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://ourcircuits.com/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://ourcircuits.com/multisim-live</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://ourcircuits.com/terms</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://ourcircuits.com/privacy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
