One entry per traveller: { "ref": "t1", "trips": [{ "country": "FR", "from": "2026-05-01", "to": "2026-05-20" }] }. ref is your own opaque label (letters, digits, dots, dashes, underscores or colons): never a name, email, phone or document number. Each trip is a stay in one country, both dates inclusive (YYYY-MM-DD): from is the day you arrived, to the day you left. country is an ISO 3166-1 code (FR, GB, US, CA) or a subdivision where it matters (ES-CN Canary Islands, PT-20 Azores, FR-GF French Guiana). Optional per trip: status (confirmed, planned or estimated). Instead of (or as well as) trips, a traveller can have tripsText: plain text with one trip per line, such as "FR 2026-03-01 2026-03-30", "ES-CN 2026-01-05 to 2026-01-20" or "US 2026-02-10..2026-02-20" (# starts a comment; blank lines are ignored; a tripsText that is blank or only comments adds no trips and leaves the traveller's trips as they are). Optional per traveller, for the Canada rules: prDate (the day you became a permanent resident) and temporaryResidencePeriods ([{ from, to }] when you were in Canada as a temporary resident or protected person before that). For rules that count absences (UK settlement, Canada), days not inside any listed trip are treated as days at home, so list every trip abroad. Leave empty to run one built-in example traveller.