ZONES
=====
Backrooms Novel Game organises the world with *hierarchical zone tags*.
Each room carries **one** Tag in the *zone* category whose *key* encodes the
full path of that room in slash-delimited form.
lobby/human_resources/training
Rules
-----
1. Use lower-snake (or kebab) case for every segment.
2. A single segment like `limbo` is perfectly valid for root-level areas.
3. A room may belong to *several* independent branches – add a second full
path tag if necessary (rare).
4. Colours are defined on any ancestor tag via *zone catalog* (Map-Editor).
The deepest coloured ancestor determines a room’s map colour.
Builder commands
----------------
• ``@setzone <full/path>`` – convenience helper, replaces any existing zone
tag that shares the *root* segment, then adds the new path.
Example::
@setzone lobby/human_resources/training
• ``@tag here = <full/path> : zone`` – manual alternative (be sure to remove
unwanted old tags yourself).
Searching & scripting
---------------------
In code (or the Python console)::
rooms = evennia.search_tag("lobby/human_resources", category="zone", matchtype="startswith")
This returns every room in *lobby → human_resources* and any deeper child.
You can also lock exits or scripts based on zone::
@lock exit = traverse:tag(lobby, zone)
Map-Editor
----------
Selecting a parent zone in the Map-Editor automatically includes every
descendant. Breadcrumb links in the Room-Details drawer allow one-click
navigation up and down the hierarchy.