Normally I'm agnostic on the issue of type safety, but the best game scripting language I used was a proprietary one that was strongly typed with no implicit casting (it also had no GC).
In my experience, a game script most often uses handles to certain types of game engine objects (cameras, vehicles, characters, the player...) and although it's often necessary to define your own types/classes/objects they're rarely complex. Usually you're just iterating over collections of stuff, exploring trees, querying the current state of the game engine or dealing with some kind of internal state.
Because of this, explicit type safety isn't really the burden it can be in other use cases, even for prototyping. Because you generally want hot reloads and for a game script to fail gracefully without stopping the engine, you probably want to add as much sanity checking as possible before it gets to that point.
In my experience, a game script most often uses handles to certain types of game engine objects (cameras, vehicles, characters, the player...) and although it's often necessary to define your own types/classes/objects they're rarely complex. Usually you're just iterating over collections of stuff, exploring trees, querying the current state of the game engine or dealing with some kind of internal state.
Because of this, explicit type safety isn't really the burden it can be in other use cases, even for prototyping. Because you generally want hot reloads and for a game script to fail gracefully without stopping the engine, you probably want to add as much sanity checking as possible before it gets to that point.