A huge number of really annoying-to-debug places in our code usually boil down to us not having been as strict with static typing in the past, even tho Godot having really cool tools for it.
I mean look at it: it let's you specify the type of a for each loop!
I can't wait for @godotengine to add support for interfaces/traits 😬
(Yes, there is a feature request for it but it is locked due to being out of scope: https://github.com/godotengine/godot-proposals/issues/6416)