Recon-2 (feature identifiers) landed — and it corrects two things plus surfaces new systems:

- **`TakABrak`** = an **easter-egg** key item ("Take-A-Break.exe"), *not* an ability expansion. So only **5 functional Plugns** (Hxp/Rmt/Msk/Duo/Wrp).
- **Mod Items 900–909** = the legacy **admin/RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>`…). So **Joker Shell is an admin item**, not a reward — it's part of the Hard-Rule-3 anti-port, not parity content.
- **Zone/Area Link** = one DB with a flag, not two. Area links "die" without the parent zone link.
- **Warp = `loctele`** ("local teleport"); **Spectral Gate = `swaptile`**.
- **NEW: a Watch system** (`watcher` — observe/follow another Navi) alongside Duo/Summon/Join, all under one unified `rq_*` request system (11 request types).
- **Zone roster ~11**: + Deserted Lobby, Prairie Flats, Database, Traverse Core, Schweisstar (Abyssal Ruin = the Digital Abyss room). ~120 `ac_*` objects are the area-name labels (the "transition markers").

Folding into glossary:


Edit

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` catalog (6 total):
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **TakABrak** (4) — function unconfirmed (name hints "take a break" — rest/recall/AFK?).
  _Open question._
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**Mod Item**:
A second class of Key-category item (legacy IDs 900–909) distinct from Navi Expansions. Known:
**Joker Shell** (909) — grants the "joker" movement mode (the fastest walk speed tier).
_Largely unmapped — open question._

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` keyids 1–6, of which **five are functional Plugns**:
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**TakABrak** (keyid 4):
An **easter-egg** key item ("Take-A-Break.exe"), not an ability-gating expansion. Lives in the
Key category but gates nothing.

**Mod Item** (Key-category IDs 900–909):
The legacy **admin / RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>` = Joker Shell, …),
each wired to admin sub-commands. This is the original "run clipboard as superuser" admin model
— an **anti-port** per CLAUDE.md Hard Rule 3, NOT a collectable reward. Joker Shell (the fastest
"joker" movement tier) is an admin item, not parity content.


The file C:\Users\decid\Documents\projects\rebno\CONTEXT.md has been updated successfully. (file state is current in your context — no need to Read it back)

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` keyids 1–6, of which **five are functional Plugns**:
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**TakABrak** (keyid 4):
An **easter-egg** key item ("Take-A-Break.exe"), not an ability-gating expansion. Lives in the
Key category but gates nothing.

**Mod Item** (Key-category IDs 900–909):
The legacy **admin / RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>` = Joker Shell, …),
each wired to admin sub-commands. This is the original "run clipboard as superuser" admin model
— an **anti-port** per CLAUDE.md Hard Rule 3, NOT a collectable reward. Joker Shell (the fastest
"joker" movement tier) is an admin item, not parity content.

# REBNO Domain Context

The shared language of *BN Online* (legacy game) and *ReBNO* (its rebuild). This glossary
is the source of truth for game-domain terms — what concepts ARE, and the canonical word for
each. It is NOT a spec and holds no implementation detail.

> Status: actively being refined via `/grill-with-docs`. Terms marked _(draft)_ are
> provisional pending confirmation.

## Language

### Game identity

**BN Online** (alias: **BNO**):
The legacy game — a persistent, multiplayer **social-exploration** world built in GameMaker
5.3a, skinned in the Mega Man Battle Network aesthetic. The core loop is exploration, not
combat: uncover hidden platforms/pathways/portals, beat timing-sensitive movement challenges,
and solve puzzles built from interwoven traversal mechanics. **No combat system.**
_Avoid_: "MMBN game", "battle game" (the IP is skin, not mechanics).

**ReBNO**:
The ground-up rebuild of BNO on a modern web stack. Primary goal: **full feature parity with
BNO plus QoL tweaks** afforded by web infrastructure. Not a reskin and not a new game — parity
first. New systems and an eventual IP-shed / battle system are explicitly far-future, out of
current scope.
_Avoid_: "the port" (it is a from-scratch rebuild, not a port).

**Progression** (the reward axis):
Advancement is exploration-driven and Metroidvania-shaped — rewards unlock the ability to reach
more of the world. Reward types: new **Zones**, new **Areas**, new **Message Boards**,
**Collectables**, and **Key Items**.

### World structure

**Zone**:
A top-level region (e.g. BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull). In legacy
BNO each Zone is exactly **one GameMaker room**. All inter-zone travel is teleport-gated, but a
zone can be reached on foot (or via a found **Warp**) before you hold its Link Data — you simply
cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A sub-region *within* a Zone's single room, delimited by invisible **area transition markers**
(not a separate room).

**Central Portal**:
The one portal in each Zone that is the **source of that zone's Zone Link Data**. You must
physically reach it before that zone joins your fast-travel network — until then you can only
travel there on foot, and the Summon/Join system refuses to teleport you there.

### Key Items & Collectables

**Key Item**:
A progression-gating reward. Primarily **Navi Expansions**. Metroidvania lock-and-key: a key
item unlocks an ability/feature that opens previously-unreachable progression.

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` catalog (6 total):
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **TakABrak** (4) — function unconfirmed (name hints "take a break" — rest/recall/AFK?).
  _Open question._
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**Mod Item**:
A second class of Key-category item (legacy IDs 900–909) distinct from Navi Expansions. Known:
**Joker Shell** (909) — grants the "joker" movement mode (the fastest walk speed tier).
_Largely unmapped — open question._

**Collectable**:
A gatherable reward, surfaced in-universe as **Data** drops. Known taxonomy:
- **Zone Link Data** (alias: Zone Data) — unlocks fast-travel to a Zone; sourced from that
  zone's **Central Portal**.
- **Area Link Data** (alias: Area Data) — unlocks fast-travel to an Area; usable only if you
  also hold the parent Zone's Zone Link Data.
- **Spectrum Data** — unlocks an avatar cosmetic option (requires `MskPlugn` to apply).
- **Friend Data** — an in-universe friends-list entry.

**Link Data**:
The teleport-enabling subclass of **Data** (Zone Link Data + Area Link Data) — the keys to the
fast-travel network.

**Data**:
The in-universe noun for collectable drops (link/spectrum/friend data). The avatar, NPC, and
"data"-drop sprites are the only non-original art (MMBN-derived); the rest of BNO's art is
original.

### State sharing & visibility

**Deterministic-Synced state**:
World state driven by shared server time so every client renders it identically: moving
**Platform** positions, animation loops, **Flicker** tile present/gone cycles, **Glow** tile
activation. Not per-player. (Movers and slippery ice have no unique state — just a looping
animation.)

**Per-Player state**:
Anything tied to a player's unlocks, abilities, or inventory: **Hexbridge** activation,
**Hidden** tile reveals, and all **Key Item** / **Collectable**-gated access (warp/zone/area/
spectrum). Two players in the same room can stand on different walkable surfaces.

**Visibility rule**:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.

**Contiguous hidden-tile body**:
A connected group of Hidden floor tiles forming one visibility group. Navis on the same body
can see each other; outsiders cannot see them.

### Cooperative play

**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

### Avatar

**Navi** _(draft)_:
The player-controlled avatar. Cosmetics are customized by equipping **Spectrum Data** at a
**Spectral Gate** tile (requires `MskPlugn`).

### Portals & travel

**Portal**:
An in-world teleport node. To fast-travel, a Navi stands on a portal and selects acquired
**Link Data** from a menu (legacy flow; ReBNO targets a heavily improved UX for this).

**Home Portal**:
A player-chosen portal (any cleared zone/area portal) that is their login spawn and the only
destination fast-travelable from *anywhere*. Falling during exploration also returns the Navi
here — with a slim chance of landing in the **Digital Abyss** instead.

**Digital Abyss** (legacy room: **Abyssal Ruin**):
A fall-failure destination. Falls are counted (`global.dafalls`); the first few (≤5) are safe
respawns to the Home Portal, but beyond that threshold the Navi is routed to the Abyss. A
per-user server flag can exempt a player from it.

**Online Command Screen**:
A hub/menu screen used as the default spawn when a player has set no Home Portal.

**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi;
**Hexbridge** tiles bounce it back after spawning a (per-player) floor tile.

**Warp** (requires **WrpPlugn**):
Intra-zone teleportation via Warp tiles. Inert without the expansion.

**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap.

### Social

**Message Board**:
A persistent in-world posting surface (legacy `MB_News` / `MB_Log`). New boards are a
progression reward.

**Friend Data**:
The legacy in-universe friends list (collected as Data). _Flagged: see ambiguities._

## Flagged ambiguities

- **"Friends list"** — legacy **Friend Data** (an in-universe collectable) vs a *modern*
  account-level friends list proposed in `.planning/research/FEATURES.md` as a new
  differentiator. These may be the same concept or two distinct systems. **Unresolved.**

## Example dialogue

_(to be written once core terms are confirmed)_

+`global.keydata` keyids 1–6, of which **five are functional Plugns**:

-- **TakABrak** (4) — function unconfirmed (name hints "take a break" — rest/recall/AFK?).

-A second class of Key-category item (legacy IDs 900–909) distinct from Navi Expansions. Known:

-**Joker Shell** (909) — grants the "joker" movement mode (the fastest walk speed tier).

+An **easter-egg** key item ("Take-A-Break.exe"), not an ability-gating expansion. Lives in the

+**Mod Item** (Key-category IDs 900–909):

+The legacy **admin / RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>` = Joker Shell, …),

+each wired to admin sub-commands. This is the original "run clipboard as superuser" admin model

+— an **anti-port** per CLAUDE.md Hard Rule 3, NOT a collectable reward. Joker Shell (the fastest

+"joker" movement tier) is an admin item, not parity content.


-Walking: correct -Hexporting: wrong. hexporters are floor terminals that split the navi into 6 orbs of light, which then form into a flat hexagon of light which travels in a straight line across empt…


ReBNO feature parity and platform expansion


**Link Data**:
The teleport-enabling subclass of **Data** (Zone Link Data + Area Link Data) — the keys to the
fast-travel network.

**Link Data**:
The teleport-enabling subclass of **Data** — the keys to the fast-travel network. Stored as one
inventory category; **Zone Link vs Area Link is a flag**, not two systems. An Area Link is inert
("dies") if you do not hold its parent Zone Link.


**Link Data**:
The teleport-enabling subclass of **Data** — the keys to the fast-travel network. Stored as one
inventory category; **Zone Link vs Area Link is a flag**, not two systems. An Area Link is inert
("dies") if you do not hold its parent Zone Link.

# REBNO Domain Context

The shared language of *BN Online* (legacy game) and *ReBNO* (its rebuild). This glossary
is the source of truth for game-domain terms — what concepts ARE, and the canonical word for
each. It is NOT a spec and holds no implementation detail.

> Status: actively being refined via `/grill-with-docs`. Terms marked _(draft)_ are
> provisional pending confirmation.

## Language

### Game identity

**BN Online** (alias: **BNO**):
The legacy game — a persistent, multiplayer **social-exploration** world built in GameMaker
5.3a, skinned in the Mega Man Battle Network aesthetic. The core loop is exploration, not
combat: uncover hidden platforms/pathways/portals, beat timing-sensitive movement challenges,
and solve puzzles built from interwoven traversal mechanics. **No combat system.**
_Avoid_: "MMBN game", "battle game" (the IP is skin, not mechanics).

**ReBNO**:
The ground-up rebuild of BNO on a modern web stack. Primary goal: **full feature parity with
BNO plus QoL tweaks** afforded by web infrastructure. Not a reskin and not a new game — parity
first. New systems and an eventual IP-shed / battle system are explicitly far-future, out of
current scope.
_Avoid_: "the port" (it is a from-scratch rebuild, not a port).

**Progression** (the reward axis):
Advancement is exploration-driven and Metroidvania-shaped — rewards unlock the ability to reach
more of the world. Reward types: new **Zones**, new **Areas**, new **Message Boards**,
**Collectables**, and **Key Items**.

### World structure

**Zone**:
A top-level region (e.g. BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull). In legacy
BNO each Zone is exactly **one GameMaker room**. All inter-zone travel is teleport-gated, but a
zone can be reached on foot (or via a found **Warp**) before you hold its Link Data — you simply
cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A sub-region *within* a Zone's single room, delimited by invisible **area transition markers**
(not a separate room).

**Central Portal**:
The one portal in each Zone that is the **source of that zone's Zone Link Data**. You must
physically reach it before that zone joins your fast-travel network — until then you can only
travel there on foot, and the Summon/Join system refuses to teleport you there.

### Key Items & Collectables

**Key Item**:
A progression-gating reward. Primarily **Navi Expansions**. Metroidvania lock-and-key: a key
item unlocks an ability/feature that opens previously-unreachable progression.

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` keyids 1–6, of which **five are functional Plugns**:
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**TakABrak** (keyid 4):
An **easter-egg** key item ("Take-A-Break.exe"), not an ability-gating expansion. Lives in the
Key category but gates nothing.

**Mod Item** (Key-category IDs 900–909):
The legacy **admin / RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>` = Joker Shell, …),
each wired to admin sub-commands. This is the original "run clipboard as superuser" admin model
— an **anti-port** per CLAUDE.md Hard Rule 3, NOT a collectable reward. Joker Shell (the fastest
"joker" movement tier) is an admin item, not parity content.

**Collectable**:
A gatherable reward, surfaced in-universe as **Data** drops. Known taxonomy:
- **Zone Link Data** (alias: Zone Data) — unlocks fast-travel to a Zone; sourced from that
  zone's **Central Portal**.
- **Area Link Data** (alias: Area Data) — unlocks fast-travel to an Area; usable only if you
  also hold the parent Zone's Zone Link Data.
- **Spectrum Data** — unlocks an avatar cosmetic option (requires `MskPlugn` to apply).
- **Friend Data** — an in-universe friends-list entry.

**Link Data**:
The teleport-enabling subclass of **Data** (Zone Link Data + Area Link Data) — the keys to the
fast-travel network.

**Data**:
The in-universe noun for collectable drops (link/spectrum/friend data). The avatar, NPC, and
"data"-drop sprites are the only non-original art (MMBN-derived); the rest of BNO's art is
original.

### State sharing & visibility

**Deterministic-Synced state**:
World state driven by shared server time so every client renders it identically: moving
**Platform** positions, animation loops, **Flicker** tile present/gone cycles, **Glow** tile
activation. Not per-player. (Movers and slippery ice have no unique state — just a looping
animation.)

**Per-Player state**:
Anything tied to a player's unlocks, abilities, or inventory: **Hexbridge** activation,
**Hidden** tile reveals, and all **Key Item** / **Collectable**-gated access (warp/zone/area/
spectrum). Two players in the same room can stand on different walkable surfaces.

**Visibility rule**:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.

**Contiguous hidden-tile body**:
A connected group of Hidden floor tiles forming one visibility group. Navis on the same body
can see each other; outsiders cannot see them.

### Cooperative play

**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

### Avatar

**Navi** _(draft)_:
The player-controlled avatar. Cosmetics are customized by equipping **Spectrum Data** at a
**Spectral Gate** tile (requires `MskPlugn`).

### Portals & travel

**Portal**:
An in-world teleport node. To fast-travel, a Navi stands on a portal and selects acquired
**Link Data** from a menu (legacy flow; ReBNO targets a heavily improved UX for this).

**Home Portal**:
A player-chosen portal (any cleared zone/area portal) that is their login spawn and the only
destination fast-travelable from *anywhere*. Falling during exploration also returns the Navi
here — with a slim chance of landing in the **Digital Abyss** instead.

**Digital Abyss** (legacy room: **Abyssal Ruin**):
A fall-failure destination. Falls are counted (`global.dafalls`); the first few (≤5) are safe
respawns to the Home Portal, but beyond that threshold the Navi is routed to the Abyss. A
per-user server flag can exempt a player from it.

**Online Command Screen**:
A hub/menu screen used as the default spawn when a player has set no Home Portal.

**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi;
**Hexbridge** tiles bounce it back after spawning a (per-player) floor tile.

**Warp** (requires **WrpPlugn**):
Intra-zone teleportation via Warp tiles. Inert without the expansion.

**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap.

### Social

**Message Board**:
A persistent in-world posting surface (legacy `MB_News` / `MB_Log`). New boards are a
progression reward.

**Friend Data**:
The legacy in-universe friends list (collected as Data). _Flagged: see ambiguities._

## Flagged ambiguities

- **"Friends list"** — legacy **Friend Data** (an in-universe collectable) vs a *modern*
  account-level friends list proposed in `.planning/research/FEATURES.md` as a new
  differentiator. These may be the same concept or two distinct systems. **Unresolved.**

## Example dialogue

_(to be written once core terms are confirmed)_

-The teleport-enabling subclass of **Data** (Zone Link Data + Area Link Data) — the keys to the

+The teleport-enabling subclass of **Data** — the keys to the fast-travel network. Stored as one

+inventory category; **Zone Link vs Area Link is a flag**, not two systems. An Area Link is inert

+("dies") if you do not hold its parent Zone Link.


**Zone**:
A top-level region (e.g. BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull). In legacy
BNO each Zone is exactly **one GameMaker room**. All inter-zone travel is teleport-gated, but a
zone can be reached on foot (or via a found **Warp**) before you hold its Link Data — you simply
cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A sub-region *within* a Zone's single room, delimited by invisible **area transition markers**
(not a separate room).

**Zone**:
A top-level region. In legacy BNO each Zone is exactly **one GameMaker room** (~11 total:
BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull, Deserted Lobby, Prairie Flats,
Database, Traverse Core, Schweisstar, and the Digital Abyss / Abyssal Ruin). All inter-zone
travel is teleport-gated, but a zone can be reached on foot (or via a found **Warp**) before you
hold its Link Data — you simply cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A named sub-region *within* a Zone's single room (not a separate room), delimited by invisible
**area-name marker** objects (legacy `ac_*` change-area labels; ~120 across the world).


**Zone**:
A top-level region. In legacy BNO each Zone is exactly **one GameMaker room** (~11 total:
BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull, Deserted Lobby, Prairie Flats,
Database, Traverse Core, Schweisstar, and the Digital Abyss / Abyssal Ruin). All inter-zone
travel is teleport-gated, but a zone can be reached on foot (or via a found **Warp**) before you
hold its Link Data — you simply cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A named sub-region *within* a Zone's single room (not a separate room), delimited by invisible
**area-name marker** objects (legacy `ac_*` change-area labels; ~120 across the world).

# REBNO Domain Context

The shared language of *BN Online* (legacy game) and *ReBNO* (its rebuild). This glossary
is the source of truth for game-domain terms — what concepts ARE, and the canonical word for
each. It is NOT a spec and holds no implementation detail.

> Status: actively being refined via `/grill-with-docs`. Terms marked _(draft)_ are
> provisional pending confirmation.

## Language

### Game identity

**BN Online** (alias: **BNO**):
The legacy game — a persistent, multiplayer **social-exploration** world built in GameMaker
5.3a, skinned in the Mega Man Battle Network aesthetic. The core loop is exploration, not
combat: uncover hidden platforms/pathways/portals, beat timing-sensitive movement challenges,
and solve puzzles built from interwoven traversal mechanics. **No combat system.**
_Avoid_: "MMBN game", "battle game" (the IP is skin, not mechanics).

**ReBNO**:
The ground-up rebuild of BNO on a modern web stack. Primary goal: **full feature parity with
BNO plus QoL tweaks** afforded by web infrastructure. Not a reskin and not a new game — parity
first. New systems and an eventual IP-shed / battle system are explicitly far-future, out of
current scope.
_Avoid_: "the port" (it is a from-scratch rebuild, not a port).

**Progression** (the reward axis):
Advancement is exploration-driven and Metroidvania-shaped — rewards unlock the ability to reach
more of the world. Reward types: new **Zones**, new **Areas**, new **Message Boards**,
**Collectables**, and **Key Items**.

### World structure

**Zone**:
A top-level region (e.g. BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull). In legacy
BNO each Zone is exactly **one GameMaker room**. All inter-zone travel is teleport-gated, but a
zone can be reached on foot (or via a found **Warp**) before you hold its Link Data — you simply
cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A sub-region *within* a Zone's single room, delimited by invisible **area transition markers**
(not a separate room).

**Central Portal**:
The one portal in each Zone that is the **source of that zone's Zone Link Data**. You must
physically reach it before that zone joins your fast-travel network — until then you can only
travel there on foot, and the Summon/Join system refuses to teleport you there.

### Key Items & Collectables

**Key Item**:
A progression-gating reward. Primarily **Navi Expansions**. Metroidvania lock-and-key: a key
item unlocks an ability/feature that opens previously-unreachable progression.

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` keyids 1–6, of which **five are functional Plugns**:
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**TakABrak** (keyid 4):
An **easter-egg** key item ("Take-A-Break.exe"), not an ability-gating expansion. Lives in the
Key category but gates nothing.

**Mod Item** (Key-category IDs 900–909):
The legacy **admin / RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>` = Joker Shell, …),
each wired to admin sub-commands. This is the original "run clipboard as superuser" admin model
— an **anti-port** per CLAUDE.md Hard Rule 3, NOT a collectable reward. Joker Shell (the fastest
"joker" movement tier) is an admin item, not parity content.

**Collectable**:
A gatherable reward, surfaced in-universe as **Data** drops. Known taxonomy:
- **Zone Link Data** (alias: Zone Data) — unlocks fast-travel to a Zone; sourced from that
  zone's **Central Portal**.
- **Area Link Data** (alias: Area Data) — unlocks fast-travel to an Area; usable only if you
  also hold the parent Zone's Zone Link Data.
- **Spectrum Data** — unlocks an avatar cosmetic option (requires `MskPlugn` to apply).
- **Friend Data** — an in-universe friends-list entry.

**Link Data**:
The teleport-enabling subclass of **Data** — the keys to the fast-travel network. Stored as one
inventory category; **Zone Link vs Area Link is a flag**, not two systems. An Area Link is inert
("dies") if you do not hold its parent Zone Link.

**Data**:
The in-universe noun for collectable drops (link/spectrum/friend data). The avatar, NPC, and
"data"-drop sprites are the only non-original art (MMBN-derived); the rest of BNO's art is
original.

### State sharing & visibility

**Deterministic-Synced state**:
World state driven by shared server time so every client renders it identically: moving
**Platform** positions, animation loops, **Flicker** tile present/gone cycles, **Glow** tile
activation. Not per-player. (Movers and slippery ice have no unique state — just a looping
animation.)

**Per-Player state**:
Anything tied to a player's unlocks, abilities, or inventory: **Hexbridge** activation,
**Hidden** tile reveals, and all **Key Item** / **Collectable**-gated access (warp/zone/area/
spectrum). Two players in the same room can stand on different walkable surfaces.

**Visibility rule**:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.

**Contiguous hidden-tile body**:
A connected group of Hidden floor tiles forming one visibility group. Navis on the same body
can see each other; outsiders cannot see them.

### Cooperative play

**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

### Avatar

**Navi** _(draft)_:
The player-controlled avatar. Cosmetics are customized by equipping **Spectrum Data** at a
**Spectral Gate** tile (requires `MskPlugn`).

### Portals & travel

**Portal**:
An in-world teleport node. To fast-travel, a Navi stands on a portal and selects acquired
**Link Data** from a menu (legacy flow; ReBNO targets a heavily improved UX for this).

**Home Portal**:
A player-chosen portal (any cleared zone/area portal) that is their login spawn and the only
destination fast-travelable from *anywhere*. Falling during exploration also returns the Navi
here — with a slim chance of landing in the **Digital Abyss** instead.

**Digital Abyss** (legacy room: **Abyssal Ruin**):
A fall-failure destination. Falls are counted (`global.dafalls`); the first few (≤5) are safe
respawns to the Home Portal, but beyond that threshold the Navi is routed to the Abyss. A
per-user server flag can exempt a player from it.

**Online Command Screen**:
A hub/menu screen used as the default spawn when a player has set no Home Portal.

**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi;
**Hexbridge** tiles bounce it back after spawning a (per-player) floor tile.

**Warp** (requires **WrpPlugn**):
Intra-zone teleportation via Warp tiles. Inert without the expansion.

**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap.

### Social

**Message Board**:
A persistent in-world posting surface (legacy `MB_News` / `MB_Log`). New boards are a
progression reward.

**Friend Data**:
The legacy in-universe friends list (collected as Data). _Flagged: see ambiguities._

## Flagged ambiguities

- **"Friends list"** — legacy **Friend Data** (an in-universe collectable) vs a *modern*
  account-level friends list proposed in `.planning/research/FEATURES.md` as a new
  differentiator. These may be the same concept or two distinct systems. **Unresolved.**

## Example dialogue

_(to be written once core terms are confirmed)_

-A top-level region (e.g. BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull). In legacy

-BNO each Zone is exactly **one GameMaker room**. All inter-zone travel is teleport-gated, but a

-zone can be reached on foot (or via a found **Warp**) before you hold its Link Data — you simply

+A top-level region. In legacy BNO each Zone is exactly **one GameMaker room** (~11 total:

+BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull, Deserted Lobby, Prairie Flats,

+Database, Traverse Core, Schweisstar, and the Digital Abyss / Abyssal Ruin). All inter-zone

+travel is teleport-gated, but a zone can be reached on foot (or via a found **Warp**) before you

+hold its Link Data — you simply cannot fast-travel to it yet.

-A sub-region *within* a Zone's single room, delimited by invisible **area transition markers**

+A named sub-region *within* a Zone's single room (not a separate room), delimited by invisible

+**area-name marker** objects (legacy `ac_*` change-area labels; ~120 across the world).


**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

**Watch** (the **Watcher** system):
A social/observation mechanic to watch (spectate/follow) another Navi. _Mechanics TBD — newly
surfaced; needs grilling._

**Request system**:
The unified legacy mechanism (`rq_*`, 11 request types) behind player-to-player interactions —
**Summon/Join**, **Duo** (spot/dig), and **Watch** are all requests. Establishes that
cooperative play is consent-based (a request the other player accepts).


**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

**Watch** (the **Watcher** system):
A social/observation mechanic to watch (spectate/follow) another Navi. _Mechanics TBD — newly
surfaced; needs grilling._

**Request system**:
The unified legacy mechanism (`rq_*`, 11 request types) behind player-to-player interactions —
**Summon/Join**, **Duo** (spot/dig), and **Watch** are all requests. Establishes that
cooperative play is consent-based (a request the other player accepts).

# REBNO Domain Context

The shared language of *BN Online* (legacy game) and *ReBNO* (its rebuild). This glossary
is the source of truth for game-domain terms — what concepts ARE, and the canonical word for
each. It is NOT a spec and holds no implementation detail.

> Status: actively being refined via `/grill-with-docs`. Terms marked _(draft)_ are
> provisional pending confirmation.

## Language

### Game identity

**BN Online** (alias: **BNO**):
The legacy game — a persistent, multiplayer **social-exploration** world built in GameMaker
5.3a, skinned in the Mega Man Battle Network aesthetic. The core loop is exploration, not
combat: uncover hidden platforms/pathways/portals, beat timing-sensitive movement challenges,
and solve puzzles built from interwoven traversal mechanics. **No combat system.**
_Avoid_: "MMBN game", "battle game" (the IP is skin, not mechanics).

**ReBNO**:
The ground-up rebuild of BNO on a modern web stack. Primary goal: **full feature parity with
BNO plus QoL tweaks** afforded by web infrastructure. Not a reskin and not a new game — parity
first. New systems and an eventual IP-shed / battle system are explicitly far-future, out of
current scope.
_Avoid_: "the port" (it is a from-scratch rebuild, not a port).

**Progression** (the reward axis):
Advancement is exploration-driven and Metroidvania-shaped — rewards unlock the ability to reach
more of the world. Reward types: new **Zones**, new **Areas**, new **Message Boards**,
**Collectables**, and **Key Items**.

### World structure

**Zone**:
A top-level region. In legacy BNO each Zone is exactly **one GameMaker room** (~11 total:
BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull, Deserted Lobby, Prairie Flats,
Database, Traverse Core, Schweisstar, and the Digital Abyss / Abyssal Ruin). All inter-zone
travel is teleport-gated, but a zone can be reached on foot (or via a found **Warp**) before you
hold its Link Data — you simply cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A named sub-region *within* a Zone's single room (not a separate room), delimited by invisible
**area-name marker** objects (legacy `ac_*` change-area labels; ~120 across the world).

**Central Portal**:
The one portal in each Zone that is the **source of that zone's Zone Link Data**. You must
physically reach it before that zone joins your fast-travel network — until then you can only
travel there on foot, and the Summon/Join system refuses to teleport you there.

### Key Items & Collectables

**Key Item**:
A progression-gating reward. Primarily **Navi Expansions**. Metroidvania lock-and-key: a key
item unlocks an ability/feature that opens previously-unreachable progression.

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` keyids 1–6, of which **five are functional Plugns**:
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**TakABrak** (keyid 4):
An **easter-egg** key item ("Take-A-Break.exe"), not an ability-gating expansion. Lives in the
Key category but gates nothing.

**Mod Item** (Key-category IDs 900–909):
The legacy **admin / RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>` = Joker Shell, …),
each wired to admin sub-commands. This is the original "run clipboard as superuser" admin model
— an **anti-port** per CLAUDE.md Hard Rule 3, NOT a collectable reward. Joker Shell (the fastest
"joker" movement tier) is an admin item, not parity content.

**Collectable**:
A gatherable reward, surfaced in-universe as **Data** drops. Known taxonomy:
- **Zone Link Data** (alias: Zone Data) — unlocks fast-travel to a Zone; sourced from that
  zone's **Central Portal**.
- **Area Link Data** (alias: Area Data) — unlocks fast-travel to an Area; usable only if you
  also hold the parent Zone's Zone Link Data.
- **Spectrum Data** — unlocks an avatar cosmetic option (requires `MskPlugn` to apply).
- **Friend Data** — an in-universe friends-list entry.

**Link Data**:
The teleport-enabling subclass of **Data** — the keys to the fast-travel network. Stored as one
inventory category; **Zone Link vs Area Link is a flag**, not two systems. An Area Link is inert
("dies") if you do not hold its parent Zone Link.

**Data**:
The in-universe noun for collectable drops (link/spectrum/friend data). The avatar, NPC, and
"data"-drop sprites are the only non-original art (MMBN-derived); the rest of BNO's art is
original.

### State sharing & visibility

**Deterministic-Synced state**:
World state driven by shared server time so every client renders it identically: moving
**Platform** positions, animation loops, **Flicker** tile present/gone cycles, **Glow** tile
activation. Not per-player. (Movers and slippery ice have no unique state — just a looping
animation.)

**Per-Player state**:
Anything tied to a player's unlocks, abilities, or inventory: **Hexbridge** activation,
**Hidden** tile reveals, and all **Key Item** / **Collectable**-gated access (warp/zone/area/
spectrum). Two players in the same room can stand on different walkable surfaces.

**Visibility rule**:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.

**Contiguous hidden-tile body**:
A connected group of Hidden floor tiles forming one visibility group. Navis on the same body
can see each other; outsiders cannot see them.

### Cooperative play

**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

### Avatar

**Navi** _(draft)_:
The player-controlled avatar. Cosmetics are customized by equipping **Spectrum Data** at a
**Spectral Gate** tile (requires `MskPlugn`).

### Portals & travel

**Portal**:
An in-world teleport node. To fast-travel, a Navi stands on a portal and selects acquired
**Link Data** from a menu (legacy flow; ReBNO targets a heavily improved UX for this).

**Home Portal**:
A player-chosen portal (any cleared zone/area portal) that is their login spawn and the only
destination fast-travelable from *anywhere*. Falling during exploration also returns the Navi
here — with a slim chance of landing in the **Digital Abyss** instead.

**Digital Abyss** (legacy room: **Abyssal Ruin**):
A fall-failure destination. Falls are counted (`global.dafalls`); the first few (≤5) are safe
respawns to the Home Portal, but beyond that threshold the Navi is routed to the Abyss. A
per-user server flag can exempt a player from it.

**Online Command Screen**:
A hub/menu screen used as the default spawn when a player has set no Home Portal.

**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi;
**Hexbridge** tiles bounce it back after spawning a (per-player) floor tile.

**Warp** (requires **WrpPlugn**):
Intra-zone teleportation via Warp tiles. Inert without the expansion.

**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap.

### Social

**Message Board**:
A persistent in-world posting surface (legacy `MB_News` / `MB_Log`). New boards are a
progression reward.

**Friend Data**:
The legacy in-universe friends list (collected as Data). _Flagged: see ambiguities._

## Flagged ambiguities

- **"Friends list"** — legacy **Friend Data** (an in-universe collectable) vs a *modern*
  account-level friends list proposed in `.planning/research/FEATURES.md` as a new
  differentiator. These may be the same concept or two distinct systems. **Unresolved.**

## Example dialogue

_(to be written once core terms are confirmed)_

+A social/observation mechanic to watch (spectate/follow) another Navi. _Mechanics TBD — newly

+The unified legacy mechanism (`rq_*`, 11 request types) behind player-to-player interactions —

+**Summon/Join**, **Duo** (spot/dig), and **Watch** are all requests. Establishes that

+cooperative play is consent-based (a request the other player accepts).


Glossary now covers the corrected expansion set, Mod-Item anti-port, zone roster, Watch + the consent-based request system. Behavioral-linkage recon (agent 3) still running.

Holding for your **Q4** read — the three open items unchanged:
1. QoL-vs-new-system dividing principle — right test, or different?
2. Friend Data — modernize in place, or faithful + separate modern layer?
3. Server-authoritative inventory as a mandated divergence (in-scope now)?

(New since I asked: a **Watch/Watcher** system exists — I'll grill that later; noted in `CONTEXT.md` as TBD.)


<task-notification>
<task-id>a3d4085cd5c17699d</task-id>
<tool-use-id>toolu_01NCQbgopKw8ziZY94dQNfm7</tool-use-id>
<output-file>C:\Users\decid\AppData\Local\Temp\claude\C--Users-decid-Documents-projects-rebno\27ced91a-de41-488a-b2a2-10f1c09be4bb\tasks\a3d4085cd5c17699d.output</output-file>
<status>completed</status>
<summary>Agent "Recon: behavioral linkage" completed</summary>
<result>Report written to `C:\Users\decid\Documents\projects\rebno\.planning\legacy-recon\03-behavioral-linkage.md`.

## Summary of key/surprising mechanics

1. **The Master is a thin relay, not an authority.** `server-5-4/scripts/0359-server_receive.gml` is a 26-case switch that stores `global.p_*` arrays and rebroadcasts. Every gameplay *rule* (teleport gate, fall roll, hexsling redirect, summon check, duo formation) is computed **client-side** — the polar opposite of REBNO's server-authoritative target, and the #1 parity/anti-cheat divergence.

2. **One GameMaker room per zone; "Areas" are invisible collision markers.** ~200 `ac_*` objects (`visible:false, solid:false`, masked) each call `change_area("Name")` on touch, updating `global.area` (`scripts/0117-change_area.gml`). Zone numbers set per-room (`global.zone`), with **zone 3 = Emptiness' Hull = free-teleport** and **zone 4 = Digital Abyss = no-teleport** as load-bearing magic numbers.

3. **Teleport gate is composed, not a single flag** (`scripts/0308-iv_setactions.gml:109-110`): need dest+current zone link data, OR be on a portal (`server.gportal`), OR the RmtPlugn item `'2'` for "from-anywhere", AND not in zone 4, AND not in a duo. Home is the unconditional **login spawn** (`commandob/Create.gml:25-39`, `jid=100`).

4. **Fall → Abyss probability (exact):** `Step.gml:165-205` — `rand=random(99)`; Abyss only if `ceil(rand)<=9` **AND** `dafalls>5`. So ~10% per fall, but **immune for your first 5 falls** (counter resets on each Abyss hit). Destination: room `Digital_Abyss`, area `"Abyssal Ruin"`. The server persists a sticky `dabypass` bit so you respawn in the Abyss on next login until you climb out.

5. **Hexbridges are permanent per-account positional floor.** Bridge ID = `x+room_name+y`; the dead-end bounce (`hxbtsideb/Collision-0.gml`) reverses orb direction AND records the bridge into `global.hxbridge[]`, synced to server `case 21` and replayed at login.

6. **Duo bypass for summon/join** is literally `target == global.duopid` in the zone-link `if` (`rq_summon.gml:1`, `rq_join.gml:1`); duo partners auto-accept in `rq_new.gml`.

7. **Two claimed mechanics not found in this build (flagged):** the hidden-tile "invisible unless on same contiguous body" rule has **no flood-fill / peer-visibility-cull code** in client-5-8 (hidden tiles are just cloaked floor + an `alphaon` self-reveal toggle); and the hexsling "prefers the direction you weren't traveling" maps only to the **hexbridge reversal**, not a hexsling default. Both warrant checking the older `legacy/source-archive/` revisions before rebuild design.</result>
<usage><subagent_tokens>142148</subagent_tokens><tool_uses>104</tool_uses><duration_ms>458988</duration_ms></usage>
</task-notification>


<owl_reachability_notice>
You have an active owl perch. When spawning subagents or doing work, use run_in_background: true so you stay reachable for incoming messages.
</owl_reachability_notice>


CAVEMAN MODE ACTIVE (full). Drop articles/filler/pleasantries/hedging. Fragments OK. Code/commits/security: write normal.


Recon-3 (behavioral linkage) landed — the biggest finding yet, plus it **contradicts two things you told me**. Surfacing both.

**Headline:** the legacy Master is a **thin relay, not an authority** — `server_receive.gml` is a 26-case switch that stores `p_*` arrays and rebroadcasts; *every* gameplay rule (teleport gate, fall roll, hexsling, summon check, duo) runs **client-side**. So the earlier inventory-trust finding generalizes: legacy is **fully client-authoritative**. ReBNO's server-authoritative model is a ground-up re-architecture of the entire rule layer — the #1 divergence.

Other hard facts folded into glossary: fall→Abyss is exactly **~10% per fall but only after your first 5 falls** (immune ≤5; `Digital_Abyss` is zone 4 = no-teleport, climb out on foot); **hexbridges are permanent per-account floor** (id = x+room+y, replayed at login); **zone magic numbers** (zone 3 Emptiness' Hull = free-teleport, zone 4 Abyss = no-teleport); duo bypass = `target == duo partner`.

Updating glossary + flagging the contradictions:


**Visibility rule**:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.

**Visibility rule** _(stated intent — not found in legacy 5-8 build)_:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.
_Recon found NO contiguous-body visibility-cull code in `client-5-8` (hidden tiles are just
cloaked floor + a self-reveal `alphaon` toggle). See Flagged ambiguities._


**Visibility rule** _(stated intent — not found in legacy 5-8 build)_:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.
_Recon found NO contiguous-body visibility-cull code in `client-5-8` (hidden tiles are just
cloaked floor + a self-reveal `alphaon` toggle). See Flagged ambiguities._

# REBNO Domain Context

The shared language of *BN Online* (legacy game) and *ReBNO* (its rebuild). This glossary
is the source of truth for game-domain terms — what concepts ARE, and the canonical word for
each. It is NOT a spec and holds no implementation detail.

> Status: actively being refined via `/grill-with-docs`. Terms marked _(draft)_ are
> provisional pending confirmation.

## Language

### Game identity

**BN Online** (alias: **BNO**):
The legacy game — a persistent, multiplayer **social-exploration** world built in GameMaker
5.3a, skinned in the Mega Man Battle Network aesthetic. The core loop is exploration, not
combat: uncover hidden platforms/pathways/portals, beat timing-sensitive movement challenges,
and solve puzzles built from interwoven traversal mechanics. **No combat system.**
_Avoid_: "MMBN game", "battle game" (the IP is skin, not mechanics).

**ReBNO**:
The ground-up rebuild of BNO on a modern web stack. Primary goal: **full feature parity with
BNO plus QoL tweaks** afforded by web infrastructure. Not a reskin and not a new game — parity
first. New systems and an eventual IP-shed / battle system are explicitly far-future, out of
current scope.
_Avoid_: "the port" (it is a from-scratch rebuild, not a port).

**Progression** (the reward axis):
Advancement is exploration-driven and Metroidvania-shaped — rewards unlock the ability to reach
more of the world. Reward types: new **Zones**, new **Areas**, new **Message Boards**,
**Collectables**, and **Key Items**.

### World structure

**Zone**:
A top-level region. In legacy BNO each Zone is exactly **one GameMaker room** (~11 total:
BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull, Deserted Lobby, Prairie Flats,
Database, Traverse Core, Schweisstar, and the Digital Abyss / Abyssal Ruin). All inter-zone
travel is teleport-gated, but a zone can be reached on foot (or via a found **Warp**) before you
hold its Link Data — you simply cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A named sub-region *within* a Zone's single room (not a separate room), delimited by invisible
**area-name marker** objects (legacy `ac_*` change-area labels; ~120 across the world).

**Central Portal**:
The one portal in each Zone that is the **source of that zone's Zone Link Data**. You must
physically reach it before that zone joins your fast-travel network — until then you can only
travel there on foot, and the Summon/Join system refuses to teleport you there.

### Key Items & Collectables

**Key Item**:
A progression-gating reward. Primarily **Navi Expansions**. Metroidvania lock-and-key: a key
item unlocks an ability/feature that opens previously-unreachable progression.

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` keyids 1–6, of which **five are functional Plugns**:
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**TakABrak** (keyid 4):
An **easter-egg** key item ("Take-A-Break.exe"), not an ability-gating expansion. Lives in the
Key category but gates nothing.

**Mod Item** (Key-category IDs 900–909):
The legacy **admin / RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>` = Joker Shell, …),
each wired to admin sub-commands. This is the original "run clipboard as superuser" admin model
— an **anti-port** per CLAUDE.md Hard Rule 3, NOT a collectable reward. Joker Shell (the fastest
"joker" movement tier) is an admin item, not parity content.

**Collectable**:
A gatherable reward, surfaced in-universe as **Data** drops. Known taxonomy:
- **Zone Link Data** (alias: Zone Data) — unlocks fast-travel to a Zone; sourced from that
  zone's **Central Portal**.
- **Area Link Data** (alias: Area Data) — unlocks fast-travel to an Area; usable only if you
  also hold the parent Zone's Zone Link Data.
- **Spectrum Data** — unlocks an avatar cosmetic option (requires `MskPlugn` to apply).
- **Friend Data** — an in-universe friends-list entry.

**Link Data**:
The teleport-enabling subclass of **Data** — the keys to the fast-travel network. Stored as one
inventory category; **Zone Link vs Area Link is a flag**, not two systems. An Area Link is inert
("dies") if you do not hold its parent Zone Link.

**Data**:
The in-universe noun for collectable drops (link/spectrum/friend data). The avatar, NPC, and
"data"-drop sprites are the only non-original art (MMBN-derived); the rest of BNO's art is
original.

### State sharing & visibility

**Deterministic-Synced state**:
World state driven by shared server time so every client renders it identically: moving
**Platform** positions, animation loops, **Flicker** tile present/gone cycles, **Glow** tile
activation. Not per-player. (Movers and slippery ice have no unique state — just a looping
animation.)

**Per-Player state**:
Anything tied to a player's unlocks, abilities, or inventory: **Hexbridge** activation,
**Hidden** tile reveals, and all **Key Item** / **Collectable**-gated access (warp/zone/area/
spectrum). Two players in the same room can stand on different walkable surfaces.

**Visibility rule**:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.

**Contiguous hidden-tile body**:
A connected group of Hidden floor tiles forming one visibility group. Navis on the same body
can see each other; outsiders cannot see them.

### Cooperative play

**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

**Watch** (the **Watcher** system):
A social/observation mechanic to watch (spectate/follow) another Navi. _Mechanics TBD — newly
surfaced; needs grilling._

**Request system**:
The unified legacy mechanism (`rq_*`, 11 request types) behind player-to-player interactions —
**Summon/Join**, **Duo** (spot/dig), and **Watch** are all requests. Establishes that
cooperative play is consent-based (a request the other player accepts).

### Avatar

**Navi** _(draft)_:
The player-controlled avatar. Cosmetics are customized by equipping **Spectrum Data** at a
**Spectral Gate** tile (requires `MskPlugn`).

### Portals & travel

**Portal**:
An in-world teleport node. To fast-travel, a Navi stands on a portal and selects acquired
**Link Data** from a menu (legacy flow; ReBNO targets a heavily improved UX for this).

**Home Portal**:
A player-chosen portal (any cleared zone/area portal) that is their login spawn and the only
destination fast-travelable from *anywhere*. Falling during exploration also returns the Navi
here — with a slim chance of landing in the **Digital Abyss** instead.

**Digital Abyss** (legacy room: **Abyssal Ruin**):
A fall-failure destination. Falls are counted (`global.dafalls`); the first few (≤5) are safe
respawns to the Home Portal, but beyond that threshold the Navi is routed to the Abyss. A
per-user server flag can exempt a player from it.

**Online Command Screen**:
A hub/menu screen used as the default spawn when a player has set no Home Portal.

**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi;
**Hexbridge** tiles bounce it back after spawning a (per-player) floor tile.

**Warp** (requires **WrpPlugn**):
Intra-zone teleportation via Warp tiles. Inert without the expansion.

**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap.

### Social

**Message Board**:
A persistent in-world posting surface (legacy `MB_News` / `MB_Log`). New boards are a
progression reward.

**Friend Data**:
The legacy in-universe friends list (collected as Data). _Flagged: see ambiguities._

## Flagged ambiguities

- **"Friends list"** — legacy **Friend Data** (an in-universe collectable) vs a *modern*
  account-level friends list proposed in `.planning/research/FEATURES.md` as a new
  differentiator. These may be the same concept or two distinct systems. **Unresolved.**

## Example dialogue

_(to be written once core terms are confirmed)_

+**Visibility rule** _(stated intent — not found in legacy 5-8 build)_:

+_Recon found NO contiguous-body visibility-cull code in `client-5-8` (hidden tiles are just

+cloaked floor + a self-reveal `alphaon` toggle). See Flagged ambiguities._


**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi;
**Hexbridge** tiles bounce it back after spawning a (per-player) floor tile.

**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi.
**Hexbridge** tiles bounce it back after spawning a floor tile that is recorded **permanently
per-account** (bridge id = `x + room + y`), synced to the server and replayed at every login —
so cleared hexbridges persist forever, per player. (Note: the "hexsling prefers the direction
you were *not* travelling" behavior is **stated intent not found in the 5-8 build** — recon
located that reversal only on the hexbridge bounce. See Flagged ambiguities.)


**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi.
**Hexbridge** tiles bounce it back after spawning a floor tile that is recorded **permanently
per-account** (bridge id = `x + room + y`), synced to the server and replayed at every login —
so cleared hexbridges persist forever, per player. (Note: the "hexsling prefers the direction
you were *not* travelling" behavior is **stated intent not found in the 5-8 build** — recon
located that reversal only on the hexbridge bounce. See Flagged ambiguities.)

# REBNO Domain Context

The shared language of *BN Online* (legacy game) and *ReBNO* (its rebuild). This glossary
is the source of truth for game-domain terms — what concepts ARE, and the canonical word for
each. It is NOT a spec and holds no implementation detail.

> Status: actively being refined via `/grill-with-docs`. Terms marked _(draft)_ are
> provisional pending confirmation.

## Language

### Game identity

**BN Online** (alias: **BNO**):
The legacy game — a persistent, multiplayer **social-exploration** world built in GameMaker
5.3a, skinned in the Mega Man Battle Network aesthetic. The core loop is exploration, not
combat: uncover hidden platforms/pathways/portals, beat timing-sensitive movement challenges,
and solve puzzles built from interwoven traversal mechanics. **No combat system.**
_Avoid_: "MMBN game", "battle game" (the IP is skin, not mechanics).

**ReBNO**:
The ground-up rebuild of BNO on a modern web stack. Primary goal: **full feature parity with
BNO plus QoL tweaks** afforded by web infrastructure. Not a reskin and not a new game — parity
first. New systems and an eventual IP-shed / battle system are explicitly far-future, out of
current scope.
_Avoid_: "the port" (it is a from-scratch rebuild, not a port).

**Progression** (the reward axis):
Advancement is exploration-driven and Metroidvania-shaped — rewards unlock the ability to reach
more of the world. Reward types: new **Zones**, new **Areas**, new **Message Boards**,
**Collectables**, and **Key Items**.

### World structure

**Zone**:
A top-level region. In legacy BNO each Zone is exactly **one GameMaker room** (~11 total:
BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull, Deserted Lobby, Prairie Flats,
Database, Traverse Core, Schweisstar, and the Digital Abyss / Abyssal Ruin). All inter-zone
travel is teleport-gated, but a zone can be reached on foot (or via a found **Warp**) before you
hold its Link Data — you simply cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A named sub-region *within* a Zone's single room (not a separate room), delimited by invisible
**area-name marker** objects (legacy `ac_*` change-area labels; ~120 across the world).

**Central Portal**:
The one portal in each Zone that is the **source of that zone's Zone Link Data**. You must
physically reach it before that zone joins your fast-travel network — until then you can only
travel there on foot, and the Summon/Join system refuses to teleport you there.

### Key Items & Collectables

**Key Item**:
A progression-gating reward. Primarily **Navi Expansions**. Metroidvania lock-and-key: a key
item unlocks an ability/feature that opens previously-unreachable progression.

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` keyids 1–6, of which **five are functional Plugns**:
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**TakABrak** (keyid 4):
An **easter-egg** key item ("Take-A-Break.exe"), not an ability-gating expansion. Lives in the
Key category but gates nothing.

**Mod Item** (Key-category IDs 900–909):
The legacy **admin / RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>` = Joker Shell, …),
each wired to admin sub-commands. This is the original "run clipboard as superuser" admin model
— an **anti-port** per CLAUDE.md Hard Rule 3, NOT a collectable reward. Joker Shell (the fastest
"joker" movement tier) is an admin item, not parity content.

**Collectable**:
A gatherable reward, surfaced in-universe as **Data** drops. Known taxonomy:
- **Zone Link Data** (alias: Zone Data) — unlocks fast-travel to a Zone; sourced from that
  zone's **Central Portal**.
- **Area Link Data** (alias: Area Data) — unlocks fast-travel to an Area; usable only if you
  also hold the parent Zone's Zone Link Data.
- **Spectrum Data** — unlocks an avatar cosmetic option (requires `MskPlugn` to apply).
- **Friend Data** — an in-universe friends-list entry.

**Link Data**:
The teleport-enabling subclass of **Data** — the keys to the fast-travel network. Stored as one
inventory category; **Zone Link vs Area Link is a flag**, not two systems. An Area Link is inert
("dies") if you do not hold its parent Zone Link.

**Data**:
The in-universe noun for collectable drops (link/spectrum/friend data). The avatar, NPC, and
"data"-drop sprites are the only non-original art (MMBN-derived); the rest of BNO's art is
original.

### State sharing & visibility

**Deterministic-Synced state**:
World state driven by shared server time so every client renders it identically: moving
**Platform** positions, animation loops, **Flicker** tile present/gone cycles, **Glow** tile
activation. Not per-player. (Movers and slippery ice have no unique state — just a looping
animation.)

**Per-Player state**:
Anything tied to a player's unlocks, abilities, or inventory: **Hexbridge** activation,
**Hidden** tile reveals, and all **Key Item** / **Collectable**-gated access (warp/zone/area/
spectrum). Two players in the same room can stand on different walkable surfaces.

**Visibility rule** _(stated intent — not found in legacy 5-8 build)_:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.
_Recon found NO contiguous-body visibility-cull code in `client-5-8` (hidden tiles are just
cloaked floor + a self-reveal `alphaon` toggle). See Flagged ambiguities._

**Contiguous hidden-tile body**:
A connected group of Hidden floor tiles forming one visibility group. Navis on the same body
can see each other; outsiders cannot see them.

### Cooperative play

**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

**Watch** (the **Watcher** system):
A social/observation mechanic to watch (spectate/follow) another Navi. _Mechanics TBD — newly
surfaced; needs grilling._

**Request system**:
The unified legacy mechanism (`rq_*`, 11 request types) behind player-to-player interactions —
**Summon/Join**, **Duo** (spot/dig), and **Watch** are all requests. Establishes that
cooperative play is consent-based (a request the other player accepts).

### Avatar

**Navi** _(draft)_:
The player-controlled avatar. Cosmetics are customized by equipping **Spectrum Data** at a
**Spectral Gate** tile (requires `MskPlugn`).

### Portals & travel

**Portal**:
An in-world teleport node. To fast-travel, a Navi stands on a portal and selects acquired
**Link Data** from a menu (legacy flow; ReBNO targets a heavily improved UX for this).

**Home Portal**:
A player-chosen portal (any cleared zone/area portal) that is their login spawn and the only
destination fast-travelable from *anywhere*. Falling during exploration also returns the Navi
here — with a slim chance of landing in the **Digital Abyss** instead.

**Digital Abyss** (legacy room: **Abyssal Ruin**):
A fall-failure destination. Falls are counted (`global.dafalls`); the first few (≤5) are safe
respawns to the Home Portal, but beyond that threshold the Navi is routed to the Abyss. A
per-user server flag can exempt a player from it.

**Online Command Screen**:
A hub/menu screen used as the default spawn when a player has set no Home Portal.

**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi;
**Hexbridge** tiles bounce it back after spawning a (per-player) floor tile.

**Warp** (requires **WrpPlugn**):
Intra-zone teleportation via Warp tiles. Inert without the expansion.

**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap.

### Social

**Message Board**:
A persistent in-world posting surface (legacy `MB_News` / `MB_Log`). New boards are a
progression reward.

**Friend Data**:
The legacy in-universe friends list (collected as Data). _Flagged: see ambiguities._

## Flagged ambiguities

- **"Friends list"** — legacy **Friend Data** (an in-universe collectable) vs a *modern*
  account-level friends list proposed in `.planning/research/FEATURES.md` as a new
  differentiator. These may be the same concept or two distinct systems. **Unresolved.**

## Example dialogue

_(to be written once core terms are confirmed)_

-empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi;

-**Hexbridge** tiles bounce it back after spawning a (per-player) floor tile.

+empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi.

+**Hexbridge** tiles bounce it back after spawning a floor tile that is recorded **permanently

+per-account** (bridge id = `x + room + y`), synced to the server and replayed at every login —

+so cleared hexbridges persist forever, per player. (Note: the "hexsling prefers the direction

+you were *not* travelling" behavior is **stated intent not found in the 5-8 build** — recon

+located that reversal only on the hexbridge bounce. See Flagged ambiguities.)


**Digital Abyss** (legacy room: **Abyssal Ruin**):
A fall-failure destination. Falls are counted (`global.dafalls`); the first few (≤5) are safe
respawns to the Home Portal, but beyond that threshold the Navi is routed to the Abyss. A
per-user server flag can exempt a player from it.

**Digital Abyss** (legacy room: **Abyssal Ruin**, zone 4):
A fall-failure destination, and itself a **no-teleport zone** (you climb out on foot). Exact
legacy rule: each fall rolls ~10% (`random(99)`, abyss if `≤9`) **but only once `dafalls > 5`**
— your first 5 falls are immune; the counter resets each time you land in the Abyss. A persisted
per-user `dabypass` flag interacts with this (its exact meaning is **disputed between recon
passes** — see Flagged ambiguities).


**Digital Abyss** (legacy room: **Abyssal Ruin**, zone 4):
A fall-failure destination, and itself a **no-teleport zone** (you climb out on foot). Exact
legacy rule: each fall rolls ~10% (`random(99)`, abyss if `≤9`) **but only once `dafalls > 5`**
— your first 5 falls are immune; the counter resets each time you land in the Abyss. A persisted
per-user `dabypass` flag interacts with this (its exact meaning is **disputed between recon
passes** — see Flagged ambiguities).

# REBNO Domain Context

The shared language of *BN Online* (legacy game) and *ReBNO* (its rebuild). This glossary
is the source of truth for game-domain terms — what concepts ARE, and the canonical word for
each. It is NOT a spec and holds no implementation detail.

> Status: actively being refined via `/grill-with-docs`. Terms marked _(draft)_ are
> provisional pending confirmation.

## Language

### Game identity

**BN Online** (alias: **BNO**):
The legacy game — a persistent, multiplayer **social-exploration** world built in GameMaker
5.3a, skinned in the Mega Man Battle Network aesthetic. The core loop is exploration, not
combat: uncover hidden platforms/pathways/portals, beat timing-sensitive movement challenges,
and solve puzzles built from interwoven traversal mechanics. **No combat system.**
_Avoid_: "MMBN game", "battle game" (the IP is skin, not mechanics).

**ReBNO**:
The ground-up rebuild of BNO on a modern web stack. Primary goal: **full feature parity with
BNO plus QoL tweaks** afforded by web infrastructure. Not a reskin and not a new game — parity
first. New systems and an eventual IP-shed / battle system are explicitly far-future, out of
current scope.
_Avoid_: "the port" (it is a from-scratch rebuild, not a port).

**Progression** (the reward axis):
Advancement is exploration-driven and Metroidvania-shaped — rewards unlock the ability to reach
more of the world. Reward types: new **Zones**, new **Areas**, new **Message Boards**,
**Collectables**, and **Key Items**.

### World structure

**Zone**:
A top-level region. In legacy BNO each Zone is exactly **one GameMaker room** (~11 total:
BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull, Deserted Lobby, Prairie Flats,
Database, Traverse Core, Schweisstar, and the Digital Abyss / Abyssal Ruin). All inter-zone
travel is teleport-gated, but a zone can be reached on foot (or via a found **Warp**) before you
hold its Link Data — you simply cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A named sub-region *within* a Zone's single room (not a separate room), delimited by invisible
**area-name marker** objects (legacy `ac_*` change-area labels; ~120 across the world).

**Central Portal**:
The one portal in each Zone that is the **source of that zone's Zone Link Data**. You must
physically reach it before that zone joins your fast-travel network — until then you can only
travel there on foot, and the Summon/Join system refuses to teleport you there.

### Key Items & Collectables

**Key Item**:
A progression-gating reward. Primarily **Navi Expansions**. Metroidvania lock-and-key: a key
item unlocks an ability/feature that opens previously-unreachable progression.

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` keyids 1–6, of which **five are functional Plugns**:
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**TakABrak** (keyid 4):
An **easter-egg** key item ("Take-A-Break.exe"), not an ability-gating expansion. Lives in the
Key category but gates nothing.

**Mod Item** (Key-category IDs 900–909):
The legacy **admin / RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>` = Joker Shell, …),
each wired to admin sub-commands. This is the original "run clipboard as superuser" admin model
— an **anti-port** per CLAUDE.md Hard Rule 3, NOT a collectable reward. Joker Shell (the fastest
"joker" movement tier) is an admin item, not parity content.

**Collectable**:
A gatherable reward, surfaced in-universe as **Data** drops. Known taxonomy:
- **Zone Link Data** (alias: Zone Data) — unlocks fast-travel to a Zone; sourced from that
  zone's **Central Portal**.
- **Area Link Data** (alias: Area Data) — unlocks fast-travel to an Area; usable only if you
  also hold the parent Zone's Zone Link Data.
- **Spectrum Data** — unlocks an avatar cosmetic option (requires `MskPlugn` to apply).
- **Friend Data** — an in-universe friends-list entry.

**Link Data**:
The teleport-enabling subclass of **Data** — the keys to the fast-travel network. Stored as one
inventory category; **Zone Link vs Area Link is a flag**, not two systems. An Area Link is inert
("dies") if you do not hold its parent Zone Link.

**Data**:
The in-universe noun for collectable drops (link/spectrum/friend data). The avatar, NPC, and
"data"-drop sprites are the only non-original art (MMBN-derived); the rest of BNO's art is
original.

### State sharing & visibility

**Deterministic-Synced state**:
World state driven by shared server time so every client renders it identically: moving
**Platform** positions, animation loops, **Flicker** tile present/gone cycles, **Glow** tile
activation. Not per-player. (Movers and slippery ice have no unique state — just a looping
animation.)

**Per-Player state**:
Anything tied to a player's unlocks, abilities, or inventory: **Hexbridge** activation,
**Hidden** tile reveals, and all **Key Item** / **Collectable**-gated access (warp/zone/area/
spectrum). Two players in the same room can stand on different walkable surfaces.

**Visibility rule** _(stated intent — not found in legacy 5-8 build)_:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.
_Recon found NO contiguous-body visibility-cull code in `client-5-8` (hidden tiles are just
cloaked floor + a self-reveal `alphaon` toggle). See Flagged ambiguities._

**Contiguous hidden-tile body**:
A connected group of Hidden floor tiles forming one visibility group. Navis on the same body
can see each other; outsiders cannot see them.

### Cooperative play

**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

**Watch** (the **Watcher** system):
A social/observation mechanic to watch (spectate/follow) another Navi. _Mechanics TBD — newly
surfaced; needs grilling._

**Request system**:
The unified legacy mechanism (`rq_*`, 11 request types) behind player-to-player interactions —
**Summon/Join**, **Duo** (spot/dig), and **Watch** are all requests. Establishes that
cooperative play is consent-based (a request the other player accepts).

### Avatar

**Navi** _(draft)_:
The player-controlled avatar. Cosmetics are customized by equipping **Spectrum Data** at a
**Spectral Gate** tile (requires `MskPlugn`).

### Portals & travel

**Portal**:
An in-world teleport node. To fast-travel, a Navi stands on a portal and selects acquired
**Link Data** from a menu (legacy flow; ReBNO targets a heavily improved UX for this).

**Home Portal**:
A player-chosen portal (any cleared zone/area portal) that is their login spawn and the only
destination fast-travelable from *anywhere*. Falling during exploration also returns the Navi
here — with a slim chance of landing in the **Digital Abyss** instead.

**Digital Abyss** (legacy room: **Abyssal Ruin**):
A fall-failure destination. Falls are counted (`global.dafalls`); the first few (≤5) are safe
respawns to the Home Portal, but beyond that threshold the Navi is routed to the Abyss. A
per-user server flag can exempt a player from it.

**Online Command Screen**:
A hub/menu screen used as the default spawn when a player has set no Home Portal.

**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi.
**Hexbridge** tiles bounce it back after spawning a floor tile that is recorded **permanently
per-account** (bridge id = `x + room + y`), synced to the server and replayed at every login —
so cleared hexbridges persist forever, per player. (Note: the "hexsling prefers the direction
you were *not* travelling" behavior is **stated intent not found in the 5-8 build** — recon
located that reversal only on the hexbridge bounce. See Flagged ambiguities.)

**Warp** (requires **WrpPlugn**):
Intra-zone teleportation via Warp tiles. Inert without the expansion.

**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap.

### Social

**Message Board**:
A persistent in-world posting surface (legacy `MB_News` / `MB_Log`). New boards are a
progression reward.

**Friend Data**:
The legacy in-universe friends list (collected as Data). _Flagged: see ambiguities._

## Flagged ambiguities

- **"Friends list"** — legacy **Friend Data** (an in-universe collectable) vs a *modern*
  account-level friends list proposed in `.planning/research/FEATURES.md` as a new
  differentiator. These may be the same concept or two distinct systems. **Unresolved.**

## Example dialogue

_(to be written once core terms are confirmed)_

-**Digital Abyss** (legacy room: **Abyssal Ruin**):

-A fall-failure destination. Falls are counted (`global.dafalls`); the first few (≤5) are safe

-respawns to the Home Portal, but beyond that threshold the Navi is routed to the Abyss. A

-per-user server flag can exempt a player from it.

+**Digital Abyss** (legacy room: **Abyssal Ruin**, zone 4):

+A fall-failure destination, and itself a **no-teleport zone** (you climb out on foot). Exact

+legacy rule: each fall rolls ~10% (`random(99)`, abyss if `≤9`) **but only once `dafalls > 5`**

+— your first 5 falls are immune; the counter resets each time you land in the Abyss. A persisted

+per-user `dabypass` flag interacts with this (its exact meaning is **disputed between recon


**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap.

**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap (the gate literally checks
`target == your duo partner`; duo partners also auto-accept requests). Zone magic numbers carve
out exceptions: **Emptiness' Hull (zone 3) is free-teleport**; the **Digital Abyss (zone 4) is
no-teleport**. Separately, a Navi currently in a Duo cannot freely fast-travel (tethered to the
partner).


**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap (the gate literally checks
`target == your duo partner`; duo partners also auto-accept requests). Zone magic numbers carve
out exceptions: **Emptiness' Hull (zone 3) is free-teleport**; the **Digital Abyss (zone 4) is
no-teleport**. Separately, a Navi currently in a Duo cannot freely fast-travel (tethered to the
partner).

# REBNO Domain Context

The shared language of *BN Online* (legacy game) and *ReBNO* (its rebuild). This glossary
is the source of truth for game-domain terms — what concepts ARE, and the canonical word for
each. It is NOT a spec and holds no implementation detail.

> Status: actively being refined via `/grill-with-docs`. Terms marked _(draft)_ are
> provisional pending confirmation.

## Language

### Game identity

**BN Online** (alias: **BNO**):
The legacy game — a persistent, multiplayer **social-exploration** world built in GameMaker
5.3a, skinned in the Mega Man Battle Network aesthetic. The core loop is exploration, not
combat: uncover hidden platforms/pathways/portals, beat timing-sensitive movement challenges,
and solve puzzles built from interwoven traversal mechanics. **No combat system.**
_Avoid_: "MMBN game", "battle game" (the IP is skin, not mechanics).

**ReBNO**:
The ground-up rebuild of BNO on a modern web stack. Primary goal: **full feature parity with
BNO plus QoL tweaks** afforded by web infrastructure. Not a reskin and not a new game — parity
first. New systems and an eventual IP-shed / battle system are explicitly far-future, out of
current scope.
_Avoid_: "the port" (it is a from-scratch rebuild, not a port).

**Progression** (the reward axis):
Advancement is exploration-driven and Metroidvania-shaped — rewards unlock the ability to reach
more of the world. Reward types: new **Zones**, new **Areas**, new **Message Boards**,
**Collectables**, and **Key Items**.

### World structure

**Zone**:
A top-level region. In legacy BNO each Zone is exactly **one GameMaker room** (~11 total:
BNCentral, Bahoo, Noiya, Floes of Ghennam, Emptiness' Hull, Deserted Lobby, Prairie Flats,
Database, Traverse Core, Schweisstar, and the Digital Abyss / Abyssal Ruin). All inter-zone
travel is teleport-gated, but a zone can be reached on foot (or via a found **Warp**) before you
hold its Link Data — you simply cannot fast-travel to it yet.

**Area** (alias: **Subregion**):
A named sub-region *within* a Zone's single room (not a separate room), delimited by invisible
**area-name marker** objects (legacy `ac_*` change-area labels; ~120 across the world).

**Central Portal**:
The one portal in each Zone that is the **source of that zone's Zone Link Data**. You must
physically reach it before that zone joins your fast-travel network — until then you can only
travel there on foot, and the Summon/Join system refuses to teleport you there.

### Key Items & Collectables

**Key Item**:
A progression-gating reward. Primarily **Navi Expansions**. Metroidvania lock-and-key: a key
item unlocks an ability/feature that opens previously-unreachable progression.

**Navi Expansion** (the `*Plugn` family):
A class of Key Item that unlocks a Navi ability/feature — the primary Metroidvania keys. Legacy
`global.keydata` keyids 1–6, of which **five are functional Plugns**:
- **HxpPlugn** (1) — enables **Hexport** travel.
- **RmtPlugn** (2) — enables free fast-travel (teleport from anywhere, not only while standing
  on a portal; exact limits TBD).
- **MskPlugn** (3) — enables applying **Spectrum Data** (via **Spectral Gate** tiles).
- **DuoPlugn** (5) — enables forming a **Duo**.
- **WrpPlugn** (6) — enables **Warp** tiles.

**TakABrak** (keyid 4):
An **easter-egg** key item ("Take-A-Break.exe"), not an ability-gating expansion. Lives in the
Key category but gates nothing.

**Mod Item** (Key-category IDs 900–909):
The legacy **admin / RCE item set** (`<M:Exc>`, `<M:NetExc>`, `<M:JkrShl>` = Joker Shell, …),
each wired to admin sub-commands. This is the original "run clipboard as superuser" admin model
— an **anti-port** per CLAUDE.md Hard Rule 3, NOT a collectable reward. Joker Shell (the fastest
"joker" movement tier) is an admin item, not parity content.

**Collectable**:
A gatherable reward, surfaced in-universe as **Data** drops. Known taxonomy:
- **Zone Link Data** (alias: Zone Data) — unlocks fast-travel to a Zone; sourced from that
  zone's **Central Portal**.
- **Area Link Data** (alias: Area Data) — unlocks fast-travel to an Area; usable only if you
  also hold the parent Zone's Zone Link Data.
- **Spectrum Data** — unlocks an avatar cosmetic option (requires `MskPlugn` to apply).
- **Friend Data** — an in-universe friends-list entry.

**Link Data**:
The teleport-enabling subclass of **Data** — the keys to the fast-travel network. Stored as one
inventory category; **Zone Link vs Area Link is a flag**, not two systems. An Area Link is inert
("dies") if you do not hold its parent Zone Link.

**Data**:
The in-universe noun for collectable drops (link/spectrum/friend data). The avatar, NPC, and
"data"-drop sprites are the only non-original art (MMBN-derived); the rest of BNO's art is
original.

### State sharing & visibility

**Deterministic-Synced state**:
World state driven by shared server time so every client renders it identically: moving
**Platform** positions, animation loops, **Flicker** tile present/gone cycles, **Glow** tile
activation. Not per-player. (Movers and slippery ice have no unique state — just a looping
animation.)

**Per-Player state**:
Anything tied to a player's unlocks, abilities, or inventory: **Hexbridge** activation,
**Hidden** tile reveals, and all **Key Item** / **Collectable**-gated access (warp/zone/area/
spectrum). Two players in the same room can stand on different walkable surfaces.

**Visibility rule** _(stated intent — not found in legacy 5-8 build)_:
A Navi standing on **Hidden** tiles is invisible to any Navi that does not share the same
**contiguous hidden-tile body**. A Navi on otherwise-unavailable geometry (e.g. an unactivated
hexbridge) is seen "floating" by others — seeing them means you *could potentially* reach that
geometry, not that it is unlocked for you.
_Recon found NO contiguous-body visibility-cull code in `client-5-8` (hidden tiles are just
cloaked floor + a self-reveal `alphaon` toggle). See Flagged ambiguities._

**Contiguous hidden-tile body**:
A connected group of Hidden floor tiles forming one visibility group. Navis on the same body
can see each other; outsiders cannot see them.

### Cooperative play

**Duo** (via the **DuoPlugn** Navi Expansion; the **Duo System**):
A pairing of two Navis that benefits both and eases challenges — analogous to the digger+spotter
relationship in Mega Man Legends. Duo partners can **always** see each other, overriding the
hidden-tile visibility rule.

**Watch** (the **Watcher** system):
A social/observation mechanic to watch (spectate/follow) another Navi. _Mechanics TBD — newly
surfaced; needs grilling._

**Request system**:
The unified legacy mechanism (`rq_*`, 11 request types) behind player-to-player interactions —
**Summon/Join**, **Duo** (spot/dig), and **Watch** are all requests. Establishes that
cooperative play is consent-based (a request the other player accepts).

### Avatar

**Navi** _(draft)_:
The player-controlled avatar. Cosmetics are customized by equipping **Spectrum Data** at a
**Spectral Gate** tile (requires `MskPlugn`).

### Portals & travel

**Portal**:
An in-world teleport node. To fast-travel, a Navi stands on a portal and selects acquired
**Link Data** from a menu (legacy flow; ReBNO targets a heavily improved UX for this).

**Home Portal**:
A player-chosen portal (any cleared zone/area portal) that is their login spawn and the only
destination fast-travelable from *anywhere*. Falling during exploration also returns the Navi
here — with a slim chance of landing in the **Digital Abyss** instead.

**Digital Abyss** (legacy room: **Abyssal Ruin**, zone 4):
A fall-failure destination, and itself a **no-teleport zone** (you climb out on foot). Exact
legacy rule: each fall rolls ~10% (`random(99)`, abyss if `≤9`) **but only once `dafalls > 5`**
— your first 5 falls are immune; the counter resets each time you land in the Abyss. A persisted
per-user `dabypass` flag interacts with this (its exact meaning is **disputed between recon
passes** — see Flagged ambiguities).

**Online Command Screen**:
A hub/menu screen used as the default spawn when a player has set no Home Portal.

**Hexport** (requires **HxpPlugn**):
The signature in-zone traversal mechanic. A **Hexporter** floor terminal splits the Navi into
six light orbs that re-form into a flat hexagon of light, travelling in a straight line across
empty space and *under* the floor tiles. **Hexsling** tiles redirect a hexporting Navi.
**Hexbridge** tiles bounce it back after spawning a floor tile that is recorded **permanently
per-account** (bridge id = `x + room + y`), synced to the server and replayed at every login —
so cleared hexbridges persist forever, per player. (Note: the "hexsling prefers the direction
you were *not* travelling" behavior is **stated intent not found in the 5-8 build** — recon
located that reversal only on the hexbridge bounce. See Flagged ambiguities.)

**Warp** (requires **WrpPlugn**):
Intra-zone teleportation via Warp tiles. Inert without the expansion.

**Summon / Join**:
A player-to-player teleport system. It refuses to teleport a user into a Zone where that user
holds no **Zone Link Data** — only a **Duo** can bridge that gap.

### Social

**Message Board**:
A persistent in-world posting surface (legacy `MB_News` / `MB_Log`). New boards are a
progression reward.

**Friend Data**:
The legacy in-universe friends list (collected as Data). _Flagged: see ambiguities._

## Flagged ambiguities

- **"Friends list"** — legacy **Friend Data** (an in-universe collectable) vs a *modern*
  account-level friends list proposed in `.planning/research/FEATURES.md` as a new
  differentiator. These may be the same concept or two distinct systems. **Unresolved.**

## Example dialogue

_(to be written once core terms are confirmed)_

-holds no **Zone Link Data** — only a **Duo** can bridge that gap.

+holds no **Zone Link Data** — only a **Duo** can bridge that gap (the gate literally checks

+`target == your duo partner`; duo partners also auto-accept requests). Zone magic numbers carve

+out exceptions: **Emptiness' Hull (zone 3) is free-teleport**; the **Digital Abyss (zone 4) is

+no-teleport**. Separately, a Navi currently in a Duo cannot freely fast-travel (tethered to the


## Flagged ambiguities

- **"Friends list"** — legacy **Friend Data** (an in-universe collectable) vs a *modern*
  account-level friends list proposed in `.planning/research/FEATURES.md` as a new
  differentiator. These may be the same concept or two distinct systems. **Unresolved.**

## Flagged ambiguities

- **"Friends list"** — legacy **Friend Data** (inventory category 2, a genuine in-universe
  friends list) vs a *modern* account-level friends list proposed in
  `.planning/research/FEATURES.md`. Recon confirms legacy already had an in-universe list, so the
  real question is modernize-in-place vs faithful + separate layer. **Unresolved (Q4).**
- **Hidden-tile contiguous-body visibility** — user states Navis on hidden tiles are invisible to
  others not on the same contiguous hidden body. Recon found **no such cull in `client-5-8`**
  (hidden tiles are cloaked floor + self-reveal only). Is this in another revision, a ReBNO
  design intention, or missed by recon? **Unresolved.**
- **Hexsling direction-preference** — user states a hexsling with 1–2 exits "prefers the
  direction the player wasn't travelling." Recon found that reversal only on the **hexbridge**
  bounce, not on hexslings, in `client-5-8`. Same three possibilities. **Unresolved.**
- **`dabypass` meaning** — one recon pass read it as "exempt from the Abyss," another as "stuck
  respawning in the Abyss until you climb out." Direct conflict. **Needs a code re-check.**
- **Legacy is fully client-authoritative** — the Master only relays. ReBNO is server-authoritative
  (CLAUDE.md Hard Rule 1). Recorded here as the defining legacy→ReBNO divergence, not an
  ambiguity per se. **Confirm scope in Q4.3.**