← All use cases
code.tisch
Forty stickers, one ruleset
Two hundred tables, one behaviour. Each sticker carries only the number. The same menu for all of them, but the table number lands in the ordering URL. A dish changes once, not two hundred times.
- Where it hangs
- Tables, hotel rooms, desks, batches, inventory numbers.
- Why the paper stays
- Maintaining forty separate static codes, every time a dish changes.
- If the value is missing
- If the value is missing, the rule does not match and the scan falls through to the mandatory rule below — no 404, no 500. The
existscondition says so out loud. Without it the scan would fall through just the same: a target URL that cannot be built without the value makes the ruleinert— the same as with a missing file.
Live resolution
code.tisch = 12code.id = 7fK2r9xgeo.country = CHlang.primary = de
- 1Menu with the table in the target
- alwaysOtherwise the website
https://adler.ch/tisch/12
Value on the child code

The ruleset
The exists condition says out loud what would otherwise happen silently.
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": { "code.tisch": { "exists": true } },
"then": { "type": "redirect", "url": "https://adler.ch/tisch/{code.tisch}" }
},
{
"when": "always",
"then": { "type": "redirect", "url": "https://adler.ch" }
}
]
}Exactly two levels: a child code evaluates its parent's rule list and carries only its own values. It has no ruleset of its own — the project shares data, not rules.
Also
Same grip, different value.
- {code.batch}
- The batch in the support link. One label per lot, one ruleset for all.
- {code.room}
- The room number in the service URL. The sticker on the nightstand stays.
- {code.asset}
- The inventory number into the ticket system. Whoever reports it types nothing.
Reprinting is the expensive part. Stop doing it.
Create a codeTry it without an accountGet going, or have it shown to you.
