EDITION OF ...

The trail-node schema

Every place on Nomad Trail is stored in one small, open format: trail-node/v1. This page is that format, in full — not a summary of it. If you want to hold this data somewhere else, or check that we are being honest about what we do and don't know, this is where to look.

Why an open schema

The trail should not belong to this website. It belongs to the places on it. So the data lives in a format any host can hold: a plain JSON document, one object per place, no field that can't be filled in honestly by someone who has actually been there or actually runs the place.

This site is one reader of that format. It happens to draw a map and a panel around it, but the format doesn't depend on this site existing. Anyone may take the same fields and build another reader — a different map, a newsletter, a printed zine of who's open this season. The schema is the commons; this page is us publishing our part of it.

The format

A trail-node document is { meta, nodes }. meta.schema is the string "trail-node/v1", meta.updated is the date the file was last touched, and meta.count must match the number of nodes. Each entry in nodes has the fields below.

trail-node/v1 — one entry per place
FieldTypeWhat it means
idstring, requiredA short slug, unique across the whole file. Used to link to this node from elsewhere.
namestring, requiredThe place's own name, as it calls itself.
regionstring, requiredA region-level description — county, valley, nearest named area. Never a street address.
countrystring, requiredISO country code, two letters.
latnumber, requiredLatitude, rounded to at most one decimal place on purpose — this is a region on the map, not a doorstep.
lonnumber, requiredLongitude, same rounding rule as lat.
linksarray of strings, requiredWhere to read more or apply — the place's own site, application form, or listing. Can be more than one.
openWindowsarray, required (may be empty)Published seasons of the form { from, to, note }, months as YYYY-MM. An empty array means no published seasons — that's an honest "we don't know," not "closed."
howToComestring, requiredWhat the place is and how someone actually gets in — apply, email, book, show up on a set day.
noticeRequiredstring, requiredHow much lead time to give, in the host's own terms. "unknown — ask the host" is a valid, honest value.
minStaystring, requiredShortest stay the place will take, in plain words.
maxStaystring or null, optionalLongest stay, if one is published. null means no maximum has been published — not that stays are unlimited.
photostring or null, optionalA picture of the place, supplied by the host when they claim their node. We never lift images from a community's website — the photo is yours to give, with rights you hold.
exchangeModelenum, requiredOne of volunteer, contribution, paid, mixed, or unknown.
capacitystring, requiredRoughly how many people it holds, in the host's own words.
verifiedByenum, requiredWho stands behind this entry: host (the place itself), network (someone in the network who's been there), or research (assembled from public pages, not yet confirmed by anyone).
lastConfirmedstring, requiredDate this record was last checked, as YYYY-MM-DD.

One complete example — Feÿtopia, exactly as it sits in this site's own data file today:

{
  "id": "feytopia",
  "name": "Feÿtopia",
  "region": "Burgundy, France",
  "country": "FR",
  "lat": 48.0,
  "lon": 3.4,
  "links": [
    "https://feytopia.com/join"
  ],
  "openWindows": [
    {
      "from": "2026-12",
      "to": "2027-05",
      "note": "published 2026-2027 season runs December to May"
    }
  ],
  "howToCome": "Residential community at Château du Feÿ in Villecien, Burgundy. Complete the application form on the site; the team follows up for an interview when space opens. Arrival is on Mondays, departure on Sundays.",
  "noticeRequired": "application plus interview; no fixed lead time published — space is limited so apply early",
  "minStay": "2 weeks (first-timers encouraged to start here)",
  "maxStay": "4 months",
  "exchangeModel": "paid",
  "capacity": "unknown — ask the host",
  "verifiedBy": "research",
  "lastConfirmed": "2026-07-27"
}

Note its verifiedBy is "research" and its lastConfirmed is today's date — on the map, that still renders as a faint dot. Freshness and confirmation are two different things: this entry is as current as data gets, but nobody from Feÿtopia or the network has vouched for it yet, so it waits for that before it turns bright.

The rules the site lives by

The format only matters if the site reading it behaves. So this reader commits to a few things, and keeps to them even when it would be easier not to:

  • Coordinates are region-level, never a doorstep. You'll get close enough to plan a trip, not close enough to find a gate.
  • Every node shows when it was last confirmed, and by whom — the host, someone in the network who's actually stayed there, or just research from public pages.
  • A node stays faint on the map until someone from the host or the network confirms it — research alone, however recent, doesn't earn the bright dot. And any node, however it was verified, goes faint again if six months pass without reconfirming it, this time carrying a plain note that it needs re-verification. Nothing gets quietly dropped; it just stops looking as certain as it once did.
  • The site states facts, never scores. There is no rating, no ranking, no composite number standing in for a place. You get what's known and what isn't, and you decide.
  • Unknown is never hidden. When a field isn't known, it says so — "ask the host," an empty list, a null — rather than guessing a plausible-looking answer.

Hold a node on the trail?

If you host one of these places — or you've stayed there and the host wants in — send the filled-in format above, or just answer these questions in an email:

  1. What's the place called, and roughly where is it (region and country is enough — we won't publish anything more precise)?
  2. How does someone actually get in — apply, email, book, show up on a set day?
  3. How much notice do you need, and what's the shortest and longest stay you take?
  4. Is it volunteer, contribution/dana, paid, a mix, or genuinely unclear right now?
  5. Roughly how many people can you hold at once?
  6. Are there seasons when you're open, or is that not settled yet?
  7. Who are you, in relation to the place — the host, or someone who's stayed there?

Send it to gustaf@islands-of-coherence.com with the subject "A node for Nomad Trail." Free, always — this suite doesn't charge anyone to be found on it.