Fmt, and allow keys to be types other than strings, but include message
about types not allowed defined in the spec