# Clues answer catalogue: sources and scope

Reviewed for this local build on **15 September 2026**. The bundled catalogue contains **995 entries**: 247 countries/territories, 244 capitals, 152 currencies, 247 flags and 105 other curated cities. All entries have English, Arabic, French, Spanish, German and Russian display names. Search is local and independent of the answer to the current puzzle.

## Attribution and licence

Country metadata and capital lists are derived from **[mledoze/countries](https://github.com/mledoze/countries)**, revision [`c8015eebdd94c533358406b0d709f441389e1f2e`](https://github.com/mledoze/countries/tree/c8015eebdd94c533358406b0d709f441389e1f2e). This derived database is made available under the **[Open Database License 1.0 (ODbL)](https://opendatacommons.org/licenses/odbl/1-0/)**; see the [upstream licence](https://github.com/mledoze/countries/blob/c8015eebdd94c533358406b0d709f441389e1f2e/LICENSE). The complete derived database is the adjacent, downloadable [clues-catalogue-data.js](./clues-catalogue-data.js). The search implementation is separate from that database.

Country and currency display names are generated from the Node runtime's Unicode CLDR-backed `Intl.DisplayNames`, then bundled as text. Place names use Pullback's existing reviewed six-language place list and explicit capital translations. These are names and transliterations, not generated facts or live translations.

## Currency review

Only country-associated currencies found in SIX's **[ISO 4217 current currency list](https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml)** are retained. The downloaded list's publication date is **2026-01-01**. SIX is the [official ISO 4217 Maintenance Agency](https://www.six-group.com/en/products-services/financial-information/market-reference-data/data-standards.html). Funds, precious metals and historical currency codes are not answer entries.

Explicit corrections to upstream country mappings:

- Bulgaria uses EUR following its [1 January 2026 euro changeover](https://www.ecb.europa.eu/euro/changeover/bulgaria/html/index.en.html).
- Curaçao and Sint Maarten use XCG, the [Caribbean guilder introduced on 31 March 2025](https://www.centralbank.cw/functions/banknotes-coins/caribbean-guilder), replacing ANG.
- Zimbabwe's domestic currency is ZWG, as specified by the [Reserve Bank of Zimbabwe's code announcement](https://www.rbz.co.zw/documents/press/2024/July/PRESS_STATEMENT_ON_ZiG_CURRENCY_CODE.pdf). ZWG and USD are included for Zimbabwe. The upstream basket of possible foreign tender is not used to suggest that currencies such as JPY are Zimbabwean currencies.
- Sierra Leone uses SLE; historic SLL is absent.

The catalogue is an offline snapshot. Currency changes require an explicit data update; no browser request refreshes it automatically. Country context is for finding a currency, not accepting a country name as a currency guess.

## Countries, territories, capitals and cities

The country/territory set follows the existing Map catalogue, with the project's excluded country and Antarctica removed. This preserves dependencies such as Greenland and Puerto Rico; a country-category entry does **not** imply sovereign-state status. The source's `independent` boolean is retained. Flags follow this same supported set; no flag images or emoji need downloading.

Capital records generally follow the source's capital list, including territorial administrative centres. Where more than one capital is listed, each is separate (`capital:ZA`, `capital:ZA:2`, `capital:ZA:3`, for example). The following points received an explicit review:

- Equatorial Guinea: **Ciudad de la Paz**, following the [government's 2 January 2026 declaration](https://www.guineaecuatorialpress.com/noticias/el_presidente_de_la_republica_proclama_la_ciudad_de_la_paz_como_capital_de_la_republica_de_guinea_ecuatorial_con_la_firma_de_un_decreto_ley). Attribution: Oficina de Información y Prensa de Guinea Ecuatorial.
- Sri Lanka: **Sri Jayawardenepura Kotte**, as described by its [municipal council](https://www.kotte.mc.gov.lk/index.php?Itemid=175&id=25&lang=en&option=com_content&view=article). Colombo remains an existing city choice.
- Nauru: no capital entry is invented for Yaren, which is a district. [Pacific Regional Infrastructure Facility country profile](https://www.theprif.org/country-profile/republic-nauru).
- Hong Kong and the British Indian Ocean Territory: historical/administrative labels in upstream `capital` fields are not used as capital-city answers. Their country/territory entries remain.
- Palestine: **East Jerusalem** is marked `capitalRole: claimed`, with that qualification in search context, following the [Palestinian Ministry of Foreign Affairs' stated position](https://www.mofa.pna.ps/en-us/mn/our-position). Ramallah is not presented as the capital.

The other-city list reuses the existing catalogue's 176 city entries, removes county entries, and merges 71 matching capitals into their canonical capital entries. Thus Tokyo has one locality entry (`capital:JP`), while Venice remains `city:p000`. This is a curated, useful list, not a complete database of every city or a measured popularity ranking. Capitals outside the existing place list were added from the cited country source. Proper names with no different established French, Spanish or German form retain the source spelling; Arabic and Russian capital names use explicit transliterations.

## Matching and integration

Load `clues-catalogue-data.js` before `clues-catalogue.js`. No other game scripts or network services are required. Browser global: `CluesCatalogue`; Node: `require('./clues-catalogue.js')`.

- `search(query, language, {limit: 12})` returns at most 12 `{id, category, name, context}` views after two Unicode letters. Digits and combining marks do not count toward this threshold. Exact names rank first, then prefixes, then substrings and related-country context.
- `exact(query)` searches the full multilingual alias index and returns a full entry only when exactly one canonical ID matches. Ambiguous names such as Singapore require picking an option.
- `byId(id)` returns a frozen full entry or `null`; `label(id, language)` returns its display name or an empty string. Entries contain `id`, `category`, `names`, `aliases`, and relevant country/currency metadata.
- `normalise(text)` tolerates case, accents, punctuation, spaces, Arabic vowel marks, alef/yah variants and tatweel.

Flags require a flag-qualified alias: `Japan` never silently selects `flag:JP`. A currency accepts its own names/code, not its associated country's bare name. Selection stores a canonical ID; language changes do not change its identity. There is no current-puzzle filter and no API call while typing.

Run `node test-clues-catalogue.cjs` for the focused catalogue checks.
