**Describe the feature you'd like** Refactor simulators or/and update annotations to accurately keep track of types and get rid of unions such as `npt.NDArray[np.complex128 | np.object_]`. **Additional context** Union types in return type annotations are in general not good, as users/developers need to further narrow types frequently.