{"bin":"simforge","command":"","commands":[{"arguments":[],"command":"login","flags":[{"commandIndex":1,"help":"SimForge host to sign in to. Default: SIMFORGE_HOST, then the host of the last login, then simforge.ai. Later commands use the host signed in to","name":"--host","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"HOST"},{"commandIndex":1,"help":"Sign in with a code instead of a local browser: print a URL and a short code to approve from any browser (SSH, headless machines)","name":"--device","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"A scope to request on top of the defaults (repeatable), such as keys:admin to manage API keys. The defaults cover map/runtime downloads and scenario/cloud jobs","name":"--scope","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"SCOPE"},{"commandIndex":1,"help":"Where to keep the tokens. Default: SIMFORGE_CREDENTIAL_STORE, then auto (the OS keychain, else a 0600 file; the output says which and why)","name":"--credential-store","positional":false,"possibleValues":["auto","keyring","file"],"required":false,"takesValue":true,"type":"enum","valueName":"STORE"},{"commandIndex":1,"help":"The name the approval page and the CLI sessions list show for this machine. Default: the host name","name":"--device-name","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NAME"},{"commandIndex":1,"default":"600","help":"Seconds to wait for the approval","name":"--timeout","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"}],"status":"available","summary":"Sign in to a SimForge host (browser approval, or --device for a URL and code)","usage":"simforge login [OPTIONS]"},{"arguments":[],"command":"logout","flags":[{"commandIndex":1,"help":"SimForge host. Default: SIMFORGE_HOST, then the host of the last login, then simforge.ai","name":"--host","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"HOST"}],"status":"available","summary":"Sign out of a host: revoke this machine's session and delete its stored tokens","usage":"simforge logout [OPTIONS]"},{"arguments":[],"command":"auth status","flags":[{"commandIndex":2,"help":"SimForge host. Default: SIMFORGE_HOST, then the host of the last login, then simforge.ai","name":"--host","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"HOST"}],"status":"available","summary":"The account, organization, scopes, expiry, host and credential store of this machine's login, checked with the host (tokenValid), and the account's email verification","usage":"simforge auth status [OPTIONS]"},{"arguments":[],"command":"whoami","flags":[{"commandIndex":1,"help":"SimForge host. Default: SIMFORGE_HOST, then the host of the last login, then simforge.ai","name":"--host","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"HOST"}],"status":"available","summary":"The signed-in account, organization, workspace and scopes","usage":"simforge whoami [OPTIONS]"},{"arguments":[],"command":"runtime install","flags":[{"commandIndex":2,"default":"x86_64-unknown-linux-gnu","help":"The platform to download for (a Rust target triple). Default: this machine's","name":"--target","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TARGET"},{"commandIndex":2,"help":"","name":"--version","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"VERSION"},{"commandIndex":2,"help":"","name":"--root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"ROOT"},{"commandIndex":2,"help":"Explicitly accept the current license and terms (agreement version and SHA) before downloading","name":"--accept-license","positional":false,"required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Download and install the closed runtime (PolyForm Noncommercial 1.0.0) after accepting its license and SimForge's account and download terms","usage":"simforge runtime install [OPTIONS]"},{"arguments":[],"command":"runtime status","flags":[],"status":"available","summary":"Report the installed runtime's protocol and engine identity","usage":"simforge runtime status [OPTIONS]"},{"arguments":[],"command":"runtime license","flags":[],"status":"available","summary":"Read the runtime license (PolyForm Noncommercial 1.0.0) and SimForge's account and download terms without accepting them","usage":"simforge runtime license [OPTIONS]"},{"arguments":[],"command":"cli install","flags":[{"commandIndex":2,"default":"x86_64-unknown-linux-gnu","help":"The platform to download for (a Rust target triple). Default: this machine's","name":"--target","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TARGET"},{"commandIndex":2,"help":"","name":"--version","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"VERSION"},{"commandIndex":2,"help":"Where to install `simforge`. Default: ~/.local/bin, or %LOCALAPPDATA%\\SimForge\\bin on Windows","name":"--prefix","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"PREFIX"}],"status":"available","summary":"Download and install the staff local CLI with default-feature commands","usage":"simforge cli install [OPTIONS]"},{"arguments":[],"command":"maps list","flags":[{"commandIndex":2,"help":"At most this many items","name":"--limit","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"LIMIT"},{"commandIndex":2,"help":"Only items in this status","name":"--status","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"STATUS"},{"commandIndex":2,"help":"Only items of this type","name":"--type","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TYPE"}],"status":"available","summary":"List the hosted maps your workspace can use","usage":"simforge maps list [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The id","name":"id","positional":true,"required":true,"type":"string","valueName":"ID"}],"command":"maps show","flags":[],"status":"available","summary":"One hosted map and its versions","usage":"simforge maps show [OPTIONS] <ID>"},{"arguments":[{"commandIndex":2,"help":"SimForge-owned map name, optionally pinned as NAME@VERSION","name":"map","positional":true,"required":true,"type":"string","valueName":"MAP"}],"command":"maps pull","flags":[{"commandIndex":2,"help":"Map cache directory. Default: the SimForge maps cache","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"CACHE_ROOT"},{"commandIndex":2,"help":"Explicitly accept the current license and terms, which include the map pack terms, before downloading","name":"--accept-license","positional":false,"required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Download a map your signed-in account is entitled to into the local cache, sha256-verified","usage":"simforge maps pull [OPTIONS] <MAP>"},{"arguments":[{"commandIndex":1,"help":"Scenario JSON file or materialized workspace; identical input for local and cloud","name":"target","positional":true,"required":true,"type":"path","valueName":"TARGET"},{"commandIndex":1,"help":"Runtime-specific options; forwarded without shell interpolation","name":"extra","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"EXTRA"}],"command":"render","flags":[{"commandIndex":1,"help":"Output folder; local requires it, cloud waits and downloads when it is given","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"OUT"},{"commandIndex":1,"default":"2d","help":"","name":"--mode","positional":false,"possibleValues":["2d","schematic","3d"],"required":false,"takesValue":true,"type":"enum","valueName":"MODE"},{"commandIndex":1,"help":"Sensor rig JSON (`simforge rig init`). Default: the `basic-dash-camera` rig on the ego","name":"--rig","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"RIG"},{"commandIndex":1,"help":"Render preset","name":"--preset","positional":false,"possibleValues":["training","showcase","schematic"],"required":false,"takesValue":true,"type":"enum","valueName":"PRESET"},{"commandIndex":1,"help":"Local native render only: authored instantaneous HDR detector response JSON","name":"--camera-detector","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"Local native render only: bounded exact-time HDR exposure request JSON","name":"--camera-temporal","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"Local bounded offline measurement delivery or controlled delivery-only resume","name":"--camera-delivery","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"Frame rate every camera records (2d: the video's), over the render preset's own rate; 3d takes 5 to 60","name":"--fps","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"FPS"},{"commandIndex":1,"help":"Wait for a submitted cloud job to finish","name":"--wait","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Download a succeeded cloud job into --out; implies --wait","name":"--download","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Explicit maximum cloud cost in cents; required for billable cloud jobs","name":"--max-cost","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"CENTS"},{"commandIndex":1,"help":"Immutable revision for an existing hosted scenario target","name":"--revision","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"REVISION"},{"commandIndex":1,"help":"Cloud 3d render: the drive a succeeded closed_loop run scored (its episode timeline), rendered on the target's revision that run drove","name":"--replay-of","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"RUN_ID"},{"commandIndex":1,"default":"follow-ego","execution":"local-runtime","help":"2d engine: the camera","name":"--camera","positional":false,"possibleValues":["follow-ego","overview"],"required":false,"takesValue":true,"type":"enum","valueName":"CAMERA"},{"commandIndex":1,"execution":"local-runtime","help":"2d engine, follow-ego: keep north up (looking ahead of the ego) instead of turning the view with it","name":"--north-up","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"execution":"local-runtime","help":"2d engine: also draw signal heads the timeline has no phases for (hollow grey rings)","name":"--debug-signals","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"execution":"local-runtime","help":"2d engine: no HUD (header, legend, clock, speed); the map fills the whole frame","name":"--no-hud","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"execution":"local-runtime","help":"2d engine: tags to draw next to actors, a JSON object `{actorId: text}` (e.g. a labelling page's candidate numbers). An id that is not an actor of the timeline fails the render","name":"--actor-labels","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"LABELS.JSON"},{"commandIndex":1,"default":"standard","execution":"local-runtime","help":"2d engine: icon legibility; `high` is for labelling clips (larger props, light people, faint untagged parked vehicles, no edge chevrons or collision marks, non-overlapping tag badges)","name":"--legibility","positional":false,"possibleValues":["standard","high"],"required":false,"takesValue":true,"type":"enum","valueName":"LEGIBILITY"},{"commandIndex":1,"execution":"local-runtime","help":"2d engine: a fixed map scale in pixels per metre. Default: 14 to 9 by the ego's speed (follow-ego); the scenario actors fitted, 5 to 12 (overview)","name":"--px-per-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"PX"},{"commandIndex":1,"default":"1280x720","execution":"local-runtime","help":"2d engine: the frame size","name":"--size","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"WxH"},{"commandIndex":1,"execution":"local-runtime","help":"2d engine: the ego actor. Default: the workspace's metric subject","name":"--ego","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"ACTOR_ID"},{"commandIndex":1,"execution":"local-runtime","help":"Render a timeline instead of simulating the workspace, on the same map","name":"--timeline","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"TIMELINE.JSON"},{"commandIndex":1,"execution":"local-runtime","help":"2d engine: the clip, `START:END` seconds of the timeline. Default: the whole timeline","name":"--clip","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"START:END"},{"commandIndex":1,"execution":"local-runtime","help":"2d engine: draw building footprints when the map has them","name":"--buildings","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"execution":"local-runtime","help":"2d engine: the header's title. Default: the map's name (its id in words) and the scenario's title from the package (else the workspace directory); render.json keeps the ids","name":"--title","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":1,"default":"legacy","execution":"local-runtime","help":"Native LiDAR model. `legacy` is the byte-identical default","name":"--lidar-model","positional":false,"possibleValues":["legacy","physical"],"required":false,"takesValue":true,"type":"enum","valueName":"LIDAR_MODEL"},{"commandIndex":1,"execution":"local-runtime","help":"Physical profile name (built-in) or a JSON profile file","name":"--lidar-profile","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NAME|FILE"},{"commandIndex":1,"default":"0","execution":"local-runtime","help":"Physical-model deterministic noise seed","name":"--lidar-seed","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"LIDAR_SEED"},{"commandIndex":1,"execution":"local-runtime","help":"Express physical returns in the sensor pose at sweep start","name":"--lidar-motion-compensated","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"default":"rgb,id,depth,semantic","execution":"local-runtime","help":"Camera passes, comma-separated","name":"--passes","positional":false,"possibleValues":["rgb","hdr","id","depth","semantic"],"repeatable":true,"required":false,"takesValue":true,"type":"enum","valueName":"PASSES"},{"commandIndex":1,"execution":"local-runtime","help":"Capture renderer-relative HDR before postprocess, with capture-owned provenance","name":"--camera-capture-stage","positional":false,"possibleValues":["scene-pre-postprocess/v1"],"required":false,"takesValue":true,"type":"enum","valueName":"CAMERA_CAPTURE_STAGE"},{"commandIndex":1,"execution":"local-runtime","help":"Render-config overrides on the preset (`key=value`, e.g. `aa.mode=fxaa`); repeatable","name":"--set","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"KEY=VALUE"},{"commandIndex":1,"execution":"local-runtime","help":"The staged texture tier (photoreal presets). Default: uastc-full","name":"--textures","positional":false,"possibleValues":["uastc-full","bc7-512"],"required":false,"takesValue":true,"type":"enum","valueName":"TEXTURES"},{"commandIndex":1,"default":"auto","execution":"local-runtime","help":"Encode videos with ffmpeg","name":"--video","positional":false,"possibleValues":["auto","required","off"],"required":false,"takesValue":true,"type":"enum","valueName":"VIDEO"},{"commandIndex":1,"execution":"local-runtime","help":"A texture budget in bytes; without it the device capacity is unmeasured and admission is skipped (reported)","name":"--vram-budget","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"BYTES"},{"commandIndex":1,"execution":"local-runtime","help":"Render on a software (CPU) Vulkan adapter such as lavapipe, explicitly. Slow; pixels differ from a GPU's","name":"--allow-software-adapter","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"execution":"local-runtime","help":"Use this native map directory (`.corpus/<map>`) instead of the installed map found by content","name":"--map-dir","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"execution":"local-runtime","help":"Map cache root to search. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"execution":"local-runtime","help":"Actor-asset root. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"execution":"local-runtime","help":"The actor closure to bind, instead of the workspace's `catalog.actorClosureDigest`","name":"--actor-closure","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":1,"execution":"local-runtime","help":"The workspace's private model layer (an actor closure in the same store) for `workspace.*` models, instead of the workspace's `simforge.actorLayer` extension","name":"--actor-layer","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":1,"execution":"local-runtime","help":"Render on the installed map release even where its members differ from the workspace's map closure (recorded in the result; the default refuses)","name":"--allow-map-drift","positional":false,"required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Render the same scenario file locally or with --cloud","usage":"simforge render [OPTIONS] <TARGET> [EXTRA]..."},{"arguments":[{"commandIndex":1,"help":"Scenario JSON file or materialized workspace; identical input for local and cloud","name":"target","positional":true,"required":true,"type":"path","valueName":"TARGET"},{"commandIndex":1,"help":"Runtime-specific options; forwarded without shell interpolation","name":"extra","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"EXTRA"}],"command":"simulate","flags":[{"commandIndex":1,"help":"Output folder; local requires it, cloud waits and downloads when it is given","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"OUT"},{"commandIndex":1,"default":"2d","help":"","name":"--mode","positional":false,"possibleValues":["2d","schematic","3d"],"required":false,"takesValue":true,"type":"enum","valueName":"MODE"},{"commandIndex":1,"help":"Sensor rig JSON (`simforge rig init`). Default: the `basic-dash-camera` rig on the ego","name":"--rig","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"RIG"},{"commandIndex":1,"help":"Render preset","name":"--preset","positional":false,"possibleValues":["training","showcase","schematic"],"required":false,"takesValue":true,"type":"enum","valueName":"PRESET"},{"commandIndex":1,"help":"Local native render only: authored instantaneous HDR detector response JSON","name":"--camera-detector","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"Local native render only: bounded exact-time HDR exposure request JSON","name":"--camera-temporal","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"Local bounded offline measurement delivery or controlled delivery-only resume","name":"--camera-delivery","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"Frame rate every camera records (2d: the video's), over the render preset's own rate; 3d takes 5 to 60","name":"--fps","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"FPS"},{"commandIndex":1,"help":"Wait for a submitted cloud job to finish","name":"--wait","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Download a succeeded cloud job into --out; implies --wait","name":"--download","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Explicit maximum cloud cost in cents; required for billable cloud jobs","name":"--max-cost","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"CENTS"},{"commandIndex":1,"help":"Immutable revision for an existing hosted scenario target","name":"--revision","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"REVISION"},{"commandIndex":1,"help":"Cloud 3d render: the drive a succeeded closed_loop run scored (its episode timeline), rendered on the target's revision that run drove","name":"--replay-of","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"RUN_ID"},{"commandIndex":1,"execution":"local-runtime","help":"Override the resolution's seed (the trace is then expected to differ)","name":"--seed","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SEED"},{"commandIndex":1,"execution":"local-runtime","help":"Use this map directory instead of the installed map found by content (map.xodr[.gz] sha256 = the manifest's map.xodrSha256)","name":"--map-dir","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"execution":"local-runtime","help":"Map cache root to search. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"execution":"local-runtime","help":"Instance mode (the positional is an instance file): also write the trace here (gzip JSON)","name":"--trace","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"execution":"local-runtime","help":"Simulate without map colliders when the map publishes none (recorded in the result; the default refuses)","name":"--allow-no-colliders","positional":false,"required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Simulate the same scenario file locally or with --cloud","usage":"simforge simulate [OPTIONS] <TARGET> [EXTRA]..."},{"arguments":[{"commandIndex":2,"help":"Scenario JSON file or materialized workspace; identical input for local and cloud","name":"target","positional":true,"required":true,"type":"path","valueName":"TARGET"},{"commandIndex":2,"help":"","name":"extra","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"EXTRA"}],"command":"preview frame","flags":[{"commandIndex":2,"help":"Output file (PNG for a frame, MP4 for a clip)","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"OUT"},{"commandIndex":2,"default":"2d","help":"","name":"--mode","positional":false,"possibleValues":["2d","schematic","3d"],"required":false,"takesValue":true,"type":"enum","valueName":"MODE"},{"commandIndex":2,"help":"Sensor rig JSON (`simforge rig init`). Default: the `basic-dash-camera` rig on the ego","name":"--rig","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"RIG"},{"commandIndex":2,"help":"The rig camera to look through","name":"--camera","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"CAMERA"},{"commandIndex":2,"default":"0","help":"Scenario time in seconds","name":"--at","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"AT"},{"commandIndex":2,"help":"Clip length in seconds","name":"--seconds","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"SECONDS"},{"commandIndex":2,"help":"Render preset","name":"--preset","positional":false,"possibleValues":["training","showcase","schematic"],"required":false,"takesValue":true,"type":"enum","valueName":"PRESET"},{"commandIndex":2,"help":"Overwrite an existing output file","name":"--force","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Explicit maximum cloud cost in cents; required for billable cloud jobs","name":"--max-cost","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"CENTS"},{"commandIndex":2,"help":"Immutable revision for an existing hosted scenario target","name":"--revision","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"REVISION"},{"commandIndex":2,"help":"Wait for a submitted cloud job to finish","name":"--wait","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Download a succeeded cloud job into --out; implies --wait","name":"--download","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"execution":"local-runtime","help":"Render on this native map directory (`.corpus/<map>`) instead of the installed map found by content","name":"--map-dir","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"execution":"local-runtime","help":"The 2D camera's ego actor; otherwise the workspace or scenario selects it","name":"--ego","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"ACTOR_ID"},{"commandIndex":2,"execution":"local-runtime","help":"The staged texture tier of a photoreal preview (as `render --textures`). Default: uastc-full","name":"--textures","positional":false,"possibleValues":["uastc-full","bc7-512"],"required":false,"takesValue":true,"type":"enum","valueName":"TEXTURES"}],"status":"available","summary":"One still frame of a scenario at --at seconds (PNG), locally or with --cloud","usage":"simforge preview frame [OPTIONS] --out <OUT> <TARGET> [EXTRA]..."},{"arguments":[{"commandIndex":2,"help":"Scenario JSON file or materialized workspace; identical input for local and cloud","name":"target","positional":true,"required":true,"type":"path","valueName":"TARGET"},{"commandIndex":2,"help":"","name":"extra","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"EXTRA"}],"command":"preview clip","flags":[{"commandIndex":2,"help":"Output file (PNG for a frame, MP4 for a clip)","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"OUT"},{"commandIndex":2,"default":"2d","help":"","name":"--mode","positional":false,"possibleValues":["2d","schematic","3d"],"required":false,"takesValue":true,"type":"enum","valueName":"MODE"},{"commandIndex":2,"help":"Sensor rig JSON (`simforge rig init`). Default: the `basic-dash-camera` rig on the ego","name":"--rig","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"RIG"},{"commandIndex":2,"help":"The rig camera to look through","name":"--camera","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"CAMERA"},{"commandIndex":2,"default":"0","help":"Scenario time in seconds","name":"--at","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"AT"},{"commandIndex":2,"help":"Clip length in seconds","name":"--seconds","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"SECONDS"},{"commandIndex":2,"help":"Render preset","name":"--preset","positional":false,"possibleValues":["training","showcase","schematic"],"required":false,"takesValue":true,"type":"enum","valueName":"PRESET"},{"commandIndex":2,"help":"Overwrite an existing output file","name":"--force","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Explicit maximum cloud cost in cents; required for billable cloud jobs","name":"--max-cost","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"CENTS"},{"commandIndex":2,"help":"Immutable revision for an existing hosted scenario target","name":"--revision","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"REVISION"},{"commandIndex":2,"help":"Wait for a submitted cloud job to finish","name":"--wait","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Download a succeeded cloud job into --out; implies --wait","name":"--download","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"execution":"local-runtime","help":"Render on this native map directory (`.corpus/<map>`) instead of the installed map found by content","name":"--map-dir","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"execution":"local-runtime","help":"The 2D camera's ego actor; otherwise the workspace or scenario selects it","name":"--ego","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"ACTOR_ID"},{"commandIndex":2,"execution":"local-runtime","help":"The staged texture tier of a photoreal preview (as `render --textures`). Default: uastc-full","name":"--textures","positional":false,"possibleValues":["uastc-full","bc7-512"],"required":false,"takesValue":true,"type":"enum","valueName":"TEXTURES"}],"status":"available","summary":"A short clip of a scenario from --at for --seconds (MP4), locally or with --cloud","usage":"simforge preview clip [OPTIONS] --out <OUT> <TARGET> [EXTRA]..."},{"arguments":[],"command":"mcp","flags":[{"commandIndex":1,"help":"Working directory for tool calls that do not pass `cwd` (default: this process's)","name":"--cwd","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Expose only the commands under these command paths (repeatable, e.g. `--only render --only \"scenario apply\"`)","name":"--only","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"COMMAND"}],"status":"available","summary":"Expose this command surface as MCP tools over stdio","usage":"simforge mcp [OPTIONS]"},{"arguments":[],"command":"rig schema","flags":[],"status":"available","summary":"Print the Platform-generated render-rig/v1 JSON Schema; cross-field checks also run in validate","usage":"simforge rig schema [OPTIONS]"},{"arguments":[],"command":"rig capabilities","flags":[],"status":"available","summary":"Print the generated native camera declaration; support tiers do not imply device qualification","usage":"simforge rig capabilities [OPTIONS]"},{"arguments":[],"command":"rig reported-schema","flags":[],"status":"available","summary":"Print the reported-only calibration JSON Schema; hash integrity is checked by the consumer parser","usage":"simforge rig reported-schema [OPTIONS]"},{"arguments":[],"command":"rig consumer-schema","flags":[],"status":"available","summary":"Print the v2 consumer acquisition sidecar schema; timestamps are scheduled render instants","usage":"simforge rig consumer-schema [OPTIONS]"},{"arguments":[],"command":"rig consumer-video-schema","flags":[],"status":"available","summary":"Print the legacy v1 consumer video sidecar schema, which has no acquisition timestamps","usage":"simforge rig consumer-video-schema [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"","name":"rig","positional":true,"required":true,"type":"path","valueName":"RIG.JSON"}],"command":"rig effective-config","flags":[{"commandIndex":2,"help":"Require a camera feature; repeat for each requirement. Unsupported combinations fail closed","name":"--require","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"CAMERA.FEATURE"}],"status":"available","summary":"Resolve camera identity and required features without executing a renderer","usage":"simforge rig effective-config [OPTIONS] <RIG.JSON>"},{"arguments":[],"command":"rig init","flags":[{"commandIndex":2,"help":"The built-in rig","name":"--preset","positional":false,"possibleValues":["basic-dash-camera","tesla-hw3","waymo-5th-gen","surround-7cam-1lidar","roof-8cam-6lidar-4radar","alpamayo-2cam","alpamayo-4cam","alpamayo-6cam","alpamayo-6cam-vqa","front-4cam-wide-cross-tele","drone-inspection-wide","drone-inspection-wide-zoom","drone-mapping-nadir","drone-fpv-forward"],"required":true,"takesValue":true,"type":"enum","valueName":"PRESET"},{"commandIndex":2,"default":"car","help":"The carrier class whose default box the mounts are fitted to: car, truck or van for a road rig, drone for a drone rig","name":"--class","positional":false,"possibleValues":["car","truck","van","drone"],"required":false,"takesValue":true,"type":"enum","valueName":"CLASS"},{"commandIndex":2,"default":"showcase","help":"The render profile whose capture (size and frame rate) every camera of the rig records","name":"--profile","positional":false,"possibleValues":["training","showcase"],"required":false,"takesValue":true,"type":"enum","valueName":"PROFILE"},{"commandIndex":2,"default":"ego","help":"The actor named in the file (every source's `actorId`); a render re-hosts a placeholder on the scenario's ego and refuses a file naming another of its roles","name":"--actor","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":2,"help":"Where to write the rig","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":2,"help":"Overwrite an existing file","name":"--force","positional":false,"required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Write a built-in rig fitted to a carrier class's default box as a `simforge.render-rig/v1` file","usage":"simforge rig init [OPTIONS] --preset <PRESET> --out <FILE>"},{"arguments":[{"commandIndex":2,"help":"A `simforge.render-rig/v1` file","name":"rig","positional":true,"required":true,"type":"path","valueName":"RIG.JSON"}],"command":"rig validate","flags":[],"status":"available","summary":"Check a `simforge.render-rig/v1` file as a render reads it; the installed runtime plans a camera lens (cameraModel). Exit 2 with the finding","usage":"simforge rig validate [OPTIONS] <RIG.JSON>"},{"arguments":[{"commandIndex":2,"help":"A `simforge.render-rig/v1` file","name":"rig","positional":true,"required":true,"type":"path","valueName":"RIG.JSON"}],"command":"rig show","flags":[],"status":"available","summary":"What a rig captures: each source's mount, the way it faces and its field of view, and the cameras' horizontal coverage; the installed runtime shows a rig with a camera lens","usage":"simforge rig show [OPTIONS] <RIG.JSON>"},{"arguments":[{"commandIndex":2,"help":"The model, a binary glTF (.glb)","name":"model","positional":true,"required":true,"type":"path","valueName":"MODEL.GLB"}],"command":"vehicle validate","flags":[{"commandIndex":2,"default":"car","help":"The road-vehicle class it will drive as: car, van, truck or bus (sets the plausible size)","name":"--class","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"CLASS"},{"commandIndex":2,"help":"Its real length, width and height in metres (`4.6,1.85,1.45`); the model must match within 10%","name":"--dims","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"L,W,H"}],"status":"available","summary":"Check a .glb against the vehicle model contract (frame, size, wheel and body nodes, triangle budget, materials, textures); exit 2 on any error","usage":"simforge vehicle validate [OPTIONS] <MODEL.GLB>"},{"arguments":[],"command":"vehicle list","flags":[],"status":"available","summary":"The vehicles a scenario can bind by catalogId: the shared catalog's and, signed in, the workspace's own (`workspace.<id>`)","usage":"simforge vehicle list [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The model, a binary glTF (.glb)","name":"model","positional":true,"required":true,"type":"path","valueName":"MODEL.GLB"}],"command":"vehicle import","flags":[{"commandIndex":2,"help":"Its id within the workspace: scenarios bind it as `workspace.<id>` (lowercase letters, digits, `_`, `-`; at most 48)","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":2,"help":"Its licence: an SPDX id (`CC-BY-4.0`) or `LicenseRef-<name>` with --license-text","name":"--license","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SPDX"},{"commandIndex":2,"help":"The licence's text, for a `LicenseRef-*` licence","name":"--license-text","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":2,"help":"The credit the licence asks for (author, title, link)","name":"--attribution","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":2,"help":"Where the model came from (URL or text)","name":"--source","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":2,"help":"Its display name. Default: the id","name":"--name","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":2,"default":"car","help":"The road-vehicle class it drives as: car, van, truck or bus","name":"--class","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"CLASS"},{"commandIndex":2,"help":"Its real length, width and height in metres; the model must match within 10%","name":"--dims","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"L,W,H"}],"status":"available","summary":"Validate a .glb here, upload it and store it as the workspace's own `workspace.<id>` (private to the workspace); the licence and attribution travel with every render","usage":"simforge vehicle import [OPTIONS] --id <ID> --license <SPDX> --attribution <TEXT> <MODEL.GLB>"},{"arguments":[],"command":"skills list","flags":[],"status":"available","summary":"List the skills bundled with this binary","usage":"simforge skills list [OPTIONS]"},{"arguments":[],"command":"skills install","flags":[{"commandIndex":2,"help":"Install into ~/.claude/skills (Claude Code)","name":"--claude","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Install into $CODEX_HOME/skills, else ~/.codex/skills (Codex)","name":"--codex","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Install into this directory","name":"--dir","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"PATH"},{"commandIndex":2,"help":"Overwrite files that differ from what an earlier install wrote","name":"--force","positional":false,"required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Copy the bundled skills into an agent's skill directory","usage":"simforge skills install [OPTIONS] <--claude|--codex|--dir <PATH>>"},{"arguments":[],"command":"telemetry show","flags":[],"status":"available","summary":"Print the pending usage batches exactly as the runtime will send them","usage":"simforge telemetry show [OPTIONS]"},{"arguments":[],"command":"usage","flags":[{"commandIndex":1,"help":"Start of the period (ISO 8601 date or time)","name":"--from","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"FROM"},{"commandIndex":1,"help":"End of the period (ISO 8601 date or time)","name":"--to","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TO"}],"status":"available","summary":"Hosted usage and spend of the signed-in workspace","usage":"simforge usage [OPTIONS]"},{"arguments":[],"command":"keys create","flags":[{"commandIndex":2,"help":"A name to recognize the key by (1-200 characters)","name":"--name","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"NAME"},{"commandIndex":2,"help":"A scope the key holds (repeatable). Default: maps:read scenarios:read scenarios:write datasets:read runs:read runs:write artifacts:read usage:read","name":"--scope","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"SCOPE"},{"commandIndex":2,"help":"Expire the key after this many days (1-3650). Default: no expiry","name":"--expires-in-days","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"DAYS"}],"status":"available","summary":"Create an API key for this workspace; its secret is printed once","usage":"simforge keys create [OPTIONS] --name <NAME>"},{"arguments":[],"command":"keys list","flags":[],"status":"available","summary":"List the workspace's API keys (never their secrets)","usage":"simforge keys list [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The key's id (`key_…`, from `simforge keys list`)","name":"id","positional":true,"required":true,"type":"string","valueName":"ID"}],"command":"keys revoke","flags":[],"status":"available","summary":"Revoke an API key now; requests with it stop resolving immediately","usage":"simforge keys revoke [OPTIONS] <ID>"},{"arguments":[],"command":"drafts create","flags":[{"commandIndex":2,"help":"The map version id the draft is pinned to","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"MAP_VERSION_ID"},{"commandIndex":2,"help":"","name":"--name","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"NAME"},{"commandIndex":2,"help":"The writable dataset; absent, the credential's default dataset (named in the receipt)","name":"--dataset","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"DATASET_ID"},{"commandIndex":2,"help":"","name":"--clip-seconds","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"S"}],"status":"available","summary":"Create a workspace draft on an exact map version; prints its receipt (documentId, draftVersion, contentDigest, mapPin)","usage":"simforge drafts create [OPTIONS] --map <MAP_VERSION_ID> --name <NAME>"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"}],"command":"drafts show","flags":[],"status":"available","summary":"The draft's current receipt and content: version, digest, map/actor/recording pins","usage":"simforge drafts show [OPTIONS] <DRAFT_ID>"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply add-actor","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Presentation body colour `#rrggbb`.","name":"--body-color","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"BODY_COLOR"},{"commandIndex":3,"help":"Built-in actor (`simforge scenario actors`): vehicle.sedan, pedestrian.adult, ...","name":"--catalog-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"CATALOG_ID"},{"commandIndex":3,"help":"Heading in the scene frame; default: the lane heading or the actor class default. [rad]","name":"--heading-rad","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"New actor id (never allocated implicitly).","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Display label.","name":"--label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"LABEL"},{"commandIndex":3,"help":"Lateral offset in the lane, positive to the left of travel. [m]","name":"--lateral-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Snap to the nearest genuinely opposing lane.","name":"--opposing","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":3,"help":"Accept overlap with another actor (free/static actors only; refused for moving road vehicles).","name":"--overlap-override","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":3,"help":"Initial speed; default: posted limit for road vehicles. [0..160 km/h]","name":"--speed-kph","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Place as a static actor (no motion, zero speed).","name":"--static","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":3,"help":"Explicit height; otherwise the map ground at (x,z) is used and refused without ground. [m]","name":"--y","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Semantic lane `road:section:lane` (with s).","name":"--lane-rsl","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"LANE_RSL"},{"commandIndex":3,"help":"Station along laneRsl in storage direction. [>= 0 m]","name":"--s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame x (east). [m]","name":"--x","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame z (minus north). [m]","name":"--z","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"}],"status":"available","summary":"Place a new actor: a road vehicle on a semantic lane, or a pedestrian/free static actor at a scene point.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> add-actor [OPTIONS] --catalog-id <CATALOG_ID> --id <ID> <--lane-rsl <LANE_RSL>|--x <N>> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply move-actor","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Heading in the scene frame; default: the lane heading or the actor class default. [rad]","name":"--heading-rad","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Actor to move.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Lateral offset in the lane, positive to the left of travel. [m]","name":"--lateral-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Accept overlap with another actor (free/static actors only; refused for moving road vehicles).","name":"--overlap-override","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":3,"help":"Explicit height; otherwise the map ground at (x,z) is used and refused without ground. [m]","name":"--y","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Semantic lane `road:section:lane` (with s).","name":"--lane-rsl","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"LANE_RSL"},{"commandIndex":3,"help":"Station along laneRsl in storage direction. [>= 0 m]","name":"--s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame x (east). [m]","name":"--x","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame z (minus north). [m]","name":"--z","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"}],"status":"available","summary":"Move an actor to a lane station or scene point, keeping identity, class, static state and speed.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> move-actor [OPTIONS] --id <ID> <--lane-rsl <LANE_RSL>|--x <N>> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply duplicate-actor","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Heading in the scene frame; default: the lane heading or the actor class default. [rad]","name":"--heading-rad","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Source actor.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Lateral offset in the lane, positive to the left of travel. [m]","name":"--lateral-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"New actor id.","name":"--new-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"NEW_ID"},{"commandIndex":3,"help":"Accept overlap with another actor (free/static actors only; refused for moving road vehicles).","name":"--overlap-override","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":3,"help":"Explicit height; otherwise the map ground at (x,z) is used and refused without ground. [m]","name":"--y","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Semantic lane `road:section:lane` (with s).","name":"--lane-rsl","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"LANE_RSL"},{"commandIndex":3,"help":"Station along laneRsl in storage direction. [>= 0 m]","name":"--s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame x (east). [m]","name":"--x","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame z (minus north). [m]","name":"--z","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"}],"status":"available","summary":"Copy an actor with its presentation and own events under a new id at a new position.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> duplicate-actor [OPTIONS] --id <ID> --new-id <NEW_ID> <--lane-rsl <LANE_RSL>|--x <N>> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply remove-role","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Actor to delete.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"}],"status":"available","summary":"Delete an actor with dependent events, reasoning and ego handoff.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> remove-role [OPTIONS] --id <ID> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply set-ego","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Actor to make ego.","name":"--role-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ROLE_ID"}],"status":"available","summary":"Make an actor the ego vehicle.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> set-ego [OPTIONS] --role-id <ROLE_ID> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply set-actor-speed","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Actor.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Initial speed. [0..160 km/h]","name":"--speed-kph","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"}],"status":"available","summary":"Set an actor's initial speed.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> set-actor-speed [OPTIONS] --id <ID> --speed-kph <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply set-actor-static","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Actor.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"true: static; false: mobile.","name":"--static","positional":false,"possibleValues":["true","false"],"required":true,"takesValue":true,"type":"enum","valueName":"BOOL"}],"status":"available","summary":"Make an actor static (clears its route and motion events) or mobile again.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> set-actor-static [OPTIONS] --id <ID> --static <BOOL> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply add-lane-change","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Actor.","name":"--actor-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ACTOR_ID"},{"commandIndex":3,"help":"Target lane side.","name":"--direction","positional":false,"possibleValues":["left","right"],"required":true,"takesValue":true,"type":"enum","valueName":"DIRECTION"},{"commandIndex":3,"help":"Lane-change duration. [> 0 s] (default 3)","name":"--duration-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Clip time the event ends. [>= 0 s]","name":"--end-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"New event id.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Clip time the change starts. [>= 0 s]","name":"--start-s","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"}],"status":"available","summary":"Add a timed lane change for a mobile lane-bound road actor.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> add-lane-change [OPTIONS] --actor-id <ACTOR_ID> --direction <DIRECTION> --id <ID> --start-s <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply add-next-junction-turn","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Actor.","name":"--actor-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ACTOR_ID"},{"commandIndex":3,"help":"Movement at the next junction.","name":"--direction","positional":false,"possibleValues":["left","right","straight"],"required":true,"takesValue":true,"type":"enum","valueName":"DIRECTION"},{"commandIndex":3,"help":"Clip time the event ends. [>= 0 s]","name":"--end-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"New event id.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Clip time the choice applies from. [>= 0 s]","name":"--start-s","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"}],"status":"available","summary":"Choose the turn an actor takes at its next junction.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> add-next-junction-turn [OPTIONS] --actor-id <ACTOR_ID> --direction <DIRECTION> --id <ID> --start-s <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply set-waypoint-route","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Actor.","name":"--actor-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ACTOR_ID"},{"commandIndex":3,"help":"Route duration. [> 0 s]","name":"--duration-s","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Clip time the event ends. [>= 0 s]","name":"--end-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"New event id.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Scene points, the actor's start first. Repeat once per item, at least 2.","name":"--point","positional":false,"repeatable":true,"required":true,"takesValue":true,"type":"string","valueName":"X,Z"},{"commandIndex":3,"help":"Clip time the route starts. [>= 0 s]","name":"--start-s","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"}],"status":"available","summary":"Give an actor a smooth stop-to-stop timed route through scene points (two points: a crossing).","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> set-waypoint-route [OPTIONS] --actor-id <ACTOR_ID> --duration-s <N> --id <ID> --point <X,Z> --start-s <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply set-event-timing","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"End clip time. [>= 0 s]","name":"--end-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Event.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Start clip time. [>= 0 s]","name":"--start-s","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"}],"status":"available","summary":"Retime an event's start and optional end.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> set-event-timing [OPTIONS] --id <ID> --start-s <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply set-weather","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Canonical scenario weather.","name":"--weather","positional":false,"possibleValues":["clear","cloudy","overcast","light_rain","heavy_rain","wet_road","fog_light","fog_dense","snow","sleet"],"required":true,"takesValue":true,"type":"enum","valueName":"WEATHER"}],"status":"available","summary":"Set the scenario weather.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> set-weather [OPTIONS] --weather <WEATHER> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply set-clock","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Minutes after local midnight. [0..1439 min]","name":"--minutes","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"}],"status":"available","summary":"Set the precise scene clock; the time of day becomes the label of the sun at the map's site on the scenario's day.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> set-clock [OPTIONS] --minutes <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"drafts apply set-clip","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":3,"help":"Clip length. [3..120 s]","name":"--clip-seconds","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Warm-up before the clip. [0..30 s]","name":"--warmup-seconds","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"}],"status":"available","summary":"Set the clip length and/or warm-up; out-of-clip events are refused, never truncated.","usage":"simforge drafts apply --expected-version <N> --expected-digest <SHA256> <DRAFT_ID> set-clip [OPTIONS] <--clip-seconds <N>|--warmup-seconds <N>> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"}],"command":"drafts save","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"}],"status":"available","summary":"Save the draft through the workspace store at an explicit version and digest","usage":"simforge drafts save [OPTIONS] --expected-version <N> --expected-digest <SHA256> <DRAFT_ID>"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"}],"command":"drafts freeze","flags":[{"commandIndex":2,"help":"The draftVersion of the receipt this change is based on","name":"--expected-version","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The contentDigest of the receipt this change is based on","name":"--expected-digest","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The revision's name","name":"--name","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NAME"}],"status":"available","summary":"Freeze the draft as an immutable revision (revisionId, revisionContentDigest) for simulate/render","usage":"simforge drafts freeze [OPTIONS] --expected-version <N> --expected-digest <SHA256> <DRAFT_ID>"},{"arguments":[{"commandIndex":2,"help":"","name":"draft_id","positional":true,"required":true,"type":"string","valueName":"DRAFT_ID"}],"command":"drafts validate","flags":[{"commandIndex":2,"help":"Warnings are findings too","name":"--strict","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Run the authoritative materializer/engine preview (every actor, collisions, quality issues)","name":"--preview","positional":false,"required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Validate every actor of the draft, optionally with the authoritative preview; exit 2 on findings","usage":"simforge drafts validate [OPTIONS] <DRAFT_ID>"},{"arguments":[],"command":"authoring catalogue","flags":[],"status":"available","summary":"The host's operation catalogue (simforge.authoring-operations/v1)","usage":"simforge authoring catalogue [OPTIONS]"},{"arguments":[],"command":"authoring capabilities","flags":[],"status":"available","summary":"What this credential may do on this host: operation, host-operation, feature and worker status","usage":"simforge authoring capabilities [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"One operation id (camelCase or its kebab-case command); absent, every operation","name":"operation","positional":true,"required":false,"type":"string","valueName":"OP_ID"}],"command":"authoring operations","flags":[],"status":"available","summary":"Every operation with its `drafts apply` flags, result schema and the host's status for this credential","usage":"simforge authoring operations [OPTIONS] [OP_ID]"},{"arguments":[],"command":"authoring discover","flags":[{"commandIndex":2,"help":"","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"MAP_VERSION_ID"},{"commandIndex":2,"help":"","name":"--kind","positional":false,"possibleValues":["locations","lanes","movements","catalogue"],"required":true,"takesValue":true,"type":"enum","valueName":"KIND"},{"commandIndex":2,"help":"","name":"--limit","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"}],"status":"available","summary":"Bounded map discovery without the map package: locations, lanes, movements or the actor catalogue","usage":"simforge authoring discover [OPTIONS] --map <MAP_VERSION_ID> --kind <KIND>"},{"arguments":[],"command":"authoring spawn","flags":[{"commandIndex":2,"help":"","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"MAP_VERSION_ID"},{"commandIndex":2,"help":"","name":"--catalog-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":2,"help":"A lane handle from `authoring discover --kind lanes` (with --s)","name":"--lane-rsl","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"RSL"},{"commandIndex":2,"help":"","name":"--s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"S"},{"commandIndex":2,"help":"A scene point (with --z)","name":"--x","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"X"},{"commandIndex":2,"help":"","name":"--z","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"Z"},{"commandIndex":2,"help":"","name":"--heading-rad","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"HEADING_RAD"},{"commandIndex":2,"help":"","name":"--lateral-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"LATERAL_M"},{"commandIndex":2,"help":"","name":"--opposing","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"","name":"--static","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Check overlap against this draft's actors (needs --expected-version and --expected-digest)","name":"--draft","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"DRAFT_ID"},{"commandIndex":2,"help":"","name":"--expected-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"","name":"--expected-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"}],"status":"available","summary":"Whether an actor can be placed at a lane position or scene point, optionally against a draft's actors","usage":"simforge authoring spawn [OPTIONS] --map <MAP_VERSION_ID> --catalog-id <ID>"},{"arguments":[],"command":"scenarios list","flags":[{"commandIndex":2,"help":"At most this many items","name":"--limit","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"LIMIT"},{"commandIndex":2,"help":"Only items in this status","name":"--status","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"STATUS"},{"commandIndex":2,"help":"Only items of this type","name":"--type","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TYPE"}],"status":"available","summary":"List the hosted scenarios of your workspace","usage":"simforge scenarios list [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The id","name":"id","positional":true,"required":true,"type":"string","valueName":"ID"}],"command":"scenarios show","flags":[],"status":"available","summary":"One hosted scenario and its revisions","usage":"simforge scenarios show [OPTIONS] <ID>"},{"arguments":[],"command":"scenarios create","flags":[{"commandIndex":2,"help":"A recording (`simforge.recording/v1`, or a `simforge.log-scene/v1` file), JSON or gzipped","name":"--log","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"LOG"},{"commandIndex":2,"help":"A scenario template, instantiated at a site of the map","name":"--template","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"TEMPLATE"},{"commandIndex":2,"help":"The map: a map version id, a map name or `name@vN`","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"The site to instantiate a template at; absent, its own pin or the first intent-preserving match","name":"--site","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SITE"},{"commandIndex":2,"help":"`simulation.seed` of the instantiated scenario","name":"--seed","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SEED"},{"commandIndex":2,"help":"The new scenario's name","name":"--name","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"NAME"},{"commandIndex":2,"help":"Explicit maximum cloud cost in cents; required for billable cloud jobs","name":"--max-cost","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"CENTS"},{"commandIndex":2,"help":"MCAP only: the lidar topic, when the log has several","name":"--lidar-topic","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TOPIC"},{"commandIndex":2,"help":"MCAP only: the GNSS topic, when the log has several","name":"--gnss-topic","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TOPIC"},{"commandIndex":2,"help":"MCAP only: the ego's box in metres, length,width,height (perceive's default otherwise)","name":"--ego-dims","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"number","valueName":"L,W,H"},{"commandIndex":2,"help":"MCAP only: how far the ego box's centre is ahead of base_link (the rear axle), metres","name":"--ego-rear-axle-to-centre","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"METRES"}],"status":"available","summary":"Create a hosted scenario from a recording or a template on a map","usage":"simforge scenarios create [OPTIONS] --map <MAP> --name <NAME>"},{"arguments":[{"commandIndex":2,"help":"The hosted scenario to copy","name":"id","positional":true,"required":true,"type":"string","valueName":"ID"}],"command":"scenarios copy","flags":[{"commandIndex":2,"help":"The dataset to copy into. Default: the scenario's own, else your default dataset","name":"--dataset","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"DATASET_ID"},{"commandIndex":2,"help":"The copy's name. Default: \"<name> (copy)\", or \"(copy 2)\", ... when taken","name":"--name","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NAME"}],"status":"available","summary":"Copy a hosted scenario to edit: its current draft as a new scenario; renders and runs stay","usage":"simforge scenarios copy [OPTIONS] <ID>"},{"arguments":[],"command":"datasets list","flags":[{"commandIndex":2,"help":"At most this many items","name":"--limit","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"LIMIT"},{"commandIndex":2,"help":"Only items in this status","name":"--status","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"STATUS"},{"commandIndex":2,"help":"Only items of this type","name":"--type","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TYPE"}],"status":"available","summary":"List the hosted datasets your workspace can read","usage":"simforge datasets list [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The id","name":"id","positional":true,"required":true,"type":"string","valueName":"ID"}],"command":"datasets show","flags":[],"status":"available","summary":"One hosted dataset","usage":"simforge datasets show [OPTIONS] <ID>"},{"arguments":[{"commandIndex":2,"help":"The dataset id (`simforge datasets list`)","name":"dataset","positional":true,"required":true,"type":"string","valueName":"DATASET"}],"command":"datasets pull","flags":[{"commandIndex":2,"help":"Library filters as `key:value` (repeat a key or comma-separate values), e.g. 'grade:A tag:cut-in'","name":"--filter","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"FILTER"},{"commandIndex":2,"help":"Free-text search, as in the library's search box","name":"--q","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"Q"},{"commandIndex":2,"help":"Only the scenarios of one recorded drive (its recording digest or source id)","name":"--source-log","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SOURCE_LOG"},{"commandIndex":2,"help":"Exactly these scenarios (document ids, comma-separated)","name":"--ids","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"IDS"},{"commandIndex":2,"help":"Beside each scenario's document, OpenSCENARIO, trace and resolution: renders[:training|showcase|schematic], labels, gt, recordings (default renders:training; `scenarios` alone for nothing else)","name":"--include","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"INCLUDE"},{"commandIndex":2,"help":"Keep only these render modalities: rgb, depth, semantic, instance, lidar, radar","name":"--passes","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"PASSES"},{"commandIndex":2,"help":"The folder to pull into (required unless --dry-run). Pulling again into it resumes","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"OUT"},{"commandIndex":2,"default":"8","help":"Parallel downloads","name":"--jobs","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"JOBS"},{"commandIndex":2,"default":"1800","help":"Seconds to wait for files the platform is still preparing before giving up on them","name":"--wait-pending","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"WAIT_PENDING"}],"status":"available","summary":"Download a dataset, a filter of it or chosen scenarios as files (resumable; --dry-run sizes it)","usage":"simforge datasets pull [OPTIONS] <DATASET>"},{"arguments":[{"commandIndex":2,"help":"The pulled folder","name":"dir","positional":true,"required":true,"type":"path","valueName":"DIR"}],"command":"datasets verify","flags":[],"status":"available","summary":"Check a pulled folder against its manifest.json and SHA256SUMS (offline)","usage":"simforge datasets verify [OPTIONS] <DIR>"},{"arguments":[{"commandIndex":2,"help":"The dataset id","name":"dataset","positional":true,"required":true,"type":"string","valueName":"DATASET"}],"command":"datasets copy","flags":[{"commandIndex":2,"help":"Library filters as `key:value` (repeat a key or comma-separate values), e.g. 'grade:A tag:cut-in'","name":"--filter","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"FILTER"},{"commandIndex":2,"help":"Free-text search, as in the library's search box","name":"--q","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"Q"},{"commandIndex":2,"help":"Only the scenarios of one recorded drive (its recording digest or source id)","name":"--source-log","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SOURCE_LOG"},{"commandIndex":2,"help":"Exactly these scenarios (document ids, comma-separated)","name":"--ids","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"IDS"},{"commandIndex":2,"help":"Copy into this dataset of your workspace (its id)","name":"--into","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"INTO"},{"commandIndex":2,"help":"Copy into a new dataset of this name","name":"--new","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NEW"},{"commandIndex":2,"help":"Start the copy and print it without waiting","name":"--detach","positional":false,"required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Copy scenarios of a dataset shared with every workspace (SIMLOG-25k) into one of your datasets","usage":"simforge datasets copy [OPTIONS] <DATASET>"},{"arguments":[{"commandIndex":2,"help":"The id","name":"id","positional":true,"required":true,"type":"string","valueName":"ID"}],"command":"datasets copy-status","flags":[],"status":"available","summary":"One copy: its state and counts (copied, skipped as already there, failed)","usage":"simforge datasets copy-status [OPTIONS] <ID>"},{"arguments":[],"command":"runs list","flags":[{"commandIndex":2,"help":"At most this many items","name":"--limit","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"LIMIT"},{"commandIndex":2,"help":"Only items in this status","name":"--status","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"STATUS"},{"commandIndex":2,"help":"Only items of this type","name":"--type","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TYPE"}],"status":"available","summary":"List your workspace's hosted runs","usage":"simforge runs list [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The id","name":"id","positional":true,"required":true,"type":"string","valueName":"ID"}],"command":"runs show","flags":[],"status":"available","summary":"One hosted run: status, cost, jobs and artifacts","usage":"simforge runs show [OPTIONS] <ID>"},{"arguments":[{"commandIndex":2,"help":"The id","name":"id","positional":true,"required":true,"type":"string","valueName":"ID"}],"command":"runs watch","flags":[],"status":"available","summary":"Follow a hosted run until it succeeds, fails, is partial or is cancelled","usage":"simforge runs watch [OPTIONS] <ID>"},{"arguments":[{"commandIndex":2,"help":"The id","name":"id","positional":true,"required":true,"type":"string","valueName":"ID"}],"command":"runs cancel","flags":[],"status":"available","summary":"Cancel a hosted run; artifacts it already produced are kept","usage":"simforge runs cancel [OPTIONS] <ID>"},{"arguments":[{"commandIndex":2,"help":"The hosted run","name":"run_id","positional":true,"required":true,"type":"string","valueName":"RUN_ID"}],"command":"results download","flags":[{"commandIndex":2,"default":".","help":"Directory to write the artifacts into","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"OUT"}],"status":"available","summary":"Download a hosted run's artifacts, sha256-checked","usage":"simforge results download [OPTIONS] <RUN_ID>"},{"arguments":[{"commandIndex":1,"help":"The hosted scenario","name":"scenario_id","positional":true,"required":true,"type":"string","valueName":"SCENARIO_ID"}],"command":"closed-loop","flags":[{"commandIndex":1,"help":"Its immutable revision","name":"--revision","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"REVISION_ID"},{"commandIndex":1,"default":"scripted","help":"The policy that drives the ego","name":"--policy","positional":false,"possibleValues":["scripted","trajectory"],"required":false,"takesValue":true,"type":"enum","valueName":"POLICY"},{"commandIndex":1,"help":"Simulation steps to run","name":"--steps","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"STEPS"},{"commandIndex":1,"help":"Simulation seed","name":"--seed","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SEED"},{"commandIndex":1,"help":"Wait for the run to finish","name":"--wait","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Explicit maximum cloud cost in cents; required for billable cloud jobs","name":"--max-cost","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"CENTS"}],"status":"available","summary":"Run a hosted closed-loop evaluation of a scripted or trajectory policy on a scenario revision","usage":"simforge closed-loop [OPTIONS] --revision <REVISION_ID> <SCENARIO_ID>"},{"arguments":[{"commandIndex":2,"help":"The succeeded cloud scenario render run to evaluate","name":"render_run_id","positional":true,"required":true,"type":"string","valueName":"RENDER_RUN_ID"}],"command":"open-loop run","flags":[{"commandIndex":2,"default":"0.5","help":"Seconds between scored prediction instants across the whole render; an exact multiple of 0.1 (0.5 = 2 Hz)","name":"--prediction-interval-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"SECONDS"},{"commandIndex":2,"default":"1","help":"Model sampling seed","name":"--seed","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SEED"},{"commandIndex":2,"default":"1","help":"Trajectory samples drawn by the model","name":"--samples","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Explicit maximum cloud cost in cents; required, also with --dry-run","name":"--max-cost","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"CENTS"},{"commandIndex":2,"help":"Wait for the evaluation to finish","name":"--wait","positional":false,"required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Score a succeeded cloud scenario render with the pinned Alpamayo 1.5 model (requires --cloud, --max-cost and --idempotency-key, also with --dry-run)","usage":"simforge open-loop run [OPTIONS] --max-cost <CENTS> <RENDER_RUN_ID>"},{"arguments":[],"command":"open-loop list","flags":[{"commandIndex":2,"help":"At most this many evaluations (1-100)","name":"--limit","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"LIMIT"},{"commandIndex":2,"help":"Only evaluations in these statuses (comma-separated)","name":"--status","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"STATUS"},{"commandIndex":2,"help":"The page after this cursor (`nextCursor` of the previous page)","name":"--cursor","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"CURSOR"}],"status":"available","summary":"List the workspace's evaluations","usage":"simforge open-loop list [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The evaluation (`cmpj_...`)","name":"id","positional":true,"required":true,"type":"string","valueName":"EVALUATION_ID"}],"command":"open-loop show","flags":[],"status":"available","summary":"One evaluation: status, cost and attempts","usage":"simforge open-loop show [OPTIONS] <EVALUATION_ID>"},{"arguments":[{"commandIndex":2,"help":"The evaluation (`cmpj_...`)","name":"id","positional":true,"required":true,"type":"string","valueName":"EVALUATION_ID"}],"command":"open-loop watch","flags":[],"status":"available","summary":"Follow an evaluation until it succeeds, is partial, fails or is cancelled","usage":"simforge open-loop watch [OPTIONS] <EVALUATION_ID>"},{"arguments":[{"commandIndex":2,"help":"The evaluation (`cmpj_...`)","name":"id","positional":true,"required":true,"type":"string","valueName":"EVALUATION_ID"}],"command":"open-loop result","flags":[],"status":"available","summary":"The evaluation's result manifest: scored metrics, artifacts, model/render/source pins and compute cost","usage":"simforge open-loop result [OPTIONS] <EVALUATION_ID>"},{"arguments":[{"commandIndex":2,"help":"The evaluation (`cmpj_...`)","name":"id","positional":true,"required":true,"type":"string","valueName":"EVALUATION_ID"},{"commandIndex":2,"help":"The artifact, by its id in the result manifest","name":"artifact_id","positional":true,"required":true,"type":"string","valueName":"ARTIFACT_ID"}],"command":"open-loop artifacts","flags":[],"status":"available","summary":"A download grant ({url, sha256, bytes, ...}) for one artifact of the evaluation's result","usage":"simforge open-loop artifacts [OPTIONS] <EVALUATION_ID> <ARTIFACT_ID>"},{"arguments":[],"command":"challenge status","flags":[],"status":"available","summary":"Your team, the submissions you have left and your registry repository","usage":"simforge challenge status [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"A local docker image (name:tag or id) implementing the challenge driver interface","name":"image","positional":true,"required":true,"type":"string","valueName":"IMAGE"}],"command":"challenge submit","flags":[{"commandIndex":2,"default":"dev","help":"","name":"--track","positional":false,"possibleValues":["dev","final"],"required":false,"takesValue":true,"type":"enum","valueName":"TRACK"}],"status":"available","summary":"Push a driver image to your team's repository and submit it for the next nightly batch","usage":"simforge challenge submit [OPTIONS] <IMAGE>"},{"arguments":[],"command":"challenge submissions","flags":[],"status":"available","summary":"Your team's submissions, their status and scores","usage":"simforge challenge submissions [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"Arguments for `simforge-challenge` (see `simforge-challenge --help`)","name":"argv","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"ARGV"}],"command":"challenge validate","flags":[],"status":"available","summary":"Validate a driver image against the submission contract, in the nightly batch's sandbox","usage":"simforge challenge validate [OPTIONS] [ARGV]..."},{"arguments":[{"commandIndex":2,"help":"Arguments for `simforge-challenge` (see `simforge-challenge --help`)","name":"argv","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"ARGV"}],"command":"challenge eval","flags":[],"status":"available","summary":"Evaluate a driver image in the final-track simulator on scenes you downloaded (`--local`)","usage":"simforge challenge eval [OPTIONS] [ARGV]..."},{"arguments":[],"command":"world serve","flags":[{"commandIndex":2,"help":"","name":"--map","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"MAP"},{"commandIndex":2,"help":"","name":"--scenario","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"SCENARIO"},{"commandIndex":2,"help":"","name":"--seed","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SEED"},{"commandIndex":2,"help":"","name":"--pacing","positional":false,"possibleValues":["realtime","fast","paused"],"required":false,"takesValue":true,"type":"enum","valueName":"PACING"},{"commandIndex":2,"help":"","name":"--socket","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"SOCKET"},{"commandIndex":2,"help":"","name":"--listen","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"LISTEN"},{"commandIndex":2,"help":"","name":"--token-file","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"TOKEN_FILE"},{"commandIndex":2,"help":"","name":"--vehicles","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"VEHICLES"},{"commandIndex":2,"help":"","name":"--pedestrians","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"PEDESTRIANS"},{"commandIndex":2,"help":"","name":"--record","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"RECORD"},{"commandIndex":2,"help":"","name":"--journal-dir","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"JOURNAL_DIR"},{"commandIndex":2,"help":"","name":"--ready-file","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"READY_FILE"},{"commandIndex":2,"help":"","name":"--restore","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"RESTORE"},{"commandIndex":2,"help":"","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"CACHE_ROOT"},{"commandIndex":2,"help":"","name":"--allow-no-colliders","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Explicit browser origins allowed by the closed host (repeatable)","name":"--allow-origin","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"ALLOW_ORIGIN"}],"status":"available","summary":"Serve a persistent local realtime world and its authenticated drive/state endpoints","usage":"simforge world serve [OPTIONS] --map <MAP> --token-file <TOKEN_FILE>"},{"arguments":[],"command":"doctor","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"help":"Do not probe the registry (the check is reported as skipped, never as ok)","name":"--offline","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Registry to probe. Default: SIMFORGE_MAPS_REGISTRY, then the staff map registry (AWS credentials required)","name":"--registry","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"URL"},{"commandIndex":1,"default":"10","help":"Network timeout for the registry probe","name":"--timeout","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Check this machine: GPU adapter, ffmpeg, cache roots, disk, registry reachability","usage":"simforge doctor [OPTIONS]"},{"arguments":[],"command":"engine-info","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"What this binary is: package version, engine semver, commit and its own sha256 (to record with results)","usage":"simforge engine-info [OPTIONS]"},{"arguments":[],"command":"assets pull","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Pull only this closure. Default: both the actor closure and the sky plates","name":"--only","positional":false,"possibleValues":["actors","sky"],"required":false,"takesValue":true,"type":"enum","valueName":"ONLY"},{"commandIndex":2,"help":"The actor closure digest (sha256). Default: the closure this build is pinned to","name":"--closure","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"Asset store base URL (https:// or file://). Default: SIMFORGE_ACTOR_ASSETS_BASE_URL, then the public store","name":"--base-url","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"URL"},{"commandIndex":2,"help":"Local asset root. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"default":"60","help":"Seconds to wait for a connection or for a response to start","name":"--timeout","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Pull the actor-asset closure and its ATTRIBUTION.json, verifying every blob's sha256","usage":"simforge assets pull [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The workspace directory (an imported scenario package). Omit it and pass --trace instead","name":"workspace","positional":true,"required":false,"type":"path","valueName":"WORKSPACE"}],"command":"timeline build","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"A trace file (JSON or gzip; any released trace format) instead of a workspace","name":"--trace","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":2,"help":"The identity recorded next to the stored trace (bound to an upgraded trace; checked against a current one)","name":"--recorded-trace-sha256","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"Actor-catalog closure digest to key the timeline by (a workspace supplies its own)","name":"--catalog-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"default":"auto","help":"The height source","name":"--height","positional":false,"possibleValues":["auto","ground","flat"],"required":false,"takesValue":true,"type":"enum","valueName":"HEIGHT"},{"commandIndex":2,"help":"Elevation of the plane for --height flat","name":"--flat-z","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"METRES"},{"commandIndex":2,"help":"Use this map directory (map.xodr + derived/ground/ground-mesh.bin) instead of the installed map found by content","name":"--map-dir","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Map cache root to search. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Write the canonical timeline here (`.gz` compresses). Default: the workspace's timeline/<sha256>.json; with --trace, nothing is written","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Build the render timeline for a workspace's trace (deterministic, content-keyed)","usage":"simforge timeline build [OPTIONS] [WORKSPACE]"},{"arguments":[],"command":"bench","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"default":"quick","help":"Which scenes to run","name":"--suite","positional":false,"possibleValues":["quick","full"],"required":false,"takesValue":true,"type":"enum","valueName":"SUITE"},{"commandIndex":1,"help":"Only these scene ids (comma-separated), from the suite's pack","name":"--scenes","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":1,"help":"Diagnostics: a render-config override (`simforge render --set` keys) on every scene. It changes the workload, so the result is recorded with its overrides and has no score (status `modified`)","name":"--set","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"KEY=VALUE"},{"commandIndex":1,"help":"The GPU to benchmark: its index in `nvidia-smi` (NVIDIA) or in the adapter list `simforge doctor` prints. Default: the renderer's choice (the first discrete GPU)","name":"--gpu","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Write the result JSON here too (default: `simforge-bench-<time>.json` in the current directory)","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"A local pack directory instead of the pinned pack (maintainers; also SIMFORGE_BENCH_PACK)","name":"--pack","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Keep every sampled frame and the session logs in this directory","name":"--keep","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Download and verify the suite's inputs (pack, map tier, actors, sky), then exit without rendering","name":"--download-only","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Run even when another process is using the GPU (the result is flagged `gpu-shared`)","name":"--allow-busy","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"default":"300","help":"Kill a scene session that makes no progress for this long (a hung GPU submission); the scene is reported failed and the remaining scenes run in a new session","name":"--stall-timeout-s","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"},{"commandIndex":1,"help":"No progress or table on stderr (the JSON result on stdout is unchanged)","name":"--quiet","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Map cache root. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Actor-asset root. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Benchmark the renderer on this machine: the Helios Score, per-factor sub-scores, frame correctness","usage":"simforge bench [OPTIONS]\n       simforge bench <COMMAND>"},{"arguments":[],"command":"bench run","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"default":"quick","help":"Which scenes to run","name":"--suite","positional":false,"possibleValues":["quick","full"],"required":false,"takesValue":true,"type":"enum","valueName":"SUITE"},{"commandIndex":1,"help":"Only these scene ids (comma-separated), from the suite's pack","name":"--scenes","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":1,"help":"Diagnostics: a render-config override (`simforge render --set` keys) on every scene. It changes the workload, so the result is recorded with its overrides and has no score (status `modified`)","name":"--set","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"KEY=VALUE"},{"commandIndex":1,"help":"The GPU to benchmark: its index in `nvidia-smi` (NVIDIA) or in the adapter list `simforge doctor` prints. Default: the renderer's choice (the first discrete GPU)","name":"--gpu","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Write the result JSON here too (default: `simforge-bench-<time>.json` in the current directory)","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"A local pack directory instead of the pinned pack (maintainers; also SIMFORGE_BENCH_PACK)","name":"--pack","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Keep every sampled frame and the session logs in this directory","name":"--keep","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Download and verify the suite's inputs (pack, map tier, actors, sky), then exit without rendering","name":"--download-only","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Run even when another process is using the GPU (the result is flagged `gpu-shared`)","name":"--allow-busy","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"default":"300","help":"Kill a scene session that makes no progress for this long (a hung GPU submission); the scene is reported failed and the remaining scenes run in a new session","name":"--stall-timeout-s","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"},{"commandIndex":1,"help":"No progress or table on stderr (the JSON result on stdout is unchanged)","name":"--quiet","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Map cache root. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Actor-asset root. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"default":"quick","help":"Which scenes to run","name":"--suite","positional":false,"possibleValues":["quick","full"],"required":false,"takesValue":true,"type":"enum","valueName":"SUITE"},{"commandIndex":2,"help":"Only these scene ids (comma-separated), from the suite's pack","name":"--scenes","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":2,"help":"Diagnostics: a render-config override (`simforge render --set` keys) on every scene. It changes the workload, so the result is recorded with its overrides and has no score (status `modified`)","name":"--set","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"KEY=VALUE"},{"commandIndex":2,"help":"The GPU to benchmark: its index in `nvidia-smi` (NVIDIA) or in the adapter list `simforge doctor` prints. Default: the renderer's choice (the first discrete GPU)","name":"--gpu","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Write the result JSON here too (default: `simforge-bench-<time>.json` in the current directory)","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":2,"help":"A local pack directory instead of the pinned pack (maintainers; also SIMFORGE_BENCH_PACK)","name":"--pack","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Keep every sampled frame and the session logs in this directory","name":"--keep","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Download and verify the suite's inputs (pack, map tier, actors, sky), then exit without rendering","name":"--download-only","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Run even when another process is using the GPU (the result is flagged `gpu-shared`)","name":"--allow-busy","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"default":"300","help":"Kill a scene session that makes no progress for this long (a hung GPU submission); the scene is reported failed and the remaining scenes run in a new session","name":"--stall-timeout-s","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"},{"commandIndex":2,"help":"No progress or table on stderr (the JSON result on stdout is unchanged)","name":"--quiet","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Map cache root. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Actor-asset root. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Run the benchmark (the default when no subcommand is given)","usage":"simforge bench run [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The baseline result","name":"a","positional":true,"required":true,"type":"path","valueName":"A.json"},{"commandIndex":2,"help":"The candidate result","name":"b","positional":true,"required":true,"type":"path","valueName":"B.json"}],"command":"bench compare","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"default":"quick","help":"Which scenes to run","name":"--suite","positional":false,"possibleValues":["quick","full"],"required":false,"takesValue":true,"type":"enum","valueName":"SUITE"},{"commandIndex":1,"help":"Only these scene ids (comma-separated), from the suite's pack","name":"--scenes","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":1,"help":"Diagnostics: a render-config override (`simforge render --set` keys) on every scene. It changes the workload, so the result is recorded with its overrides and has no score (status `modified`)","name":"--set","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"KEY=VALUE"},{"commandIndex":1,"help":"The GPU to benchmark: its index in `nvidia-smi` (NVIDIA) or in the adapter list `simforge doctor` prints. Default: the renderer's choice (the first discrete GPU)","name":"--gpu","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Write the result JSON here too (default: `simforge-bench-<time>.json` in the current directory)","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"A local pack directory instead of the pinned pack (maintainers; also SIMFORGE_BENCH_PACK)","name":"--pack","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Keep every sampled frame and the session logs in this directory","name":"--keep","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Download and verify the suite's inputs (pack, map tier, actors, sky), then exit without rendering","name":"--download-only","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Run even when another process is using the GPU (the result is flagged `gpu-shared`)","name":"--allow-busy","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"default":"300","help":"Kill a scene session that makes no progress for this long (a hung GPU submission); the scene is reported failed and the remaining scenes run in a new session","name":"--stall-timeout-s","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"},{"commandIndex":1,"help":"No progress or table on stderr (the JSON result on stdout is unchanged)","name":"--quiet","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Map cache root. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Actor-asset root. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Compare two results: per-scene time deltas against the noise of both runs, and frame identity","usage":"simforge bench compare [OPTIONS] <A.json> <B.json>"},{"arguments":[{"commandIndex":3,"help":"The pack directory (pack.json, scenarios, rigs); reference/ is (re)written","name":"pack","positional":true,"required":true,"type":"path","valueName":"PACK_DIR"}],"command":"bench pack record","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"default":"quick","help":"Which scenes to run","name":"--suite","positional":false,"possibleValues":["quick","full"],"required":false,"takesValue":true,"type":"enum","valueName":"SUITE"},{"commandIndex":1,"help":"Only these scene ids (comma-separated), from the suite's pack","name":"--scenes","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":1,"help":"Diagnostics: a render-config override (`simforge render --set` keys) on every scene. It changes the workload, so the result is recorded with its overrides and has no score (status `modified`)","name":"--set","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"KEY=VALUE"},{"commandIndex":1,"help":"The GPU to benchmark: its index in `nvidia-smi` (NVIDIA) or in the adapter list `simforge doctor` prints. Default: the renderer's choice (the first discrete GPU)","name":"--gpu","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Write the result JSON here too (default: `simforge-bench-<time>.json` in the current directory)","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"A local pack directory instead of the pinned pack (maintainers; also SIMFORGE_BENCH_PACK)","name":"--pack","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Keep every sampled frame and the session logs in this directory","name":"--keep","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Download and verify the suite's inputs (pack, map tier, actors, sky), then exit without rendering","name":"--download-only","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Run even when another process is using the GPU (the result is flagged `gpu-shared`)","name":"--allow-busy","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"default":"300","help":"Kill a scene session that makes no progress for this long (a hung GPU submission); the scene is reported failed and the remaining scenes run in a new session","name":"--stall-timeout-s","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"},{"commandIndex":1,"help":"No progress or table on stderr (the JSON result on stdout is unchanged)","name":"--quiet","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Map cache root. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Actor-asset root. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":3,"help":"A label for the reference machine (e.g. \"RTX 3080 desktop\")","name":"--label","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"LABEL"},{"commandIndex":3,"help":"","name":"--gpu","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":3,"help":"","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":3,"help":"","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":3,"help":"Record from this result of a run kept in `<PACK_DIR>/reference/.record` instead of running","name":"--from-result","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"RESULT.json"},{"commandIndex":3,"help":"Record only these scenes (comma-separated); the others keep their reference","name":"--scenes","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"ID"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Record the reference (timings, frame hashes, sample frames) into a pack directory on this machine","usage":"simforge bench pack record [OPTIONS] --label <LABEL> <PACK_DIR>"},{"arguments":[{"commandIndex":3,"help":"The pack directory","name":"pack","positional":true,"required":true,"type":"path","valueName":"PACK_DIR"}],"command":"bench pack seal","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"default":"quick","help":"Which scenes to run","name":"--suite","positional":false,"possibleValues":["quick","full"],"required":false,"takesValue":true,"type":"enum","valueName":"SUITE"},{"commandIndex":1,"help":"Only these scene ids (comma-separated), from the suite's pack","name":"--scenes","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":1,"help":"Diagnostics: a render-config override (`simforge render --set` keys) on every scene. It changes the workload, so the result is recorded with its overrides and has no score (status `modified`)","name":"--set","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"KEY=VALUE"},{"commandIndex":1,"help":"The GPU to benchmark: its index in `nvidia-smi` (NVIDIA) or in the adapter list `simforge doctor` prints. Default: the renderer's choice (the first discrete GPU)","name":"--gpu","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Write the result JSON here too (default: `simforge-bench-<time>.json` in the current directory)","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"A local pack directory instead of the pinned pack (maintainers; also SIMFORGE_BENCH_PACK)","name":"--pack","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Keep every sampled frame and the session logs in this directory","name":"--keep","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Download and verify the suite's inputs (pack, map tier, actors, sky), then exit without rendering","name":"--download-only","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Run even when another process is using the GPU (the result is flagged `gpu-shared`)","name":"--allow-busy","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"default":"300","help":"Kill a scene session that makes no progress for this long (a hung GPU submission); the scene is reported failed and the remaining scenes run in a new session","name":"--stall-timeout-s","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"},{"commandIndex":1,"help":"No progress or table on stderr (the JSON result on stdout is unchanged)","name":"--quiet","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Map cache root. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Actor-asset root. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":3,"help":"Write the closure root (closures/<digest>.json, blobs/sha256/..) here, ready to publish","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"DIR"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Seal a pack directory as a content-addressed closure (writes the closure document and prints its pin)","usage":"simforge bench pack seal [OPTIONS] --out <DIR> <PACK_DIR>"},{"arguments":[{"commandIndex":3,"help":"The pack directory (its scenarios' traces name the catalog ids)","name":"pack","positional":true,"required":true,"type":"path","valueName":"PACK_DIR"}],"command":"bench pack actors","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"default":"quick","help":"Which scenes to run","name":"--suite","positional":false,"possibleValues":["quick","full"],"required":false,"takesValue":true,"type":"enum","valueName":"SUITE"},{"commandIndex":1,"help":"Only these scene ids (comma-separated), from the suite's pack","name":"--scenes","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":1,"help":"Diagnostics: a render-config override (`simforge render --set` keys) on every scene. It changes the workload, so the result is recorded with its overrides and has no score (status `modified`)","name":"--set","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"KEY=VALUE"},{"commandIndex":1,"help":"The GPU to benchmark: its index in `nvidia-smi` (NVIDIA) or in the adapter list `simforge doctor` prints. Default: the renderer's choice (the first discrete GPU)","name":"--gpu","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Write the result JSON here too (default: `simforge-bench-<time>.json` in the current directory)","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"A local pack directory instead of the pinned pack (maintainers; also SIMFORGE_BENCH_PACK)","name":"--pack","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Keep every sampled frame and the session logs in this directory","name":"--keep","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Download and verify the suite's inputs (pack, map tier, actors, sky), then exit without rendering","name":"--download-only","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Run even when another process is using the GPU (the result is flagged `gpu-shared`)","name":"--allow-busy","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"default":"300","help":"Kill a scene session that makes no progress for this long (a hung GPU submission); the scene is reported failed and the remaining scenes run in a new session","name":"--stall-timeout-s","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"},{"commandIndex":1,"help":"No progress or table on stderr (the JSON result on stdout is unchanged)","name":"--quiet","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Map cache root. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Actor-asset root. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":3,"help":"Write the closure root (closures/<digest>.json, blobs/sha256/..) here, ready to publish","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":3,"help":"The closure to cut from (sha256 and byte size of its document). Default: the SDK's pinned actor closure","name":"--base","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256:BYTES"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Cut the pack's actor closure (only its scenes' catalog entries and models, licences carried) from the SDK's closure","usage":"simforge bench pack actors [OPTIONS] --out <DIR> <PACK_DIR>"},{"arguments":[{"commandIndex":2,"help":"The recording (JSON, optionally gzipped). With --cloud: The log: a recording (JSON, optionally gzipped) or a ROS 2 MCAP lidar log","name":"recording","positional":true,"required":true,"type":"path","valueName":"RECORDING"}],"command":"import log","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The installed map: a map directory, or name[@version] under the maps cache (semantic profile)","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"DIR|NAME@VERSION"},{"commandIndex":2,"help":"The package directory to write (created; must be empty if it exists)","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"The register step's import report (`simforge.import-report/v1` fields: methods, registration, laneMatch, droppedActors), merged into the package's","name":"--report","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"REPORT.JSON"},{"commandIndex":2,"help":"Map cache root to search for NAME@VERSION. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Actor-asset root whose closure restricts catalog binding to renderable models. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"The actor closure the package pins (default: this CLI's pinned public closure)","name":"--actor-closure","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"Simulate without map colliders when the map publishes none (recorded; the default refuses)","name":"--allow-no-colliders","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"execution":"cloud","help":"The scenario's name. Default: the file's name","name":"--name","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NAME"},{"commandIndex":2,"execution":"cloud","help":"Explicit maximum cloud cost in cents","name":"--max-cost","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"CENTS"},{"commandIndex":2,"execution":"cloud","help":"MCAP only: the lidar topic, when the log has several","name":"--lidar-topic","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TOPIC"},{"commandIndex":2,"execution":"cloud","help":"MCAP only: the GNSS topic, when the log has several","name":"--gnss-topic","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TOPIC"},{"commandIndex":2,"execution":"cloud","help":"MCAP only: the ego's box in metres, length,width,height (perceive's default otherwise)","name":"--ego-dims","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"number","valueName":"L,W,H"},{"commandIndex":2,"execution":"cloud","help":"MCAP only: how far the ego box's centre is ahead of base_link (the rear axle), metres","name":"--ego-rear-axle-to-centre","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"METRES"}],"status":"available","summary":"A recording (simforge.recording/v1 or log-scene/v1) as a scenario package: scenario, recording, trace, import report","usage":"simforge import log [OPTIONS] --map <DIR|NAME@VERSION> --out <DIR> <RECORDING>"},{"arguments":[{"commandIndex":2,"help":"The OpenSCENARIO 1.x XML file; its catalogs and OpenDRIVE are read beside it","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE.xosc"}],"command":"import openscenario","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The package directory to write (created; must be empty if it exists)","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"The map version: a map directory, or name[@version] under the maps cache. It must hold the file's OpenDRIVE. Default: the installed map whose OpenDRIVE has the file's sha256","name":"--map-version","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"DIR|NAME@VERSION"},{"commandIndex":2,"help":"The ego entity (default: one named ego or hero, else the first vehicle)","name":"--ego","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"ENTITY"},{"commandIndex":2,"help":"The clip, when the storyboard does not stop at a simulation time","name":"--clip-seconds","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"S"},{"commandIndex":2,"help":"Map cache root to search. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Actor-asset root whose closure restricts catalog binding to renderable models. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"The actor closure the package pins (default: this CLI's pinned public closure)","name":"--actor-closure","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"Simulate without map colliders when the map publishes none (recorded; the default refuses)","name":"--allow-no-colliders","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"An OpenSCENARIO 1.x XML file as a scenario package; its map is found by the OpenDRIVE's sha256, and every element it cannot represent is refused by name","usage":"simforge import openscenario [OPTIONS] --out <DIR> <FILE.xosc>"},{"arguments":[{"commandIndex":2,"help":"The trace (`trace.json[.gz]`), or a workspace/package directory (its `simulation/trace.json.gz`)","name":"trace","positional":true,"required":true,"type":"path","valueName":"TRACE|DIR"}],"command":"recording from-trace","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The recording to write (gzipped canonical JSON; the conventional name is `<sha256>.rec.json.gz`)","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":2,"help":"The producer recorded in `source.producer` (id and version)","name":"--producer","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"PRODUCER"},{"commandIndex":2,"default":"","help":"An opaque reference to the rollout (`source.clipRef`)","name":"--clip-ref","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"CLIP_REF"},{"commandIndex":2,"help":"The licence of the rollout's inputs, when it carries one","name":"--license","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"LICENSE"},{"commandIndex":2,"help":"The ego actor id (default: the trace's metricSubject)","name":"--ego","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"EGO"},{"commandIndex":2,"help":"The map release version the trace ran on (`map.version`), when known","name":"--map-version","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Save a simulation's trace (a rollout) as a simforge.recording/v1 recording","usage":"simforge recording from-trace [OPTIONS] --out <FILE> --producer <PRODUCER> <TRACE|DIR>"},{"arguments":[{"commandIndex":2,"help":"The recording (simforge.recording/v1 or log-scene/v1, optionally gzipped)","name":"recording","positional":true,"required":true,"type":"path","valueName":"RECORDING"}],"command":"recording inspect","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Read a recording through the contract: its digest, map, size and lineage","usage":"simforge recording inspect [OPTIONS] <RECORDING>"},{"arguments":[{"commandIndex":2,"help":"The recording (simforge.recording/v1 or log-scene/v1, optionally gzipped); registered on the map","name":"recording","positional":true,"required":true,"type":"path","valueName":"RECORDING"}],"command":"recording scaffold","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The map the recording was registered on: a map directory, or name[@version] under the maps cache (semantic profile)","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"DIR|NAME@VERSION"},{"commandIndex":2,"help":"The package directory to write (created; must be empty if it exists)","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"The scenario's name (`meta.name`; default \"<producer> <clipRef>\")","name":"--title","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NAME"},{"commandIndex":2,"help":"The report the recording's `derivedFrom.reportSha256` names, packaged byte for byte (`transfer-report.json` or `import-report.json`, by its schema)","name":"--report","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"REPORT.JSON"},{"commandIndex":2,"help":"Map cache root to search for NAME@VERSION. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Actor-asset root whose closure restricts catalog binding to renderable models. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"The actor closure the package pins (default: this CLI's pinned public closure)","name":"--actor-closure","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"A registered recording as a scenario package that carries no simulation: the scaffolded scenario, the recording it pins and the report of the operation that made it","usage":"simforge recording scaffold [OPTIONS] --map <DIR|NAME@VERSION> --out <DIR> <RECORDING>"},{"arguments":[{"commandIndex":2,"help":"The recording (simforge.recording/v1, or simforge.log-scene/v1; JSON, optionally gzipped)","name":"scene","positional":true,"required":true,"type":"path","valueName":"SCENE.JSON"}],"command":"log import","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The installed map: a map directory, or name[@version] under the maps cache (semantic profile)","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"DIR|NAME@VERSION"},{"commandIndex":2,"help":"The workspace to write (created; must be empty if it exists)","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"default":"replay","help":"","name":"--mode","positional":false,"possibleValues":["replay"],"required":false,"takesValue":true,"type":"enum","valueName":"MODE"},{"commandIndex":2,"help":"Map cache root to search for NAME@VERSION. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Actor-asset root whose closure restricts catalog binding to renderable models. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"The actor closure the workspace pins (default: this CLI's pinned public closure)","name":"--actor-closure","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"Simulate without map colliders when the map publishes none (recorded; the default refuses)","name":"--allow-no-colliders","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Scaffold and compile a simforge.recording/v1 (or log-scene/v1) recording into a simulated, renderable workspace","usage":"simforge log import [OPTIONS] --map <DIR|NAME@VERSION> --out <DIR> <SCENE.JSON>"},{"arguments":[],"command":"log import-many","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The jobs: `{\"jobs\": [{\"scene\": SCENE.JSON, \"map\": DIR|NAME@VERSION, \"out\": DIR}, ...]}`, run in order","name":"--jobs","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"JOBS.JSON"},{"commandIndex":2,"help":"Read one job object per stdin line and write one result line per job to stdout as it ends (until EOF)","name":"--stream","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"default":"replay","help":"","name":"--mode","positional":false,"possibleValues":["replay"],"required":false,"takesValue":true,"type":"enum","valueName":"MODE"},{"commandIndex":2,"help":"Map cache root to search for NAME@VERSION. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Actor-asset root whose closure restricts catalog binding to renderable models. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"The actor closure every workspace pins (default: this CLI's pinned public closure)","name":"--actor-closure","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"Simulate without map colliders when the map publishes none (recorded; the default refuses)","name":"--allow-no-colliders","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Run many `log import` jobs in one process (each map's world loaded once); per job the same workspace and result","usage":"simforge log import-many [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The scenario package or workspace directory (a package without a simulation is compiled from its document and recordings)","name":"workspace","positional":true,"required":true,"type":"path","valueName":"WORKSPACE"}],"command":"env serve","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Local endpoint path; Windows derives a same-user named pipe from this path","name":"--socket","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"PATH"},{"commandIndex":2,"help":"The sensor rig (`simforge.render-rig/v1`, as `simforge render` takes it)","name":"--rig","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"RIG.JSON"},{"commandIndex":2,"help":"Serve the episode without a renderer (observations are the engine's only)","name":"--no-sensors","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Restrict observations to state, sensors, or both; omission preserves the native layout","name":"--observation-profile","positional":false,"possibleValues":["state","sensors","both"],"required":false,"takesValue":true,"type":"enum","valueName":"OBSERVATION_PROFILE"},{"commandIndex":2,"default":"training","help":"The render preset for observations (`schematic` is offline `simforge render` only)","name":"--preset","positional":false,"possibleValues":["training","showcase"],"required":false,"takesValue":true,"type":"enum","valueName":"PRESET"},{"commandIndex":2,"default":"rgb","help":"Camera passes rendered per observation, comma-separated","name":"--passes","positional":false,"possibleValues":["rgb","hdr","id","depth","semantic"],"repeatable":true,"required":false,"takesValue":true,"type":"enum","valueName":"PASSES"},{"commandIndex":2,"default":"uastc-full","help":"The staged texture tier","name":"--textures","positional":false,"possibleValues":["uastc-full","bc7-512"],"required":false,"takesValue":true,"type":"enum","valueName":"TEXTURES"},{"commandIndex":2,"help":"Episode configuration (camelCase `EpisodeConfig`, as the gym's episode specs carry it)","name":"--episode","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"EPISODE.JSON"},{"commandIndex":2,"help":"Policy decisions per second (overrides the episode's `decisionHz`)","name":"--decision-hz","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"HZ"},{"commandIndex":2,"default":"64","help":"Rows of the `objects` observation","name":"--max-objects","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Render on a software (CPU) Vulkan adapter such as lavapipe, explicitly","name":"--allow-software-adapter","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Use this map directory instead of the installed map found by content","name":"--map-dir","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Map cache root to search. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Actor-asset root. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"The actor closure to bind, instead of the workspace's `catalog.actorClosureDigest`","name":"--actor-closure","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The workspace's private model layer (an actor closure in the same store) for `workspace.*` models, instead of the workspace's `simforge.actorLayer` extension","name":"--actor-layer","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"A texture budget in bytes; without it admission is skipped (reported)","name":"--vram-budget","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"BYTES"},{"commandIndex":2,"help":"Where the renderer's diagnostics go. Default: `<socket>.log`","name":"--log","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":2,"help":"Render on the installed map release even where its members differ from the workspace's map closure (recorded; the default refuses)","name":"--allow-map-drift","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"default":"8","help":"Maximum concurrent client sessions sharing one prewarmed renderer. Training defaults to eight sessions per map renderer","name":"--max-sessions","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"default":"512","help":"Size of the renderer's shared-memory frame ring, MiB","name":"--shm-size-mb","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"MIB"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Serve reset/step/observe episodes over a local socket or named pipe","usage":"simforge env serve [OPTIONS] --socket <PATH> <WORKSPACE>"},{"arguments":[{"commandIndex":2,"help":"The package file","name":"package","positional":true,"required":true,"type":"path","valueName":"PACKAGE.ZIP"}],"command":"package inspect","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Print a package's manifest, producer and members without unpacking it","usage":"simforge package inspect [OPTIONS] <PACKAGE.ZIP>"},{"arguments":[{"commandIndex":2,"help":"The package file","name":"package","positional":true,"required":true,"type":"path","valueName":"PACKAGE.ZIP"}],"command":"package verify","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Verify the manifest and every member digest; exit 2 on any mismatch","usage":"simforge package verify [OPTIONS] <PACKAGE.ZIP>"},{"arguments":[{"commandIndex":2,"help":"The package file","name":"package","positional":true,"required":true,"type":"path","valueName":"PACKAGE.ZIP"}],"command":"package import","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The workspace directory to create (must not exist, or be empty)","name":"--into","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Map cache root to check for the package's map. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Actor-asset root to check for the package's actor closure. Default: SIMFORGE_ACTOR_ASSETS_ROOT, then $XDG_DATA_HOME/simforge/actor-assets","name":"--assets-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Fetch nothing: report the map and actor closure this machine still lacks","name":"--offline","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Map registry to resolve the package's map from. Staff local builds support s3:// with AWS credentials. Default: SIMFORGE_MAPS_REGISTRY, then the staff map registry","name":"--registry","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"URL"},{"commandIndex":2,"default":"full","help":"How to install a map the cache lacks: `full` (every profile) or `planar` (`maps pull --profile planar --with ground`: the road network, its planar derivatives, the static colliders and the ground, enough to simulate and render in 2D; a 3D render needs `full`). Either satisfies a planar import; only a full install satisfies a full one","name":"--profile","positional":false,"possibleValues":["full","planar"],"required":false,"takesValue":true,"type":"enum","valueName":"PROFILE"},{"commandIndex":2,"help":"Asset store for the actor closure. Default: SIMFORGE_ACTOR_ASSETS_BASE_URL, then the public store","name":"--assets-base-url","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"URL"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Verify, then unpack into a local workspace","usage":"simforge package import [OPTIONS] --into <DIR> <PACKAGE.ZIP>"},{"arguments":[{"commandIndex":2,"help":"The v2 template","name":"template","positional":true,"required":true,"type":"path","valueName":"TEMPLATE"}],"command":"sites match","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"One installed map","name":"--map","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"Several installed maps, comma-separated, in this order","name":"--maps","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"MAPS"},{"commandIndex":2,"help":"Every installed map","name":"--all-maps","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Drop sites scoring below this","name":"--min-score","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"SCORE"},{"commandIndex":2,"help":"Keep at most this many sites per map (reported as maxSitesPerMap)","name":"--max-sites","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Also list up to 25 rejected sites per map, with why","name":"--rejected","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Dense site index: corridor origins every M metres of road instead of one per (road, 200 m cell, direction)","name":"--site-spacing-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"M"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Rank the concrete sites a template's anchor matches on installed maps (exit 2 when none)","usage":"simforge sites match [OPTIONS] <TEMPLATE>"},{"arguments":[{"commandIndex":1,"help":"The v2 template","name":"template","positional":true,"required":true,"type":"path","valueName":"TEMPLATE"}],"command":"instantiate","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"help":"The installed map","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":1,"help":"A site id from `simforge sites match`","name":"--site","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SITE"},{"commandIndex":1,"help":"The scenario's seed identity (`simulation.seed`), from which the cell seed derives","name":"--seed","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SEED"},{"commandIndex":1,"help":"The parameter draw index (a batch cell); pinned with the parameter block's frozen version","name":"--draw","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Also write the pinned scenario here","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Template x site x draw -> one scenario pinned to them","usage":"simforge instantiate [OPTIONS] --map <MAP> --site <SITE> <TEMPLATE>"},{"arguments":[],"command":"template new","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Also write the template here","name":"--out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":2,"help":"Pre-bind the skeleton to an installed map (`anchor.pin`, `sourceMap`)","name":"--map","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"Pin a site id too (requires --map)","name":"--site","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SITE"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Emit a minimal schema-valid v2 template skeleton (deterministic)","usage":"simforge template new [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The v2 template","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"}],"command":"template validate","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Run the map checks against the best site on this installed map","name":"--map","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"Bind this site instead of the best one (with --map)","name":"--site","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SITE"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Schema + tier-1 validation; map checks against a matched site with --map (exit 2 on any error)","usage":"simforge template validate [OPTIONS] <FILE>"},{"arguments":[],"command":"locations find","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The installed map","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"Location types, comma-separated (any of)","name":"--type","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"TYPES"},{"commandIndex":2,"help":"Subtypes, comma-separated (any of)","name":"--subtype","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"SUBTYPES"},{"commandIndex":2,"help":"Tags, comma-separated (any of)","name":"--tags","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"TAGS"},{"commandIndex":2,"help":"Affordances, comma-separated (any of)","name":"--affordances","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"AFFORDANCES"},{"commandIndex":2,"help":"Fact predicates, comma-separated, all of: `k=v`, `k>=v`, `k<=v`, `k!=v`, `k>v`, `k<v`, `k~v`, `k=?`, `k=!?`","name":"--facts","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"FACTS"},{"commandIndex":2,"help":"Only locations within --within-m of this handle or id, nearest first","name":"--near","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"HANDLE"},{"commandIndex":2,"help":"Radius for --near, metres (default 250)","name":"--within-m","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"M"},{"commandIndex":2,"help":"At most this many results (default 25, cap 200)","name":"--limit","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"N"},{"commandIndex":2,"help":"Drop results within this many metres of an already selected one","name":"--diversity-m","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"M"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Structured query: type, subtype, tags, affordances, facts, proximity","usage":"simforge locations find [OPTIONS] --map <MAP>"},{"arguments":[{"commandIndex":2,"help":"A handle (`junction/rd-38-rd-34`) or id (`loc_...`)","name":"ref","positional":true,"required":true,"type":"string","valueName":"HANDLE_OR_ID"}],"command":"locations get","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The installed map","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"Add the natural-language description an agent reads before authoring","name":"--describe","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"One location by handle or id (optionally with a description paragraph)","usage":"simforge locations get [OPTIONS] --map <MAP> <HANDLE_OR_ID>"},{"arguments":[{"commandIndex":2,"help":"Free text (\"the crosswalk by the school\")","name":"text","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"TEXT"}],"command":"locations resolve","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The installed map","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"At most this many results (default 8)","name":"--limit","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Free text -> ranked handles (exit 2 when nothing matched)","usage":"simforge locations resolve [OPTIONS] --map <MAP> [TEXT]..."},{"arguments":[{"commandIndex":2,"help":"The portable v2 template","name":"template","positional":true,"required":true,"type":"path","valueName":"TEMPLATE"}],"command":"variation fork","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The installed target map","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"A site id from `simforge sites match`","name":"--site","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"SITE"},{"commandIndex":2,"help":"The scenario's seed identity (`simulation.seed`)","name":"--seed","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SEED"},{"commandIndex":2,"help":"The parameter draw index","name":"--draw","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"The variation directory to write","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"DIR"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Portable template x target site -> an executable child variation with lineage","usage":"simforge variation fork [OPTIONS] --map <MAP> --site <SITE> --out <DIR> <TEMPLATE>"},{"arguments":[{"commandIndex":1,"help":"The source: a recording (simforge.recording/v1 or log-scene/v1, optionally gzipped), a v2 scenario, or a package directory holding one","name":"source","positional":true,"required":true,"type":"path","valueName":"SOURCE"}],"command":"transfer","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":1,"help":"The target map: a map directory, or name[@version] under the maps cache (semantic profile)","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"DIR|NAME@VERSION"},{"commandIndex":1,"help":"The source's map (default: the map the source names): a map directory, name[@version], or a bare OpenDRIVE file for a recording","name":"--source-map","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"DIR|NAME@VERSION|FILE.xodr"},{"commandIndex":1,"help":"A recording the scenario's replay routes pin (repeatable)","name":"--recording","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"Transfer from the source's root: follow its recording's `derivedFrom` (a transfer's warped recording, a scenario's rollout of the one recording it replays) through the `--recording` files to the recording it started from, and transfer that onto the map. The source's own scenario content (its edits) is not carried; the report records the chain in `source.root`","name":"--from-root","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"default":"network","help":"Where recorded motion looks for sites","name":"--sites","positional":false,"possibleValues":["network","corridor","same"],"required":false,"takesValue":true,"type":"enum","valueName":"SITES"},{"commandIndex":1,"default":"pure","help":"Which recorded actors transfer","name":"--profile","positional":false,"possibleValues":["pure","generalized","key-only"],"required":false,"takesValue":true,"type":"enum","valueName":"PROFILE"},{"commandIndex":1,"default":"any","help":"How a crosswalk crossing must land","name":"--crossing","positional":false,"possibleValues":["any","faithful"],"required":false,"takesValue":true,"type":"enum","valueName":"CROSSING"},{"commandIndex":1,"help":"Sites tried (transferred, gated and simulated) before giving up [default: 6 per --max-sites]","name":"--max-try","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"default":"1","help":"Distinct accepted sites to transfer onto (recorded motion), ranked; more than one writes each to site-<rank>/ under --out","name":"--max-sites","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"With --max-sites: one site per cell of this size (metres) and heading quadrant [default: 200]. Smaller admits near-copies of the same drive","name":"--site-cell-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"M"},{"commandIndex":1,"help":"With --max-sites: no two placements whose egos' target paths come within this distance (metres) [default: 10]","name":"--min-path-separation-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"M"},{"commandIndex":1,"help":"The output directory (created; must be empty if it exists)","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Map cache root to search for NAME@VERSION. Default: SIMFORGE_MAPS_CACHE_ROOT, then $XDG_DATA_HOME/simforge/maps","name":"--cache-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":1,"help":"Simulate without map colliders when the map publishes none (recorded; the default refuses)","name":"--allow-no-colliders","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"default":"32400","help":"Last-resort wall-clock limit, seconds: a transfer still running then fails whole (`transfer_budget_exceeded`, nothing written). Set far above any healthy transfer (about 10x the slowest seen); what a transfer tries is bounded by --max-try and the import's rounds, never by time, so its result does not depend on the machine","name":"--budget-s","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"SECONDS"},{"commandIndex":1,"default":"motion","help":"How the scenario moves to the target map","name":"--mode","positional":false,"possibleValues":["motion","semantic"],"required":false,"takesValue":true,"type":"enum","valueName":"MODE"},{"commandIndex":1,"help":"Allow an experimental --mode","name":"--experimental","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"default":"as-source","help":"Semantic mode: the target approach classes accepted, comma separated (two_way_stop_minor, two_way_stop_major, all_way_stop, signal, yield_minor, yield_major, stop_line_only, uncontrolled, mixed), or `as-source`. A class other than the source's is recorded as a requested substitution","name":"--target-control","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"CLASS,...|as-source"},{"commandIndex":1,"help":"Semantic mode: also fit a four-arm source onto a T-junction whose stem is the ego's approach; the roles on the source's opposite arm are left out (recorded), and each such placement is tagged `t_junction`","name":"--t-junction","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"","name":"--policy","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"","name":"--policy-version","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"VERSION"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"execution":"cloud","help":"The immutable revision of a hosted scenario SOURCE","name":"--revision","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"REVISION_ID"},{"commandIndex":1,"execution":"cloud","help":"The new scenario's name. Default: `<source title> · <target map>`","name":"--name","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NAME"},{"commandIndex":1,"execution":"cloud","help":"Explicit maximum cloud cost in cents","name":"--max-cost","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"CENTS"},{"commandIndex":1,"execution":"cloud","help":"Wait for the transfer to finish","name":"--wait","positional":false,"possibleValues":["true","false"],"required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Move a scenario or recording onto another map: recorded tracks warped through lane frames, behaviour re-bound by the matcher; simulated and gated, with a transfer report. Locally it needs the map's odr derivative, which `simforge maps pull` does not install yet: run it with --cloud","usage":"simforge transfer [OPTIONS] --map <DIR|NAME@VERSION> --out <DIR> <SOURCE>"},{"arguments":[{"commandIndex":1,"help":"The v2 template","name":"template","positional":true,"required":true,"type":"path","valueName":"TEMPLATE"}],"command":"batch","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"help":"One installed map","name":"--map","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":1,"help":"Several installed maps, comma-separated, in this order","name":"--maps","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"MAPS"},{"commandIndex":1,"help":"Every installed map","name":"--all-maps","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Parameter draws per site","name":"--draws","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"The batch directory (cells and batch-summary.json)","name":"--out","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"DIR"},{"commandIndex":1,"help":"Drop sites scoring below this","name":"--min-score","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"SCORE"},{"commandIndex":1,"help":"Keep at most this many sites per map","name":"--max-sites","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Worker threads (default min(4, cpus - 1))","name":"--concurrency","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Do not write the per-cell traces","name":"--no-trace","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Reject filters: critical | negative-control | all","name":"--filter","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MODE"},{"commandIndex":1,"help":"The trivially-safe TTC threshold, seconds","name":"--trivial-ttc","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"S"},{"commandIndex":1,"help":"Re-run every cell, even one whose results still hold","name":"--force","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"Generated background traffic: off | light | moderate | city | heavy","name":"--ambient","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"PRESET"},{"commandIndex":1,"help":"Ambient density override, vehicles per km of eligible lane","name":"--ambient-density","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":1,"help":"Ambient actor cap","name":"--ambient-max-actors","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Ambient candidate radius around the choreography, metres","name":"--ambient-radius-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"M"},{"commandIndex":1,"help":"Ambient population seed","name":"--ambient-seed","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SEED"},{"commandIndex":1,"help":"Seconds of ambient-only warm-up before t = 0 (default 20 with --ambient)","name":"--ambient-settle","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"S"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Sites x draws matrix of a template: instantiate -> simulate -> evaluate per cell, resumable","usage":"simforge batch [OPTIONS] --out <DIR> <TEMPLATE>"},{"arguments":[{"commandIndex":1,"help":"The trace (`.trace.json` or `.trace.json.gz`, any released format). With --cloud: The hosted scenario to evaluate","name":"trace","positional":true,"required":true,"type":"path","valueName":"TRACE"}],"command":"evaluate","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":1,"help":"Reject filters: critical | negative-control | all","name":"--filter","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MODE"},{"commandIndex":1,"help":"The trivially-safe TTC threshold, seconds","name":"--trivial-ttc","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"S"},{"commandIndex":1,"help":"Reject any collision","name":"--reject-collisions","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"help":"","name":"--motion-audit-version","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MOTION_AUDIT_VERSION"},{"commandIndex":1,"help":"An intent rubric (IntentRubric JSON) evaluated alongside criticality","name":"--rubric","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"Write the context-blind review packet here (needs --rubric)","name":"--blind-review-out","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"Measure red-light and stop-bar compliance on this installed map directory (`map.xodr`, `derived/odr/locations-v2.json.gz`); reported as `trafficLaw`","name":"--traffic-law","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"MAP_DIR"},{"commandIndex":1,"help":"An actor to measure (repeatable; default: the trace's metric subject)","name":"--traffic-law-actor","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"string","valueName":"ACTOR"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"execution":"cloud","help":"The scenario's immutable revision Required with --cloud.","name":"--revision","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"REVISION_ID"},{"commandIndex":1,"execution":"cloud","help":"The evaluation mode","name":"--mode","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MODE"},{"commandIndex":1,"execution":"cloud","help":"Wait for the run to finish","name":"--wait","positional":false,"possibleValues":["true","false"],"required":false,"takesValue":false,"type":"bool"},{"commandIndex":1,"execution":"cloud","help":"Explicit maximum cloud cost in cents; required unless --dry-run","name":"--max-cost","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"CENTS"}],"status":"available","summary":"The reject filters (and an optional intent rubric) over a trace; exit 2 when it rejects","usage":"simforge evaluate [OPTIONS] <TRACE>"},{"arguments":[{"commandIndex":2,"help":"The instance: a scenario cell, a pinned scenario (compiled), or a bare SimScenarioInput","name":"instance","positional":true,"required":true,"type":"path","valueName":"INSTANCE"},{"commandIndex":2,"help":"The trace (`.trace.json` or `.trace.json.gz`)","name":"trace","positional":true,"required":true,"type":"path","valueName":"TRACE"}],"command":"evidence verify","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Check that a trace is the run of an instance (exit 2 on any mismatch)","usage":"simforge evidence verify [OPTIONS] <INSTANCE> <TRACE>"},{"arguments":[{"commandIndex":2,"help":"The cell (`cell.json` or `<stem>.cell.json`, beside its scenario)","name":"cell","positional":true,"required":true,"type":"path","valueName":"CELL"}],"command":"cell refresh","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Compile a cell's scenario again and rewrite its cell.json and input.json cache","usage":"simforge cell refresh [OPTIONS] <CELL>"},{"arguments":[{"commandIndex":2,"help":"The scenario-instance envelope","name":"instance","positional":true,"required":true,"type":"path","valueName":"INSTANCE"}],"command":"cell migrate","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The directory to write cell.json, input.json (and scenario.json) into","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"The template the instance was compiled from (checked against its templateDigest), to recover the pinned scenario","name":"--template","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Convert a scenario-instance envelope (an archived instance.json) into a cell, one way","usage":"simforge cell migrate [OPTIONS] --out <DIR> <INSTANCE>"},{"arguments":[{"commandIndex":1,"help":"A v2 template or an instance (a scenario cell, a pinned scenario or a bare SimScenarioInput)","name":"file","positional":true,"required":true,"type":"path","valueName":"INSTANCE|TEMPLATE"}],"command":"validate","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"help":"1: static checks (default); 2: one engine pass with invariant residuals","name":"--tier","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"The installed map (tier-1 map checks; required for a tier-2 template)","name":"--map","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":1,"help":"Bind this site instead of the best one","name":"--site","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SITE"},{"commandIndex":1,"help":"The parameter draw index (tier 2, template)","name":"--draw","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":1,"help":"Override the per-cell parameter seed (tier 2, template)","name":"--seed","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SEED"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Tier 1 (static) or tier 2 (one engine pass + invariant residuals) validation of an instance or template","usage":"simforge validate [OPTIONS] <INSTANCE|TEMPLATE>"},{"arguments":[],"command":"scenario new","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The installed map (`simforge maps pull <map>@<version>`)","name":"--map","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"Where to write the scenario document","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":2,"default":"Untitled scenario","help":"Scenario name","name":"--name","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NAME"},{"commandIndex":2,"default":"20","help":"Clip length, seconds (3 to 120)","name":"--clip-seconds","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"S"},{"commandIndex":2,"help":"Creation timestamp `YYYY-MM-DDTHH:MM:SS.mmmZ` (default: now), for reproducible documents","name":"--created-at","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TIME"},{"commandIndex":2,"help":"Overwrite an existing file","name":"--force","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Create an empty scenario on an installed map (revision 0)","usage":"simforge scenario new [OPTIONS] --map <MAP> --out <FILE>"},{"arguments":[],"command":"scenario ops list","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Every authoring operation: id, command, summary, required map context","usage":"simforge scenario ops list [OPTIONS]"},{"arguments":[{"commandIndex":3,"help":"Operation id (`addActor`) or command (`add-actor`)","name":"operation","positional":true,"required":true,"type":"string","valueName":"OPERATION"}],"command":"scenario ops show","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"One operation: input and result schemas, flags, applicability and refusal codes","usage":"simforge scenario ops show [OPTIONS] <OPERATION>"},{"arguments":[],"command":"scenario actors","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"The built-in actors operations place: class, dimensions, ego and static eligibility","usage":"simforge scenario actors [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply add-actor","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Presentation body colour `#rrggbb`.","name":"--body-color","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"BODY_COLOR"},{"commandIndex":3,"help":"Built-in actor (`simforge scenario actors`): vehicle.sedan, pedestrian.adult, ...","name":"--catalog-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"CATALOG_ID"},{"commandIndex":3,"help":"Heading in the scene frame; default: the lane heading or the actor class default. [rad]","name":"--heading-rad","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"New actor id (never allocated implicitly).","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Display label.","name":"--label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"LABEL"},{"commandIndex":3,"help":"Lateral offset in the lane, positive to the left of travel. [m]","name":"--lateral-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Snap to the nearest genuinely opposing lane.","name":"--opposing","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":3,"help":"Accept overlap with another actor (free/static actors only; refused for moving road vehicles).","name":"--overlap-override","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":3,"help":"Initial speed; default: posted limit for road vehicles. [0..160 km/h]","name":"--speed-kph","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Place as a static actor (no motion, zero speed).","name":"--static","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":3,"help":"Explicit height; otherwise the map ground at (x,z) is used and refused without ground. [m]","name":"--y","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Semantic lane `road:section:lane` (with s).","name":"--lane-rsl","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"LANE_RSL"},{"commandIndex":3,"help":"Station along laneRsl in storage direction. [>= 0 m]","name":"--s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame x (east). [m]","name":"--x","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame z (minus north). [m]","name":"--z","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Place a new actor: a road vehicle on a semantic lane, or a pedestrian/free static actor at a scene point.","usage":"simforge scenario apply <FILE> add-actor [OPTIONS] --catalog-id <CATALOG_ID> --id <ID> <--lane-rsl <LANE_RSL>|--x <N>> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply move-actor","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Heading in the scene frame; default: the lane heading or the actor class default. [rad]","name":"--heading-rad","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Actor to move.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Lateral offset in the lane, positive to the left of travel. [m]","name":"--lateral-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Accept overlap with another actor (free/static actors only; refused for moving road vehicles).","name":"--overlap-override","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":3,"help":"Explicit height; otherwise the map ground at (x,z) is used and refused without ground. [m]","name":"--y","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Semantic lane `road:section:lane` (with s).","name":"--lane-rsl","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"LANE_RSL"},{"commandIndex":3,"help":"Station along laneRsl in storage direction. [>= 0 m]","name":"--s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame x (east). [m]","name":"--x","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame z (minus north). [m]","name":"--z","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Move an actor to a lane station or scene point, keeping identity, class, static state and speed.","usage":"simforge scenario apply <FILE> move-actor [OPTIONS] --id <ID> <--lane-rsl <LANE_RSL>|--x <N>> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply duplicate-actor","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Heading in the scene frame; default: the lane heading or the actor class default. [rad]","name":"--heading-rad","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Source actor.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Lateral offset in the lane, positive to the left of travel. [m]","name":"--lateral-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"New actor id.","name":"--new-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"NEW_ID"},{"commandIndex":3,"help":"Accept overlap with another actor (free/static actors only; refused for moving road vehicles).","name":"--overlap-override","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":3,"help":"Explicit height; otherwise the map ground at (x,z) is used and refused without ground. [m]","name":"--y","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Semantic lane `road:section:lane` (with s).","name":"--lane-rsl","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"LANE_RSL"},{"commandIndex":3,"help":"Station along laneRsl in storage direction. [>= 0 m]","name":"--s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame x (east). [m]","name":"--x","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Scene-frame z (minus north). [m]","name":"--z","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Copy an actor with its presentation and own events under a new id at a new position.","usage":"simforge scenario apply <FILE> duplicate-actor [OPTIONS] --id <ID> --new-id <NEW_ID> <--lane-rsl <LANE_RSL>|--x <N>> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply remove-role","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Actor to delete.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Delete an actor with dependent events, reasoning and ego handoff.","usage":"simforge scenario apply <FILE> remove-role [OPTIONS] --id <ID> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply set-ego","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Actor to make ego.","name":"--role-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ROLE_ID"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Make an actor the ego vehicle.","usage":"simforge scenario apply <FILE> set-ego [OPTIONS] --role-id <ROLE_ID> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply set-actor-speed","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Actor.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Initial speed. [0..160 km/h]","name":"--speed-kph","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Set an actor's initial speed.","usage":"simforge scenario apply <FILE> set-actor-speed [OPTIONS] --id <ID> --speed-kph <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply set-actor-static","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Actor.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"true: static; false: mobile.","name":"--static","positional":false,"possibleValues":["true","false"],"required":true,"takesValue":true,"type":"enum","valueName":"BOOL"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Make an actor static (clears its route and motion events) or mobile again.","usage":"simforge scenario apply <FILE> set-actor-static [OPTIONS] --id <ID> --static <BOOL> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply add-lane-change","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Actor.","name":"--actor-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ACTOR_ID"},{"commandIndex":3,"help":"Target lane side.","name":"--direction","positional":false,"possibleValues":["left","right"],"required":true,"takesValue":true,"type":"enum","valueName":"DIRECTION"},{"commandIndex":3,"help":"Lane-change duration. [> 0 s] (default 3)","name":"--duration-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Clip time the event ends. [>= 0 s]","name":"--end-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"New event id.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Clip time the change starts. [>= 0 s]","name":"--start-s","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Add a timed lane change for a mobile lane-bound road actor.","usage":"simforge scenario apply <FILE> add-lane-change [OPTIONS] --actor-id <ACTOR_ID> --direction <DIRECTION> --id <ID> --start-s <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply add-next-junction-turn","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Actor.","name":"--actor-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ACTOR_ID"},{"commandIndex":3,"help":"Movement at the next junction.","name":"--direction","positional":false,"possibleValues":["left","right","straight"],"required":true,"takesValue":true,"type":"enum","valueName":"DIRECTION"},{"commandIndex":3,"help":"Clip time the event ends. [>= 0 s]","name":"--end-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"New event id.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Clip time the choice applies from. [>= 0 s]","name":"--start-s","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Choose the turn an actor takes at its next junction.","usage":"simforge scenario apply <FILE> add-next-junction-turn [OPTIONS] --actor-id <ACTOR_ID> --direction <DIRECTION> --id <ID> --start-s <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply set-waypoint-route","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Actor.","name":"--actor-id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ACTOR_ID"},{"commandIndex":3,"help":"Route duration. [> 0 s]","name":"--duration-s","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Clip time the event ends. [>= 0 s]","name":"--end-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"New event id.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Scene points, the actor's start first. Repeat once per item, at least 2.","name":"--point","positional":false,"repeatable":true,"required":true,"takesValue":true,"type":"string","valueName":"X,Z"},{"commandIndex":3,"help":"Clip time the route starts. [>= 0 s]","name":"--start-s","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Give an actor a smooth stop-to-stop timed route through scene points (two points: a crossing).","usage":"simforge scenario apply <FILE> set-waypoint-route [OPTIONS] --actor-id <ACTOR_ID> --duration-s <N> --id <ID> --point <X,Z> --start-s <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply set-event-timing","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"End clip time. [>= 0 s]","name":"--end-s","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Event.","name":"--id","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":3,"help":"Start clip time. [>= 0 s]","name":"--start-s","positional":false,"required":true,"takesValue":true,"type":"number","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Retime an event's start and optional end.","usage":"simforge scenario apply <FILE> set-event-timing [OPTIONS] --id <ID> --start-s <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply set-weather","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Canonical scenario weather.","name":"--weather","positional":false,"possibleValues":["clear","cloudy","overcast","light_rain","heavy_rain","wet_road","fog_light","fog_dense","snow","sleet"],"required":true,"takesValue":true,"type":"enum","valueName":"WEATHER"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Set the scenario weather.","usage":"simforge scenario apply <FILE> set-weather [OPTIONS] --weather <WEATHER> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply set-clock","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Minutes after local midnight. [0..1439 min]","name":"--minutes","positional":false,"required":true,"takesValue":true,"type":"integer","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Set the precise scene clock; the time of day becomes the label of the sun at the map's site on the scenario's day.","usage":"simforge scenario apply <FILE> set-clock [OPTIONS] --minutes <N> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"},{"commandIndex":3,"help":"Further operations of the same transaction, each after `--`.","last":true,"name":"more_operations","positional":true,"repeatable":true,"required":false,"type":"string","valueName":"OPERATION"}],"command":"scenario apply set-clip","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"commandIndex":2,"help":"The transaction's undo label (default: the operations' summaries)","name":"--transaction-label","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":3,"help":"Clip length. [3..120 s]","name":"--clip-seconds","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"commandIndex":3,"help":"Warm-up before the clip. [0..30 s]","name":"--warmup-seconds","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"N"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Set the clip length and/or warm-up; out-of-clip events are refused, never truncated.","usage":"simforge scenario apply <FILE> set-clip [OPTIONS] <--clip-seconds <N>|--warmup-seconds <N>> [-- [OPERATION]...]"},{"arguments":[{"commandIndex":2,"help":"The scenario document","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"}],"command":"scenario check","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"What fails the check (exit 2)","name":"--strictness","positional":false,"possibleValues":["errors","warnings"],"required":true,"takesValue":true,"type":"enum","valueName":"STRICTNESS"},{"commandIndex":2,"help":"Also materialize and run every actor on the engine (collisions, quality, input identity)","name":"--preview","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Full validation on the document's map (exit 2 per --strictness); --preview also runs every actor on the engine","usage":"simforge scenario check [OPTIONS] --strictness <STRICTNESS> <FILE>"},{"arguments":[{"commandIndex":2,"help":"The scenario document","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"}],"command":"scenario drive","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Run on this installed map instead of the document's own","name":"--map","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"default":"document","help":"Generated traffic","name":"--ambient","positional":false,"possibleValues":["document","off"],"required":false,"takesValue":true,"type":"enum","valueName":"AMBIENT"},{"commandIndex":2,"help":"Exit 2 when any road vehicle has a driving finding","name":"--strict","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Run the editor preview's engine pass over a scenario and report how each road vehicle drove","usage":"simforge scenario drive [OPTIONS] <FILE>"},{"arguments":[{"commandIndex":2,"help":"The scenario document (edited in place, atomically, as the next revision)","name":"file","positional":true,"required":true,"type":"path","valueName":"FILE"}],"command":"scenario motion","execution":{"cloud":true,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The actor (role id) to convert","name":"--actor","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"ID"},{"commandIndex":2,"help":"The motion to convert it to","name":"--to","positional":false,"possibleValues":["follow-path","behave","reset-to-recording"],"required":true,"takesValue":true,"type":"enum","valueName":"TO"},{"commandIndex":2,"help":"A recording the document pins (plain or gzipped; log-scene/v1 reads as one). Repeatable","name":"--recording","positional":false,"repeatable":true,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":2,"help":"Use this installed map instead of the document's own","name":"--map","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"Refuse unless the document is at this revision (`stale_version`)","name":"--expect-version","positional":false,"required":false,"takesValue":true,"type":"integer","valueName":"N"},{"commandIndex":2,"help":"Refuse unless the document content has this digest (`stale_digest`); also accepts an edit made outside simforge","name":"--expect-digest","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SHA256"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Change how one actor moves: Replay to Follow path (engine-owned speed), Follow path to Behave (lanes)","usage":"simforge scenario motion [OPTIONS] --actor <ID> --to <TO> <FILE>"},{"arguments":[{"commandIndex":1,"help":"The instance: a scenario cell, a pinned scenario, a bare SimScenarioInput, or a `log import` workspace directory (XML formats replay its recorded trace)","name":"instance","positional":true,"required":true,"type":"path","valueName":"INSTANCE"}],"command":"export","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":1,"help":"xosc-1.4 | xosc-1.3-esmini | osc-2.2","name":"--format","positional":false,"required":true,"takesValue":true,"type":"string","valueName":"FORMAT"},{"commandIndex":1,"help":"Write the document here","name":"--out","positional":false,"required":true,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":1,"help":"The road-network file the document references (default `<mapId>.xodr`)","name":"--road-file","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"FILE"},{"commandIndex":1,"help":"FileHeader author","name":"--author","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NAME"},{"commandIndex":1,"help":"FileHeader description","name":"--description","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"TEXT"},{"commandIndex":1,"help":"Maximum distance between exported route waypoints, metres (default 20)","name":"--route-sample-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"M"},{"commandIndex":1,"help":"XML: omit trajectory vertices that interpolation reproduces within this many metres, 0.1 deg and 0.1 m/s (default: every sample)","name":"--trajectory-tolerance-m","positional":false,"required":false,"takesValue":true,"type":"number","valueName":"M"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"A concrete instance as ASAM OpenSCENARIO XML 1.4, XML 1.3 (esmini) or DSL 2.2, with a capability report","usage":"simforge export [OPTIONS] --format <FORMAT> --out <FILE> <INSTANCE>"},{"arguments":[],"command":"catalog create","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Write the catalog manifest here","name":"--out","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"FILE"},{"commandIndex":2,"help":"One installed map","name":"--map","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"Several installed maps, comma-separated, in this order (default: every installed map)","name":"--maps","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAPS"},{"commandIndex":2,"help":"The installed-maps directory (default: SCEN_DEV_ASSETS, else <maps root>/dev-assets)","name":"--dev-assets","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"DIR"},{"commandIndex":2,"help":"Identity namespace mixed into every seed","name":"--namespace","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"NAME"},{"commandIndex":2,"help":"Evidence directory, relative to the catalog file (default: evidence)","name":"--evidence-root","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"DIR"},{"commandIndex":2,"help":"Fail (exit 2, incomplete_mechanism_coverage) when the maps cannot cover every taxonomy mechanism. Default: write the catalog and report the gap as `coverage`","name":"--require-full-coverage","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Reserve exactly 100 deterministic scenario identities per selected installed map (mechanisms no map can host are reported as `coverage`, exit 0)","usage":"simforge catalog create [OPTIONS]"},{"arguments":[{"commandIndex":2,"help":"The catalog manifest","name":"file","positional":true,"required":true,"type":"path","valueName":"CATALOG"}],"command":"catalog verify","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"Where the evidence tree physically is (default: beside the manifest)","name":"--evidence-root","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"DIR"},{"commandIndex":2,"help":"Require every evidence file, not only those implied by slot status","name":"--require-evidence","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Fail (exit 2, insufficient_taxonomy_breadth) when the catalog does not cover every taxonomy mechanism. Default: report the gap as `coverage`","name":"--require-full-coverage","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Reject catalog identity, cardinality, provenance or evidence gaps (exit 2); uncovered mechanisms are reported as `coverage` unless --require-full-coverage","usage":"simforge catalog verify [OPTIONS] <CATALOG>"},{"arguments":[{"commandIndex":2,"help":"The catalog manifest (its slot statuses are updated in place)","name":"file","positional":true,"required":true,"type":"path","valueName":"CATALOG"}],"command":"catalog batch","execution":{"cloud":false,"default":"local-runtime"},"flags":[{"commandIndex":2,"help":"The attempt ledger (default: catalog-execution-ledger.json beside the catalog)","name":"--ledger","positional":false,"required":false,"takesValue":true,"type":"path","valueName":"FILE"},{"commandIndex":2,"help":"Only these slot identities, comma-separated","name":"--slots","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"IDS"},{"commandIndex":2,"help":"Only slots on this map","name":"--map","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAP"},{"commandIndex":2,"help":"Only slots on these maps, comma-separated","name":"--maps","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MAPS"},{"commandIndex":2,"help":"Only these incident mechanisms, comma-separated","name":"--mechanisms","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"IDS"},{"commandIndex":2,"help":"Attempts per slot, 1 to 100 (default 3)","name":"--attempts","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"N"},{"commandIndex":2,"help":"Parallel slots, 1 to 32 (default: min(4, CPUs))","name":"--concurrency","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"N"},{"commandIndex":2,"help":"Start a fresh ledger instead of resuming","name":"--force","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Evaluation filter: critical | negative-control | all","name":"--filter","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"MODE"},{"commandIndex":2,"help":"Time-to-collision (s) below which a conflict counts as trivial","name":"--trivial-ttc","positional":false,"required":false,"takesValue":true,"type":"string","valueName":"SECONDS"},{"commandIndex":2,"help":"Accept attempts whose simulation collided","name":"--allow-collisions","positional":false,"required":false,"takesValue":false,"type":"bool"},{"commandIndex":2,"help":"Refuse a catalog that does not cover every taxonomy mechanism (default: run it and report the gap as `coverage`)","name":"--require-full-coverage","positional":false,"required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"status":"available","summary":"Resumable catalog materialisation + simulation with an attempt ledger","usage":"simforge catalog batch [OPTIONS] <CATALOG>"},{"arguments":[{"help":"The hosted scenario document id","name":"id","required":true,"type":"string","valueName":"ID"}],"bin":"simforge","command":"scenario pull","exitCodes":{"0":"ok","1":"command error: the command could not run","2":"findings: the command ran and found something wrong with its input"},"flags":[{"help":"Output file. Default: <ID>.scenario.json","name":"--out","required":false,"takesValue":true,"type":"path","valueName":"OUT"},{"help":"SimForge host. Default: SIMFORGE_HOST, then the host of the last login, then simforge.ai","name":"--host","required":false,"takesValue":true,"type":"string","valueName":"HOST"},{"help":"Overwrite an existing output file","name":"--force","required":false,"takesValue":false,"type":"bool"},{"help":"Print help","name":"--help","required":false,"takesValue":false,"type":"bool"}],"globalFlags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"output":"stdout: one JSON document (indented with --pretty); stderr: {code, path?, reason, detail?} on failure","status":"available","summary":"Download a hosted scenario document as a local scenario JSON file","usage":"simforge scenario pull [OPTIONS] <ID>","version":"0.2.0-rc.5"}],"exitCodes":{"0":"ok","1":"command error: the command could not run","2":"findings: the command ran and found something wrong with its input"},"globalFlags":[{"global":true,"help":"Indent the JSON result for humans (the same document, never a different one)","name":"--pretty","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Explicit machine-readable JSON output (also the default)","name":"--json","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Execute locally by default; submit the same input as an authenticated cloud job","name":"--cloud","required":false,"takesValue":false,"type":"bool"},{"env":"SIMFORGE_WORKSPACE_ID","global":true,"help":"With --cloud: the workspace you expect the login to act in; a different one is refused (workspace_mismatch)","name":"--workspace","required":false,"takesValue":true,"type":"string","valueName":"cloud_workspace"},{"global":true,"help":"With --cloud: a key that makes resending a lost submission safe (the host answers with the original run and charges once)","name":"--idempotency-key","required":false,"takesValue":true,"type":"string","valueName":"IDEMPOTENCY_KEY"},{"global":true,"help":"With --cloud: price the job (costEstimateCents) and start nothing","name":"--dry-run","required":false,"takesValue":false,"type":"bool"},{"global":true,"help":"Hosted API base URL for API-key use. Default: SIMFORGE_API_URL, then the signed-in host's /api/v1","name":"--api-url","required":false,"takesValue":true,"type":"string","valueName":"API_URL"},{"global":true,"help":"Exact hosted map version for a scenario file. Default: the installed release's, else the one hosted version carrying the file's OpenDRIVE digest","name":"--map-version","required":false,"takesValue":true,"type":"string","valueName":"MAP_VERSION"},{"global":true,"help":"Print machine-readable command help.","name":"--help","required":false,"takesValue":false,"type":"bool"}],"output":"stdout: one JSON document (indented with --pretty); stderr: {code, path?, reason, detail?} on failure","schema":"simforge.cli-surface/v1","version":"0.2.0-rc.5"}