<?xml version="1.0" encoding="UTF-8"?>
<!--
  The public routes, with absolute URLs.

  Deliberately does NOT list /pass, /verify-pass, the volunteer portal or the
  API: a pass URL carries a credential in the path, and the portal is behind a
  session. Those are disallowed in robots.txt for the same reason.

  Priorities are relative to each other rather than absolute: the landing page
  and the two conversion routes lead, the districts follow, and the legal
  pages sit at the back because they are read on purpose rather than found.

  EVERY PUBLIC ROUTE IS HERE (13). /retrieve-booking was missing until
  15 Aug 2026 — a linked, indexable page with its own title, description and
  `index, follow` that no crawler was being pointed at.

  `lastmod` IS DERIVED, NOT STAMPED. Each date is the last commit that
  changed the component behind that route, read from git rather than set to
  the day the file was edited — which is why they are not all the same date.
  Reproduce with:

    git log -1 --format=%ad --date=short -- <the route's page component>

  Writing today's date against all thirteen would tell a crawler that
  everything changed at once, every time, which teaches it to ignore the
  field.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://tbsg-2026.vercel.app/</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/get-passes</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/donate</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/mission</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/stalls</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/book-stall</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <!--
    The way back into a booking already made. Linked from /stalls and from
    /book-stall, indexable, and absent from this file until now.
  -->
  <url>
    <loc>https://tbsg-2026.vercel.app/retrieve-booking</loc>
    <lastmod>2026-08-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/partners</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/partner-interest</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/gallery</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/enquiry</loc>
    <lastmod>2026-08-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/terms</loc>
    <lastmod>2026-08-13</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://tbsg-2026.vercel.app/privacy</loc>
    <lastmod>2026-08-13</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
