<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Landing page - highest priority -->
  <url>
    <loc>https://trovi.ai/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Legal & support pages (server-rendered HTML at apex, not Flutter shells) -->
  <url>
    <loc>https://trovi.ai/privacy-policy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://trovi.ai/terms-of-service</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://trovi.ai/attributions</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://trovi.ai/support</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>

  <!--
    DYNAMIC CONTENT:
    Public troves and gems should be dynamically generated and included.

    TODO: Create a sitemap generation endpoint in the backend that:
    1. Queries all PUBLIC troves from the database
    2. Queries all gems in PUBLIC troves
    3. Generates URLs like:
       - https://trovi.ai/t/{troveId} (public troves)
       - https://trovi.ai/g/{gemId} (gems in public troves)
    4. Updates this sitemap or creates a sitemap index

    Example dynamic entries:
    <url>
      <loc>https://trovi.ai/t/01ABC123XYZ</loc>
      <lastmod>2025-11-26</lastmod>
      <changefreq>weekly</changefreq>
      <priority>0.8</priority>
    </url>
    <url>
      <loc>https://trovi.ai/g/01DEF456UVW</loc>
      <lastmod>2025-11-26</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.6</priority>
    </url>
  -->

  <!--
    /@<username> URLs (TROVI-866 / L1-1) are NOT indexed yet — visibility
    is gated by L1-4 (TROVI-869), axis A (Discoverability). Until that
    lands, the routes are publicly resolvable for direct linking but
    intentionally absent from this sitemap so private / approval-required
    accounts aren't crawled.
  -->

</urlset>
