date:
- parse a date specification
- now has most of the date computations we need
main:
- add explicit state machine (states + config)
- has first steps towards figuring out intended state
- still needs more logic, and some stuff can probably move to date