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.
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.
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.