The spec does not formally say that the property named in propertyName MUST only have string values. This is more-or-less implied by how it is used, but as seen in #3439, sometimes people expect other types to be mapped to strings, presumably somewhat like how they are in query parameters (which, as has been noted elsewhere, is also somewhat under-specified).
Alternatively, a minor release could define a mapping for integer, boolean, and null values if we really wanted to, but I doubt that we want to do that.