nit: Could we add a require(schedule != null) here? It would cause a NPE anyway, I think this would just make it clearer. It also makes our use of `Option(schedulableNameToSchedulable.get(...))` correct.