All use cases

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 = 2
Already done/schon-daDue here/station-2Too early/zu-frueh1Entrance2Exhibit3Workshop4Finish

Move the visitor. All four codes answer at once — same ruleset, different outcome.

A station sign on a wall, two more receding behind it through a line of rooms
The same code on every shot.Museum, city, assembly, safety briefing, rally.

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.

All use cases

Reprinting is the expensive part. Stop doing it.