switch to storing key types in a plain dict, for simplicity and to pave the way for coercing these types on output (right now bools come back as integers)