<?xml version="1.0" encoding="UTF-8"?>
<!--
  Only pages that are meant to rank. The app shells (/app, /player, /campaign) and /faq — which
  serves the same shell — carry `noindex`: an empty React root has nothing to rank for, and listing
  a noindexed page here tells a crawler two opposite things at once.

  /player-landing and /campaign-landing are provisional slugs: the tidy /player and /campaign are
  still occupied by the apps. When the apps move (Phase B), these move with them and leave a 301.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://combatcompanion.app/</loc>
    <lastmod>2026-07-27</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://combatcompanion.app/combat</loc>
    <lastmod>2026-07-20</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://combatcompanion.app/player-landing</loc>
    <lastmod>2026-07-27</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://combatcompanion.app/campaign-landing</loc>
    <lastmod>2026-07-27</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://combatcompanion.app/combat-tracker</loc>
    <lastmod>2026-05-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://combatcompanion.app/initiative-tracker</loc>
    <lastmod>2026-05-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://combatcompanion.app/encounter-tracker</loc>
    <lastmod>2026-05-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
</urlset>
