<?xml version="1.0" encoding="UTF-8"?>
<!--
  Cardle's sitemap.

  This listed ONE entry until §11ad, and the reason it gave was that "the
  profile and leaderboard pages render nothing without a session, so a crawler
  sees an empty shell." That was true when it was written and stopped being true
  in §11ac, which opened the boards and profiles to signed-out visitors. The
  leaderboard is now a real, publicly readable page and is listed as one.

  PROFILES ARE STILL DELIBERATELY ABSENT. There is one per player and the set is
  unbounded, which is the thin-content pattern that drags a small site's whole
  quality signal down; they change daily, so anything indexed is stale within a
  day; and putting real players' usernames and statistics into search results is
  a decision about somebody other than the site owner. They carry `noindex` from
  src/ui/page-meta.js and a Disallow in robots.txt. Reversing that is one line in
  each if it is ever wanted.

  The query-param form is what the app actually routes on (DESIGN.md §11d), so
  it is what gets listed — `/leaderboard` as a path does not exist and would
  404. Each listed URL also has a matching <link rel="canonical"> set at runtime;
  a sitemap entry alone would not have been enough, because index.html's static
  canonical pointed every route back at the homepage.

  `daily` is accurate rather than aspirational: the hand genuinely changes at
  19:00 America/New_York every day (core/game-day.js), and the boards turn over
  with it.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://cardle.lol/</loc>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://cardle.lol/?leaderboard</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
