Tunnel: the deliberate exception that crosses wings
2 min read
A tunnel connects two rooms that live in different wings.
export interface Tunnel {
id: string;
fromRoomId: string; toRoomId: string;
reason?: string;
}
Compare it to a hall
A hall carries a relation and a weight. A tunnel
carries neither — it has a free-text reason instead.
That asymmetry is the interesting part. Halls are ordinary structure inside a partition, typed so they can be traversed programmatically. A tunnel crosses the boundary the wing exists to enforce, and the model asks for a justification in prose rather than a category.
Reading that generously: crossing a partition is not a routine operation to be automated over. It is an exception, and exceptions should be explained rather than classified.
Where the design is thin
A free-text reason is not machine-readable, so a traversal cannot rank tunnels
the way weight lets it rank halls. If tunnels ever become common, that field
has to become structured, and the absence of a weight is a real limitation
rather than a deliberate minimalism.
Today they are rare, and the type reflects that. Worth knowing which of those two things is true before building on it.
When one is justified
The honest cases are narrow. A shared library used by two projects, where what was learned in one genuinely applies in the other. A persona preference that should influence project planning. A migration where knowledge legitimately moves between wings once and then stops.
What is not a justification is convenience — noticing two rooms look similar and linking them. That is how a partitioned store quietly becomes an undifferentiated one, edge by edge, with each individual link looking reasonable.
The rarity is the feature
If tunnels become common, the wing boundaries were drawn in the wrong place, and the fix is to redraw them rather than to keep bridging.
A steadily growing tunnel count is therefore a useful signal about the partitioning itself — one of the few places in this model where a metric tells you something about the design rather than the data.
