The project’s single real camera resolution. Defaults to a square 360x360 so the simulated
camera and the real camera always agree on aspect ratio with no project-level config
required; set this explicitly to match your actual hardware’s resolution.
Logging configuration for a single environment, controlling whether node logs are written
to local disk. Remote/network log shipping is independent of this setting.
Parsed node specification from namespaced string format (e.g. @mecha10/listener for a
framework node, my-custom for a project node, @someorg/cool-node for a future registry
node). The legacy @local/* prefix is no longer supported.
Map of node identifiers (e.g. @mecha10/listener, my-custom) to their config - at minimum
a pinned version, optionally an expanded NodeEntry::Detailed form declaring enabled/
capabilities too.
Target execution configuration: where nodes run (locally, in simulation, on the robot, or
remotely), and, for robot/remote/rl, which Rust target triple(s) builds compile for.
Resolved TURN server config: relay URL + credentials for a TURN entry in a WebRTC ICE
server list. Standalone since mecha10-cli-core doesn’t depend on mecha10-video.
One node’s entry in NodesConfig’s map: either the common plain pinned-version string
(e.g. "0.1.0", "latest"), or an expanded object form that additionally declares this
node’s Capability set and/or disables it without removing its entry entirely. The
expanded form’s capabilities mirrors how run_target is explicit, per-node, author-set
config (never auto-inferred from node type) - see Capability and
NodeImpl::CAPABILITIES’s doc comment.
A single entry in a target’s node list, either a plain node identifier or a named instance
for a node that needs to run as more than one instance under the same target.
Whether name is declared as a local project node (NodeSource::Project) according to the
mecha10.json at config_path. Never errors: a missing/unparsable config resolves to false.
Rewrites video-streamer’s entry in every target’s nodes array to carry the right
camera_id, or back to a bare string where no override applies. Each target’s camera_id
is derived from whichever camera-producing node is also placed there.
Resolve TURN server config: an explicit runtime env var wins, then the build-time-baked
default. Returns None when neither is present (including empty), so callers can fall
through to a runtime API fetch from mecha10-api.