Echoes of Color - Passive Board Editor

Run:
- Double-click run_passive_editor.bat from the ShapeRPG folder, or run
  run_passive_editor.ps1.

Controls:
- Left-drag a node to move it. If several nodes are selected, the whole cluster
  moves together.
- Shift-drag or Ctrl-drag empty space to box-select nodes.
- Ctrl-click one node, then Ctrl-click another to preview/toggle an editor link.
- Right-drag empty space to pan the canvas.
- Mouse wheel zooms from 0.10x to 2.00x.
- Save Layout writes the current editor profile.
- Save Production writes node positions to data/passive_tree_layout.txt after
  confirmation.
- Load Layout reads data/passive_tree_layout.txt.
- Reset Generated returns to the current generated board layout.
- Center View frames the whole board.

Production layout format:
Each editable node position is saved as:

id|display name|x|y

The stable id owns runtime identity. Display names are labels only, so repeated
names are valid.

Generated routing policy:
- Production exports preserve starter regions and node positions.
- Do not bake editor links into generated layout exports. Runtime generation and
  player routing own passive-board connectivity.
- Passive behavior belongs to semantic archetype ids and runtime services, never
  parsed display names or descriptions.
- New archetypes require player-facing names/effect text, validation support,
  and boss-compatible semantics when they define a build.
