42std::string
ratsnest(std::span<const RatsEdge> edges);
45std::string
frontier(std::int64_t conn,
int layer, std::span<const model::Point> pts);
52std::string
path_try(std::int64_t conn, std::span<const PathPoint> pts);
68 std::optional<model::Point>
at;
81 std::vector<std::pair<std::string, double>>
extra;
86std::string
stage(std::string_view name, std::string_view state, std::string_view
detail = {});
88std::string
log(std::string_view level, std::string_view text);
92 std::span<const std::uint8_t> data);
The board model (design doc 02 §3): every object TraceMaker reads from a .kicad_pcb,...
std::int32_t NetId
0 = no net
std::string track_add(ObjectId id, const model::Track &t)
std::string message_type(std::string_view json)
Returns the value of the top-level "type" key of a message, or an empty string.
std::string track_remove(ObjectId id)
std::string path_try(std::int64_t conn, std::span< const PathPoint > pts)
Transient: a candidate path being evaluated.
std::string stats(const Stats &s)
std::string footprint_move(std::string_view ref, model::Point pos, double angle)
std::string via_remove(ObjectId id)
std::string via_add(ObjectId id, const model::Via &v)
std::string frontier(std::int64_t conn, int layer, std::span< const model::Point > pts)
Transient: sampled points of an active search frontier on one copper layer.
std::string stage(std::string_view name, std::string_view state, std::string_view detail={})
state is "begin" or "end".
std::string log(std::string_view level, std::string_view text)
level: "debug" | "info" | "warn" | "error".
std::string board_snapshot_json(const model::Board &b, const std::string &name, bool freeze=true)
Full scene snapshot (board).
std::string heatmap(std::string_view name, model::Point origin, Coord cell, int w, int h, int layer, double max, std::span< const std::uint8_t > data)
Overlay grid: data is row-major w*h bytes (0–255), cell size in nm, origin (x0, y0); layer -1 = all l...
std::string ratsnest(std::span< const RatsEdge > edges)
std::string failure(const Failure &f)
std::int64_t Coord
Engine coordinate: signed 64-bit nanometres.
std::int64_t gap_fixed_nm
widest track that gets through (routed copper counted / only fixed copper)
std::string rule
where the width and clearance came from
std::vector< ObjectId > blockers
std::string verdict
placement | rule | contested | unknown
geom::Box region
empty box = none
std::optional< model::Point > at
where the way is narrowest (or the closest approach)
std::int64_t clearance_nm
std::string reason
boxed_in, no_legal_path, exact_check, rip_limit, ...
std::vector< model::NetId > blocker_nets
Why the attempt was rejected (doc 13, issue #8); all optional, and an old reader ignores them....
std::int64_t min_width_nm
the attempt's track width and clearance, and the narrowest legal width
std::vector< PathPoint > rejected
the path that was tried
std::vector< std::pair< std::string, double > > extra
shown as extra counters in the HUD