{
  "schema": "simengine.scenario",
  "schema_version": 1,
  "name": "first_scene",
  "description": "SCN-009 M1 example (core-only): a yard with a table, two crates, two spheres and three barrels placed from the seed. Scheduled simengine.entity.set_position commands move the ball across the yard onto the table and stack crate_b on crate_a. Teleports only: no velocity, physics or contacts.",
  "seed": 20261027,
  "time": {"tick_duration": {"value": 16666667, "unit": "ns"}, "ticks": 120},
  "frame": {"id": "world", "kind": "cartesian", "handedness": "right", "up_axis": "+y"},
  "entities": [
    {"id": "table", "position": {"value": [0, 0, -1], "unit": "m", "frame": "world"}},
    {"id": "ball", "position": {"value": [2, 0.25, 1.5], "unit": "m", "frame": "world"}},
    {"id": "orb", "position": {"value": [-0.3, 1, -1.1], "unit": "m", "frame": "world"}},
    {"id": "crate_a", "position": {"value": [-2, 0, -0.5], "unit": "m", "frame": "world"}},
    {"id": "crate_b", "position": {"value": [-1.2, 0, 0.3], "unit": "m", "frame": "world"},
     "orientation": {"value": [0, 0.25881904510252074, 0, 0.9659258262890683], "unit": "1", "frame": "world"}}
  ],
  "generators": [
    {"kind": "scatter_box", "id_prefix": "barrel_", "count": 3,
     "min": {"value": [1.5, 0, -3.5], "unit": "m", "frame": "world"},
     "max": {"value": [3.5, 0, -2], "unit": "m", "frame": "world"}}
  ],
  "commands": [
    {"at_tick": 10, "command": "simengine.entity.set_position", "version": 1,
     "args": {"entity": "ball", "position": {"value": [1.7, 0.25, 1.1], "unit": "m", "frame": "world"}}},
    {"at_tick": 20, "command": "simengine.entity.set_position", "version": 1,
     "args": {"entity": "ball", "position": {"value": [1.4, 0.25, 0.7], "unit": "m", "frame": "world"}}},
    {"at_tick": 30, "command": "simengine.entity.set_position", "version": 1,
     "args": {"entity": "ball", "position": {"value": [1.1, 0.25, 0.3], "unit": "m", "frame": "world"}}},
    {"at_tick": 40, "command": "simengine.entity.set_position", "version": 1,
     "args": {"entity": "ball", "position": {"value": [0.8, 0.25, -0.1], "unit": "m", "frame": "world"}}},
    {"at_tick": 60, "command": "simengine.entity.set_position", "version": 1,
     "args": {"entity": "ball", "position": {"value": [0.25, 1, -1], "unit": "m", "frame": "world"}}},
    {"at_tick": 90, "command": "simengine.entity.set_position", "version": 1,
     "args": {"entity": "crate_b", "position": {"value": [-2, 0.5, -0.5], "unit": "m", "frame": "world"}}}
  ],
  "expect": [
    {"name": "ball_on_table", "entity": "ball", "quantity": "position",
     "value": {"value": [0.25, 1, -1], "unit": "m", "frame": "world"}, "tolerance": {"value": 0, "unit": "m"}},
    {"name": "crate_b_stacked", "entity": "crate_b", "quantity": "position",
     "value": {"value": [-2, 0.5, -0.5], "unit": "m", "frame": "world"}, "tolerance": {"value": 0, "unit": "m"}},
    {"name": "table_static", "entity": "table", "quantity": "position",
     "value": {"value": [0, 0, -1], "unit": "m", "frame": "world"}, "tolerance": {"value": 0, "unit": "m"}}
  ]
}
