Fixes from code review

1) Make common fields joinKey and normalTime optional
2) Make an explicit "required" check happen
3) Adjust one data point in device-data.json to have a colon in its id