Speaking from a language binding perspective, and from a C developer perspective, exposing this kind of API is a bad idea to begin with, regardless of introspection annotations.
You're already giving up any sort of type safety by using direct pointer keys, there's no amount of papering over with annotations that will make this kind of data type safe.
You should create your own boxed type that contains a (private) GHashTable, and with proper public API that takes integer keys and stores them into the hash table.