visitor.is_next
The same sign says something different to everyone
The other nine mechanisms are one code with one axis. A trail is not: several codes, one visitor, and a state that travels with them. Every station carries the same three rules and its own content — and which of the three fires depends on how far this particular visitor has come. The same sign therefore says something different to the person who is due here and to the one who is early.
- Where it hangs
- Museum, city, assembly, safety briefing, rally.
- Why the paper stays
- Handing out audio guides is staff. A dead code at the exhibit is embarrassment. A paper rally is worthless after the first rain.
- What travels along
- A signed cookie on the redirect domain, holding nothing but which stations this visitor has. No identifier, no account, nothing written server-side — the trail works for someone who has never signed in to anything.
The trail, live
visitor.found = 2Move the visitor. All four codes answer at once — same ruleset, different outcome.

The ruleset
Valid, storable, mandatory rule last.
Not a description of what the engine could do — this is the text a code carries. The first matching rule wins, and the last one always matches.
ruleset · version 1
{
"rules": [
{
"when": { "visitor.is_done": { "eq": true } },
"then": { "type": "redirect", "url": "https://museum.example/schon-da" }
},
{
"when": { "visitor.is_next": { "eq": true } },
"then": { "type": "redirect", "url": "https://museum.example/station-2" }
},
{
"when": "always",
"then": { "type": "redirect", "url": "https://museum.example/zu-frueh" }
}
]
}What unlocks a station sits at the station, not in this list. The rule list itself stays untouched — there is no rule inheritance.
Also
Same sequence, different trail.
- Assembly
- Step by step, and the box knows which step is next.
- Training path
- The last station triggers HR — a chain: webhook, then confirmation.
- Collectible
- Freely collectable instead of linear. The order is yours.
