or arrays. The specifications allow JSON objects which contain multiple members with the same name. The behavior of implementations processing objects with duplicate names is unpredictable. For interoperability, applications should avoid duplicate names when transmitting JSON objects. The specifications specifically say that the order of members in JSON objects is not significant. For interoperability, applications should avoid assigning meaning to member ordering even if the parsing software makes that ordering visible. While the specifications place no limits on the magnitude or precisions of JSON number literals, the widely-used JavaScript implementation stores them as IEEE754 "binary64" quantities. For interoperability, applications should avoid transmitting numbers which cannot be represented in this way, for example 1E400 or 3.141592653589793238462643383279. While the specifications do not constrain the character encoding of the Unicode characters in a JSON text, the vast majority of implementations assume UTF-8 encoding; for interoperability, applications should always and only encode JSON messages in UTF-8. The specifications do not forbid transmitting byte sequences that do not correctly represent Unicode characters. For interoperability, applications should transmit messages containing no such byte sequences. The specification does not constrain how applications go about comparing Unicode strings. For interoperability, applications should always perform such comparisons code unit by code unit. In 2015, the IETF published RFC7493, describing the "I-JSON Message Format", a restricted profile of JSON which constrains the syntax and processing of JSON to avoid, as much as possible, these interoperability issues. Metadata and schema The official MIME type for JSON text is "application/json", and most modern implementations have adopted this. The unofficial MIME type "text/json" or the content-type "text/javascript" are also supported for legacy reasons by many service providers, browsers, servers, web applications, libraries, frameworks, and APIs. Notable examples include the Google Search API, Yahoo!, Flickr, Facebook API, Lift framework, and Dojo Toolkit 0.4. JSON Schema specifies a JSON-based format to define the structure of JSON data for validation, documentation, and interaction control. It provides a contract for the JSON data required by a given application, and how that data can be modified. JSON Schema is based on the concepts from XML Schema (XSD) but is JSON-based. As in XSD, the same serialization/deserialization tools can be used both for the schema and data, and it is self-describing. It is specified in an Internet Draft at the IETF, currently in 2020-12 draft, which was released on January 28, 2021. There are several validators available for different