The type hints allow mypy to check the gui_hook calls, revealing a bunch of places that are broken as they expect no arguments like the legacy hooks. To make mypy happy about PyQt's signal.connect(func), a qconnect() helper has been added.
To avoid circular imports, types that contain a '.' are automatically converted to strings.
hopefully that's the last of it