Is there an advantage to making this a precondition rather than a type hint? If it was a type hint, the check would happen at compile time, and reflection for line 96 and 99 would go away.