Glossary
The precise vocabulary of the Marrow domain — one term per concept, with the words to avoid.
The ubiquitous language of Marrow. Where several words exist for one concept,
the heading is the word to use and Avoid lists the ones that cause confusion.
This is a glossary, not a specification — implementation details live in
Reference.
The description
Topology: A described network — devices, zones, and links — authored as a YAML document. The source of truth a diagram is compiled from. Avoid: map, graph, drawing, network file
Device: A node in a topology. A thing with an icon that links attach to. Avoid: node (that's the geometric form), host, element, asset
Zone: A named container grouping devices by where they are — a site, building, VLAN, or VPC. May nest via a parent. Avoid: group, cluster, region, area
Tier:
A device's rank in the network hierarchy — one of edge, core, distribution,
access, endpoint, management. Answers what role it plays, never where it is.
Avoid: layer, level, role (role is a separate free-text key)
Link: A connection between two devices, optionally terminating at named ports. Avoid: edge (that's the rendered form), connection, cable, line
Mode:
A link's logical function — access, trunk, routed, tunnel, peering, stack. The
axis orthogonal to kind; it drives the rendered symbol. Declared, never
inferred.
Avoid: type, role (a device key), switchport-mode
Trunk:
A link mode carrying multiple VLANs (802.1Q). Rendered as a double rail with a
VLAN chip. Not to be confused with a layout trunk (an aggregate spine edge).
Avoid: uplink (a trunk need not be an uplink)
Tunnel:
A link mode for overlays and VPNs, refined by encap (ipsec, gre, vxlan, …).
Rendered dashed with a padlock chip.
Avoid: VPN in the schema (say mode: tunnel), overlay as a key
LAG:
A link aggregation group — members share a lag id and bundle onto one strand
labelled with that id; lacp names the control protocol. Orthogonal to mode.
Avoid: bond, port-channel/etherchannel as keys (those are the vendor names for it)
Port: The named termination of a link on a device — the part after the first colon in an endpoint. Geometry: it determines where a cable attaches. Avoid: interface (that's documentation, not geometry)
Interface: Documentation of a device's network interface — name, description, VLAN, IP. Appears in the inspector. Distinct from a port. Avoid: port, NIC
Endpoint:
The device-id or device-id:Port string on one end of a link. Also the name
of a tier — the two never appear in the same sentence in practice.
Avoid: terminal, attachment
Hero: The device a diagram is about; the camera features it when the diagram opens. Avoid: focus, root, primary, default node
Status: A declared health value on a device or link — up, down, degraded, planned, unknown. Never polled; always stated in the file. Avoid: state, health, alarm
The compiler
Archetype: The shape family a topology is classified into — zoned, tiered, ring, hub-spoke, mesh, or flat. Determines which placement engine runs. Avoid: layout type, template, style, preset (a preset is a placement implementation, not the classification)
Classification: The act of choosing an archetype from declared structure. Declared structure always outranks inferred shape. Avoid: detection, inference
Placement: Assigning positions to devices. Produces boxes. Avoid: layout (which means the whole pipeline), positioning
Routing: Computing the path a link takes between two placed devices. Produces polylines. Avoid: pathfinding, drawing edges
Tidy: The post-routing pass applying cable-tray discipline — merging same-pair parallels onto one visible run and pulling fan-outs onto shared gutter lanes. Avoid: cleanup, optimization, simplification
Scene: The geometric contract handed to the renderers — boxes, polylines, and port chips. Everything downstream speaks only this. Avoid: model (that's the topology), layout result, output
Port chip: The small marker on a device's edge where a link terminates. Placed collision-free by the layout stage; renderers draw it verbatim. Avoid: connector, anchor, handle, stub
Ghost: A dimmed, dashed stub standing in for a device on another page, linking to it. Keeps cross-page links visible instead of dropping them. Avoid: proxy, placeholder, stub
Diagnostic:
A machine-readable error or warning carrying a stable MRW- code, a YAML path,
line and column, a snippet, a fix hint, and suggestions.
Avoid: message, log, issue, problem
Geometry lint: The check run on the scene before rendering. L1 fails the build, L2 auto-repairs, L3 advises. Avoid: validation (that's the schema stage)
The output
Diagram: A compiled, interactive artifact — one self-contained HTML file, or a multi-page site. Avoid: render, image, export, drawing
Single file: The one-document output shape. Everything inlined. Avoid: standalone, bundle, portable mode
Site: The multi-page output shape produced above the split threshold — overview, zone pages, device pages, inventory, shared assets. Avoid: folder mode, multi-page export
Hero tier / scale tier: The two rendering tiers — SVG for full fidelity, a canvas host when the node count demands it. Chosen by size, visually identical. Avoid: SVG mode / canvas mode (they name the implementation, not the tier)
Runtime: The ~20 KB browser client inlined into every diagram — camera, inspector, spotlight, minimap, search, export. Avoid: viewer, player, app
Chrome: The interface surrounding the diagram — sidebar, inspector, command palette, breadcrumbs, dock. shadcn/ui ported to vanilla CSS and TypeScript. Avoid: UI, shell, frame
Brand:
The global identity applied to every diagram from marrow.config.yaml — name,
note, logo, links. Never per-topology.
Avoid: theme (that's dark/light), watermark (one place the brand appears),
backdrop (a removed key)
Icons
Pack:
A directory of SVGs plus a manifest.json, discovered automatically under
icon-packs/.
Avoid: library, set, collection
Icon id:
The pack/category/name string identifying one icon. Must exist; never guessed.
Avoid: icon name, symbol, shape