# meta
```json
{
  "id": "walk-edge-to-edge",
  "name": "Walk edge to edge",
  "tickRate": 30,
  "selectionMode": "dynamic",
  "permissions": ["overlay.entities"]
}
```

# params
```json
{
  "idStartsWith": { "type": "string", "label": "ID prefix", "default": "" },
  "petId": { "type": "pet", "label": "Pet", "required": false },
  "speed": { "type": "number", "label": "Speed", "default": 90 }
}
```

# select
```json
{
  "entity": {
    "visible": true,
    "idStartsWith": "param.idStartsWith",
    "selectedPetId": "param.petId"
  }
}
```

# state
```json
{
  "entity": {
    "direction": { "choice": [-1, 1] }
  }
}
```

# tick
```json
[
  {
    "forEach": "entity",
    "do": [
      { "moveX": "state.direction * param.speed * dt" },
      { "bounceX": { "bounds": "workarea", "flip": "state.direction" } },
      { "animation": { "direction": "state.direction", "left": "running-left", "right": "running-right" } }
    ]
  }
]
```
