<?xml version="1.0" encoding="UTF-8"?>
<!--
  Genforge Portal sitemap.

  The portal itself is gated behind authentication (Entra External ID) so
  most routes are not crawlable. This sitemap lists only the public,
  anonymous-accessible surfaces worth indexing:
    - /       : SPA shell (redirects signed-out visitors to /login)
    - /login  : sign-in entry
    - /signup : self-serve signup — the public acquisition entry (F-SIGNUP-1)

  Intentionally excluded:
    - /legal + /integritet : client-side window.location.replace redirects to
      the canonical pages on www.genforge.dev (M-001) — the canonical site's
      own sitemap covers them; listing JS-redirect stubs here wastes crawl
      budget and can index the wrong URL.
    - /holding : auth-state/degraded-mode page, meaningless to crawlers.

  F-B-28 — replaces the bare 404 the SWA returned post-iter-1 SPA-fallback
  exclude widening; previously this path served the SPA index.html which
  crawlers parsed as an HTML soup.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://portal.genforge.dev/</loc>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://portal.genforge.dev/signup</loc>
    <changefreq>yearly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://portal.genforge.dev/login</loc>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
