<?xml version="1.0" encoding="UTF-8"?>
<!--
  KB-387. Rebuilt 2026-08-11.

  WHY: every one of the previous 29 entries ended in .html, and the site moved to extensionless
  URLs, so the server 301s /about.html to /about. Every single address in this file therefore
  bounced. A sitemap exists to hand a crawler the FINAL address of a page; handing it a redirect
  wastes the crawl and tells Google the page lives somewhere it does not.

  Two entries are deliberately NOT the obvious clean form, because the server serves them elsewhere:
    /pestabina   (not /pesta-bina)  - pesta-bina.html is served here via ALIAS in server/index.js
    /bookpesta   (not /book-pesta)  - book-pesta.html is served here via the same ALIAS table
  Both /pesta-bina and /book-pesta redirect INTO those addresses (live check 15 Sep 2026: both answer
  302, a temporary redirect, as asserted in server/kb1308-openday-address.test.js) and are kept that way on purpose,
  for people who bookmarked them. They must never appear here or in a canonical tag.

  LASTMOD (KB-1335): each lastmod date is the date of the last commit on main that changed that page's
  HTML file. When you change a page, change its date here in the same commit.

  The homepage is listed as the bare origin, matching home.html's own canonical. /home also serves
  the same page, but the canonical names "/", so "/" is what belongs here.

  DELIBERATELY EXCLUDED, do not "fix" by adding them back:
    /admin /admin-pesta /pesta-assign  - staff surfaces, also Disallowed in robots.txt
    /pesta-claim /pesta-form /pesta-group /staff-claim /wa-push /404  - carry meta robots noindex
    /profile          - a signed-in account page, nothing for a searcher to land on
    /soon             - an "Opening soon" placeholder, not a real page yet
    /corporate /workshops - stub pages that canonical into /field-trip and /build-a-thing

  Every URL below was verified to answer 200 directly, with no redirect hop, before being listed.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Home + the surfaces people search their way into -->
  <url><loc>https://kitabina.my/</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>1.0</priority></url>

  <!-- KB-1270: Open Day, Sat 19 + Sun 20 September 2026. Added once the nav item and the home-page
       hero linked here and the noindex meta was removed. REMOVE THIS ENTRY ON MON 21 SEP 2026, the day
       after the event (KB-1335), same as the Pesta Bina booking URL below was removed after its own
       event ended. Nothing removes it automatically. -->
  <url><loc>https://kitabina.my/open-day</loc><lastmod>2026-09-15</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url>

  <url><loc>https://kitabina.my/browse</loc><lastmod>2026-09-14</lastmod><changefreq>daily</changefreq><priority>0.9</priority></url>
  <url><loc>https://kitabina.my/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url>

  <!-- KB-1373 · one booking address per programme.
       /book is the catalogue grid and keeps its entry above. Each address below is one programme's
       booking page, carrying its own canonical, its own share card and its own Course markup, all
       written from the live catalogue at serve time. /book?p=<code> still works and answers a 301
       into the matching address here, which is exactly why no ?p= URL may ever be listed in this
       file: a sitemap hands a crawler the FINAL address, never a redirect.

       THREE PROGRAMMES THE BOOKING PAGE SERVES ARE DELIBERATELY NOT LISTED, do not "fix" them in:
         /bl/book /odbuild/book  - switched off in the catalogue (enabled:false), so the address
                                   renders the catalogue grid rather than a programme. The routes
                                   exist so a re-enable needs no deploy and no shared link 404s.
         /fieldtrip/book         - sends the visitor straight to WhatsApp by design, because a field
                                   trip is arranged by conversation. A sitemap entry that bounces a
                                   crawler off-site is not a page.
       And two product codes have no address at all: `pesta` (the festival owns /pesta and /pesta/*,
       and p=pesta forwards to /pestabina) and `gift` (not in the live catalogue). See BOOK_PRODUCTS
       in server/seo.js. -->
  <url><loc>https://kitabina.my/jw/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url>
  <url><loc>https://kitabina.my/kh/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.9</priority></url>
  <url><loc>https://kitabina.my/jwt/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/pass10/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/bb/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/be/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/fiy/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/tt/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/cc/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/odmaster/book</loc><lastmod>2026-09-27</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url>
  <url><loc>https://kitabina.my/search</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url>
  <url><loc>https://kitabina.my/schedule</loc><lastmod>2026-09-14</lastmod><changefreq>daily</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/shop</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/compare</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url>

  <!-- Pesta Bina 2026 has ended. The festival page stays listed as an informational page; the
       booking URL was removed from this sitemap when the 2026 edition ended. -->
  <url><loc>https://kitabina.my/pestabina</loc><lastmod>2026-09-14</lastmod><changefreq>yearly</changefreq><priority>0.3</priority></url>

  <!-- Who it is for -->
  <url><loc>https://kitabina.my/kids</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/adults</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/field-trip</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
  <url><loc>https://kitabina.my/bina-studio</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url>

  <!-- Programs and courses -->
  <url><loc>https://kitabina.my/programs</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://kitabina.my/skills</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://kitabina.my/junior-woodworker</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://kitabina.my/kemahiran-hidup</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.7</priority></url>
  <url><loc>https://kitabina.my/cabinet-making</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.6</priority></url>
  <url><loc>https://kitabina.my/build-a-thing</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.6</priority></url>
  <url><loc>https://kitabina.my/fix-it-yourself</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.6</priority></url>
  <url><loc>https://kitabina.my/tool-training</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.6</priority></url>

  <!-- Proof: work, people, results -->
  <url><loc>https://kitabina.my/projects</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url>
  <url><loc>https://kitabina.my/stories</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url>
  <url><loc>https://kitabina.my/reviews</loc><lastmod>2026-09-14</lastmod><changefreq>weekly</changefreq><priority>0.6</priority></url>
  <url><loc>https://kitabina.my/instructors</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.6</priority></url>
  <url><loc>https://kitabina.my/outcomes</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url>
  <url><loc>https://kitabina.my/accreditation</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url>
  <url><loc>https://kitabina.my/scholarships</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url>
  <url><loc>https://kitabina.my/careers</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url>

  <!-- Practical: before you come -->
  <url><loc>https://kitabina.my/calendar</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url>
  <url><loc>https://kitabina.my/find-us</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.6</priority></url>
  <url><loc>https://kitabina.my/prepare</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url>
  <url><loc>https://kitabina.my/tool-list</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url>
  <url><loc>https://kitabina.my/faq</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.6</priority></url>
  <url><loc>https://kitabina.my/about</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.6</priority></url>

  <!-- Terms -->
  <url><loc>https://kitabina.my/policies</loc><lastmod>2026-09-14</lastmod><changefreq>monthly</changefreq><priority>0.4</priority></url>
  <url><loc>https://kitabina.my/legal</loc><lastmod>2026-09-14</lastmod><changefreq>yearly</changefreq><priority>0.3</priority></url>
  <url><loc>https://kitabina.my/privacy</loc><lastmod>2026-09-14</lastmod><changefreq>yearly</changefreq><priority>0.3</priority></url>

</urlset>
