API v1 spec

This is still a work-in-progress, but any feedback is more than welcome.
@robszumski This could expose lots of information, the two primary uses being
- state changes of units over time (most important)
- asynchronous errors related to scheduling units