{
  "name": "busybar-commute",
  "status": "live routing via Google Routes",
  "scenarios": [
    "wfh",
    "walking",
    "leaving-work",
    "trip-10",
    "trip-25",
    "trip-40",
    "halfway",
    "trip-60",
    "trip-75",
    "trip-90",
    "arriving",
    "gridlock",
    "at-work",
    "at-work-busy",
    "at-work-gridlock"
  ],
  "routes": {
    "GET /preview/:scenario": "draw payload, without touching the device",
    "POST /push/:scenario": "render a mock scenario onto the bar",
    "POST /at/:progress?traffic=N": "an arbitrary point on the route (0..1)",
    "POST /sim/start": "simulated 20min drive that advances by itself",
    "POST /sim/stop": "end the simulation and clear the bar",
    "POST /trip/start": "begin a real trip {destination, lat?, lng?, destLat?, destLng?, etaSeconds?}",
    "POST /trip/update": "a GPS fix {lat, lng, etaSeconds?}; arrival is inferred from it",
    "POST /trip/end": "you've arrived, for when no fix landed close enough to say so",
    "GET /state": "what the Worker thinks is on the bar",
    "GET /screen?display=0": "the bar's actual screen, read back as a PNG",
    "POST /wfh": "working from home today; holds WFH on the bar for the day",
    "POST /walking": "parked and walking up; ends any trip, expires on its own",
    "POST /leave": "you have left; stand the evening watch down",
    "POST /tick": "run the evening check now, without waiting for cron",
    "POST /clear": "remove our elements"
  },
  "evening": {
    "enabled": true,
    "window": "17:00-21:00 America/Los_Angeles",
    "weekdaysOnly": true,
    "localTime": "14:41",
    "openNow": false
  },
  "bindings": {
    "COMMUTE": "ok",
    "BUSY_API_TOKEN": "set",
    "API_SECRET": "set",
    "GOOGLE_MAPS_API_KEY": "set"
  },
  "routing": {
    "provider": "google-routes",
    "home": "34.1478,-118.1445",
    "work": "33.985,-118.4695"
  }
}