decides the state from what the tables hold; pure, so testable without an object or alarm
how soon the alarm runs again; the drain re-arms at +1 ms while the queue is non-empty
decides the state from what the tables hold; pure, so testable without an object or alarm