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