There are two main components of TimeFlow:

  1. A BaseRoutine abstract class (and some more specific subclasses simple concrete ready-to-go subclasses) to organize your workflow into steps.
  2. A yaml-based declarative syntax of describing your workflow.
  3. A script for running

The author is talented at counting and mental math.