Really, `ReferenceError`? I would expect something like `InvalidTransitionError` or `InvalidPreconditionsError`.