<?xml version="1.0" encoding="UTF-8"?>
<!--
  Static sitemap for the platform host (https://vibecade.ai).

  Lists the public, indexable surface of the launcher: home, the catalog
  + per-game detail pages, the leaderboards index + per-game leaderboard
  pages, and the trust-signal pages (privacy / terms / support).

  Excluded on purpose (NOT in sitemap):
    - /play/:gameId     — full-bleed iframe; nothing to index for Google
    - /profile          — auth-gated; serves empty UI to crawlers anyway
    - /profile/:id      — same; public profile content is thin and noisy
    - /settings         — auth-gated; preferences UI
    - /achievements     — auth-gated; per-player data
    - /auth/callback    — magic-link return path; disallowed in robots.txt

  Per-host scoping: this sitemap deliberately lists vibecade.ai URLs only.
  `robots.txt` references it as `https://vibecade.ai/sitemap.xml`, which
  is also the Sitemap header served from `catcafe.io/robots.txt` (same
  bundle), but Google considers cross-host sitemap entries suspicious
  unless explicitly cross-submitted via Search Console. Cat Cafe's
  catcafe.io will get its own `/sitemap-catcafe.xml` in a follow-up
  alongside per-launcher sitemap generation; for now the per-route
  meta tags (DECISIONS #92) carry the discovery weight for that host.

  Game catalog list mirrors the production seed + later migrations:
    - pawfall (0011 + 0015 play-token gate)
  Stub-game removed (migration 0016). Cup-knocker removed (migration
  0029) — never built; replaced by pawfall. Honey-badger / "Don't Brush
  the Cat" removed (migration 0039) — off-standard content. If new games are added,
  append /games/<id> + /leaderboards/<id> entries here in the same
  commit as the migration.

  lastmod uses the date of the most recent content-affecting change to
  each URL group. Crawlers honor it as a freshness signal; we don't
  need to bump it on every deploy, just when actual content shifts.

  Sitemap.org reference: https://www.sitemaps.org/protocol.html
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Landing + browse surfaces — highest priority. -->
  <url>
    <loc>https://vibecade.ai/</loc>
    <lastmod>2026-05-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://vibecade.ai/games</loc>
    <lastmod>2026-05-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://vibecade.ai/leaderboards</loc>
    <lastmod>2026-05-18</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Per-game detail + leaderboard pages. Add/remove in lockstep with
       the games table (the latest migration is the source of truth). -->
  <url>
    <loc>https://vibecade.ai/games/pawfall</loc>
    <lastmod>2026-05-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vibecade.ai/leaderboards/pawfall</loc>
    <lastmod>2026-05-18</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Trust-signal pages — lower priority, but Google credits their
       presence for sitewide quality scoring. -->
  <url>
    <loc>https://vibecade.ai/privacy</loc>
    <lastmod>2026-05-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://vibecade.ai/terms</loc>
    <lastmod>2026-05-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://vibecade.ai/support</loc>
    <lastmod>2026-05-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.3</priority>
  </url>

</urlset>
