<?xml version="1.0" encoding="UTF-8"?>
<!--
  The public pages, and only those (#196).

  Search Console was handed https://usetopiary.app/sitemap.xml before this
  file existed. Nothing answered at that path, so the single-page-app
  fallback in _redirects served the app shell — HTTP 200, text/html — and
  Google reported "Sitemap is HTML". A static file wins over the fallback,
  which is why this one is served as XML.

  What is listed: the landing page, the install page, how-to-use, and the two
  legal pages. What is deliberately not: anything robots.txt disallows
  (/sign-in, /library, /account, /auth/, /upgrade, /b/, /_sitemap) and the
  signed-in screens that are not disallowed but have nothing to index
  (/import, /export, /tree, /delete-account). Paths are in the same form as
  the canonical each page declares — apex host, no trailing slash — so the
  sitemap and the canonicals cannot disagree.

  No <lastmod>: it would be hand-typed and would go stale by association,
  which is the class of claim this project keeps retracting. Google gives
  little weight to lastmod it cannot trust. post-export.mjs checks that every
  <loc> here is a page the export actually produced.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://usetopiary.app/</loc></url>
  <url><loc>https://usetopiary.app/get</loc></url>
  <url><loc>https://usetopiary.app/how-to-use</loc></url>
  <url><loc>https://usetopiary.app/privacy</loc></url>
  <url><loc>https://usetopiary.app/terms</loc></url>
</urlset>
