Novolis Docs
novolis-governance / completed-plans/dock_mesh_terminology_064f0f42.plan.md

Dock / Mesh terminology upgrade

dotnetgovernancenovolis

name: Dock Mesh Terminology overview: Rename player-facing and Sins-owned terminology from Berth/Network/Hub to Dock/Mesh/System–Station–Habitat, while keeping Novolis.Economy TransportHub and ShipmentPhase.WaitingBerth as internal package types with bridge comments. todos:

  • id: glossary

content: Add docs/terminology.md + link from docs/README status: completed

  • id: ux-strings

content: "Rename UI/CLI/Args/bridge/hints/coach: Dock, Mesh, AT DOCK; CLI aliases" status: completed

  • id: sins-ids

content: Rename DockBoardOnly, dockOnly, CurrentSystemId, PortTier.Capital; save compat status: completed

  • id: docs-smoke

content: Update gameplay/mesh/cli/places/AGENT-SMOKE docs status: completed

  • id: verify

content: Fix tests; build+test; grep banned UX terms status: completed isProject: false


Glossary (source of truth)

Add `novolis-apps/src/SinsOfACapitalismTycoon/docs/terminology.md` and link it from `docs/README.md`.

DomainPreferredBan in UX / new Sins code
Docked at infrastructure**Dock**, **Docked**, **at dock**Berth (bunk sense)
Same star system**Local**, **in system**
Comms fabric**Mesh**, **Node**, **Feed**, **Mailbox**Network (as intel board name)
Real space**System**, **Habitat**, **Station**Hub (player glass)

Economy package types stay: TransportHub, TransportHubId, ShipmentPhase.WaitingBerth. Sins code may keep those identifiers when calling Economy APIs; display strings and Sins-owned APIs use the glossary.

flowchart TB
  subgraph space [Real space]
    System --> Station
    System --> Habitat
    Station --> Dock
  end
  subgraph mesh [Communications]
    Node["Node = system relay"]
    Feed
    Mailbox
    Node --> Feed
    Node --> Mailbox
  end
  System -.->|"co-located"| Node
  Dock -->|"local live tape"| LocalBoard[Local dock board]
  Mailbox -->|"delayed digests"| MeshBoard[Mesh board]

Pass 1 — Player UX (strings, CLI, Avalonia)

Pass 2 — Sins-owned identifiers

Rename for clarity; keep JSON save compatibility with [JsonPropertyName] / dual read:

CurrentNew
`PlayerControlState.LocalBoardOnly``DockBoardOnly` (save: still write/read `LocalBoardOnly` or both)
`CaptainJobBoard.ListSpot(..., berthOnly:)``dockOnly:`
`LiveSession.CurrentHubSystemId``CurrentSystemId` (wrapper; old name obsolete alias if needed)
Bridge `CurrentHubName` / `CurrentHubSystemId``CurrentSystemName` / `CurrentSystemId`
UI/docs “berth fee” standing“dock fee” / “station standing fee” in Sins copy ([`JumpBandGate`](novolis-apps/src/SinsOfACapitalismTycoon/Universe/Commerce/JumpBandGate.cs) player-facing strings)

PortTier.Hub (Sins enum): rename to PortTier.Capital (or Core) and update `PortTier.cs` + call sites / docs. Do not rename Economy corridor/hub APIs.

Bridge (`AstroEconomyBridge.cs`): keep HubBinding as the Economy mapping type, but comments and any Sins display helpers say system/station; prefer exposing SystemId in new code paths.

Pass 3 — Explicit non-goals

  • No rename of Novolis.Economy TransportHub / WaitingBerth / HubOrder (cross-package break).
  • No rename of mesh kernel MeshNode / Mailbox / Feed (already correct).
  • Lore fiction that uses “hub” as a place nickname can stay in deep canon docs only if tagged; new copy uses station/system.

Pass 4 — Tests and verify

  • Update unit/smoke strings (AT DOCK, board aliases).
  • dotnet build + unit test run with ProjectReference mode; kill SinsOfACapitalismTycoon.exe if DLL locks.
  • Grep Sins for remaining player-facing \b[Bb]erth\b, \b[Nn]etwork\b board sense, and \b[Hh]ub\b in UI/CLI/docs (allow Economy type names and WaitingBerth references).