<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-vasters-json-structure-units-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="JSON Structure Units">JSON Structure: Symbols, Scientific Units, and Currencies</title>
    <seriesInfo name="Internet-Draft" value="draft-vasters-json-structure-units-03"/>
    <author fullname="Clemens Vasters">
      <organization>Microsoft Corporation</organization>
      <address>
        <email>clemensv@microsoft.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="09"/>
    <area>Web and Internet Transport</area>
    <workgroup>Building Blocks for HTTP APIs</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 111?>

<t>This document specifies "JSON Structure Symbols, Scientific Units, and
Currencies", an extension to JSON Structure Core. This specification defines a
set of annotation keywords for associating scientific unit and currency metadata
and constraints, primarily for use with numeric values.</t>
      <t>This extension provides a mechanism for schema authors to
explicitly declare the unit associated with numeric data, thereby enabling
precise mapping between schema representations and external data systems.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://json-structure.github.io/units/draft-vasters-json-structure-units.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-vasters-json-structure-units/"/>.
      </t>
      <t>
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/json-structure/units"/>.</t>
    </note>
  </front>
  <middle>
    <?line 122?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document is a companion specification to JSON Structure Core
<xref target="JSTRUCT-CORE"/>. It defines annotation keywords that allow numeric types to be
enriched with measurement unit or currency information.</t>
      <t>The primary purpose of this extension is to help numeric values be interpreted
consistently by specifying their associated scientific units or currencies.</t>
      <t>This specification defines the syntax and semantics of the keywords that
annotate numeric types with scientific unit or currency information.
Implementations of JSON Structure Core that support this extension MUST process
these keywords according to the rules defined herein.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
    </section>
    <section anchor="symbol-annotations">
      <name>Symbol Annotations</name>
      <t>This section defines the keywords used to annotate schema elements with symbols
that accompany values when presented to users.</t>
      <section anchor="symbol-keyword">
        <name>The <tt>symbol</tt> Keyword</name>
        <t>The <tt>symbol</tt> keyword provides a mechanism for annotating a schema element with a
symbol that annotates the value of the element when presented to users.</t>
        <t>The keyword MAY appear alongside the <tt>type</tt> keyword in object properties or
array items or map values.</t>
        <ul spacing="normal">
          <li>
            <t>The value of <tt>symbol</tt> MUST be a JSON string.</t>
          </li>
          <li>
            <t>The string value of <tt>symbol</tt> SHOULD contain a Unicode character or a
multi-character symbol that represents the value of the annotated element.</t>
          </li>
          <li>
            <t>The <tt>symbol</tt> keyword MAY be used as an annotation on any schema element.</t>
          </li>
          <li>
            <t><tt>symbol</tt> MAY be used in conjunction with <tt>unit</tt> or <tt>currency</tt> annotations or
independently.</t>
          </li>
        </ul>
        <t>Example:</t>
        <sourcecode type="json"><![CDATA[
{
  "type": "number",
  "currency": "EUR",
  "symbol": "€"
}
]]></sourcecode>
        <t>or</t>
        <sourcecode type="json"><![CDATA[
{
  "type": "number",
  "unit": "m/s^2",
  "symbol": "m/s²"
}
]]></sourcecode>
        <t>or</t>
        <sourcecode type="json"><![CDATA[
{
  "type": "number",
  "description": "Number of bunnies",
  "symbol": "bunnies"
}
]]></sourcecode>
        <section anchor="symbols-keyword">
          <name>The <tt>symbols</tt> Keyword</name>
          <t>The <tt>symbols</tt> keyword provides a mechanism for annotating a schema element with
a set of symbols that annotate the value of the element when presented to users.</t>
          <t>The keyword MAY appear alongside the <tt>type</tt> keyword in object properties or
array items or map values.</t>
          <ul spacing="normal">
            <li>
              <t>The value of <tt>symbols</tt> MUST be a <tt>map</tt>.</t>
            </li>
            <li>
              <t>The keys of the <tt>symbols</tt> map MUST be strings that represent a purpose
indicator. The <tt>lang:</tt> prefix is reserved for language-specific symbols. The
suffix after the colon specifies the language tag. The language tag MUST
conform to BCP 47 <xref target="RFC5646"/>.</t>
            </li>
            <li>
              <t>The values of the <tt>symbols</tt> map MUST be strings that represent the symbol.</t>
            </li>
            <li>
              <t>The <tt>symbols</tt> keyword MAY be used as an annotation on any schema element.</t>
            </li>
          </ul>
          <t>Example:</t>
          <sourcecode type="json"><![CDATA[
{
  "type": "number",
  "description": "Number of bunnies",
  "symbols": {
    "lang:en": "Bunnies",
    "lang:de": "Kaninchen",
    "lang:fr": "Lapins"
  }
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="scientific-unit-annotations">
      <name>Scientific Unit Annotations</name>
      <t>This section defines the keywords used to annotate numeric types with scientific
unit information.</t>
      <section anchor="unit-keyword">
        <name>The <tt>unit</tt> Keyword</name>
        <t>The <tt>unit</tt> keyword provides a mechanism for annotating a numeric schema (or a
schema based on a numeric extended type such as <tt>number</tt>, <tt>int32</tt>, <tt>uint32</tt>,
<tt>int64</tt>, <tt>uint64</tt>, <tt>int128</tt>, <tt>uint128</tt>, <tt>float</tt>, <tt>double</tt>, or <tt>decimal</tt>) with
its measurement unit.</t>
        <t>The keyword MAY appear alongside the <tt>type</tt> keyword in object properties or
array items or map values.</t>
        <ul spacing="normal">
          <li>
            <t>The value of <tt>unit</tt> MUST be a JSON string.</t>
          </li>
          <li>
            <t>The string value of <tt>unit</tt> SHOULD contain:
            </t>
            <ul spacing="normal">
              <li>
                <t>An SI unit symbol or derived unit symbol conforming to the Bureau
International des Poids et Mesures (BIPM) International System of Units (SI)
<xref target="IEEE_260.1_2024"/></t>
              </li>
              <li>
                <t>A unit symbol defined in ISO/IEC 80000 series <xref target="IEC_80000-1_2025"/></t>
              </li>
              <li>
                <t>A non-SI unit symbol defined in NIST Handbook 44 Appendix C
<xref target="NIST_HB_44_2023"/></t>
              </li>
            </ul>
          </li>
        </ul>
        <t>For "derived" SI units that reflect a multiplication, the unit symbols MUST be
separated by the asterisk character (<tt>*</tt>). For derived units that reflect a
division, the unit symbols MUST be separated by the forward slash (<tt>/</tt>). The
notation for exponentiation MUST be indicated using the caret (<tt>^</tt>). For
example, acceleration SHALL be denoted as <tt>"m/s^2"</tt>.</t>
        <t>Units that use Greek-language symbols (including supplementary or derived units)
such as Ohm (<tt>"Ω"</tt>) MUST be denoted with those Greek symbols (using the
corresponding Unicode code points).</t>
        <t>The <tt>unit</tt> keyword MAY be used as an annotation on any schema element whose
underlying type is numeric. Schema processors that support JSON Structure
Scientific Units MUST use the value of the <tt>unit</tt> keyword to interpret, convert,
or display numeric values appropriately.</t>
        <t>Example:</t>
        <sourcecode type="json"><![CDATA[
{
  "type": "number",
  "unit": "m/s^2"
}
]]></sourcecode>
      </section>
      <section anchor="ucum-unit-keyword">
        <name>The <tt>ucumUnit</tt> Keyword</name>
        <t>The <tt>ucumUnit</tt> keyword provides a mechanism for annotating a numeric schema
(or a schema based on a numeric extended type such as <tt>number</tt>, <tt>int32</tt>,
<tt>uint32</tt>, <tt>int64</tt>, <tt>uint64</tt>, <tt>int128</tt>, <tt>uint128</tt>, <tt>float</tt>, <tt>double</tt>, or
<tt>decimal</tt>) with its measurement unit using UCUM (Unified Code for Units of
Measure) <xref target="UCUM"/> notation.</t>
        <t>The keyword MAY appear alongside the <tt>type</tt> keyword in object properties or
array items or map values.</t>
        <ul spacing="normal">
          <li>
            <t>The value of <tt>ucumUnit</tt> MUST be a JSON string.</t>
          </li>
          <li>
            <t>The string value of <tt>ucumUnit</tt> MUST be a valid UCUM unit expression as
defined in the UCUM specification <xref target="UCUM"/>.</t>
          </li>
          <li>
            <t>UCUM codes MUST use the case-sensitive ("c/s") variant defined in the UCUM
specification.</t>
          </li>
          <li>
            <t>The <tt>ucumUnit</tt> keyword MAY be used in conjunction with the <tt>unit</tt> keyword.
When both are present, systems that support UCUM SHOULD prefer the
<tt>ucumUnit</tt> value for computation and conversion purposes.</t>
          </li>
          <li>
            <t>The <tt>ucumUnit</tt> keyword MAY be used as an annotation on any schema element
whose underlying type is numeric.</t>
          </li>
        </ul>
        <t>Example:</t>
        <sourcecode type="json"><![CDATA[
{
  "type": "number",
  "unit": "m/s^2",
  "ucumUnit": "m/s2",
  "symbols": {
    "default": "m/s²"
  }
}
]]></sourcecode>
        <t>or</t>
        <sourcecode type="json"><![CDATA[
{
  "type": "number",
  "ucumUnit": "Cel",
  "symbols": {
    "default": "°C"
  }
}
]]></sourcecode>
        <section anchor="ucum-unit-compatibility">
          <name>Compatibility with the unit Keyword</name>
          <t>Schemas MAY include both <tt>unit</tt> and <tt>ucumUnit</tt> to support consumers that
understand either notation.</t>
          <t>When both are present, the values SHOULD denote the same physical quantity and
unit.</t>
          <t>Schema validators MUST NOT reject a schema solely because both keywords are
present.</t>
        </section>
      </section>
      <section anchor="unit-annotations">
        <name>Unit Annotations</name>
        <t>This is a list of common scientific units that MAY be used with the <tt>unit</tt>.
Units are defined according to ISO/IEC 80000, BIPM SI, and NIST HB44:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Measure</th>
              <th align="left">unit</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Length</td>
              <td align="left">
                <tt>m</tt></td>
              <td align="left">Meters, SI unit of length</td>
              <td align="left">
                <xref target="IEC_80000-3_2025"/></td>
            </tr>
            <tr>
              <td align="left">Velocity</td>
              <td align="left">
                <tt>m/s</tt></td>
              <td align="left">Meters per second</td>
              <td align="left">
                <xref target="IEC_80000-3_2025"/></td>
            </tr>
            <tr>
              <td align="left">Acceleration</td>
              <td align="left">
                <tt>m/s^2</tt></td>
              <td align="left">Meters per second squared</td>
              <td align="left">
                <xref target="IEC_80000-3_2025"/></td>
            </tr>
            <tr>
              <td align="left">Weight</td>
              <td align="left">
                <tt>kg</tt></td>
              <td align="left">Kilograms, SI unit of mass</td>
              <td align="left">
                <xref target="IEC_80000-4_2025"/></td>
            </tr>
            <tr>
              <td align="left">Time</td>
              <td align="left">
                <tt>s</tt></td>
              <td align="left">Seconds, SI unit of time</td>
              <td align="left">
                <xref target="IEEE_260.1_2024"/></td>
            </tr>
            <tr>
              <td align="left">Temperature</td>
              <td align="left">
                <tt>K</tt></td>
              <td align="left">Kelvin, SI unit of temperature</td>
              <td align="left">
                <xref target="IEEE_260.1_2024"/></td>
            </tr>
            <tr>
              <td align="left">Volume</td>
              <td align="left">
                <tt>L</tt></td>
              <td align="left">Liters, non-SI unit accepted in SI</td>
              <td align="left">
                <xref target="IEEE_260.1_2024"/></td>
            </tr>
            <tr>
              <td align="left">Pressure</td>
              <td align="left">
                <tt>psi</tt></td>
              <td align="left">Pounds per square inch, non-SI unit</td>
              <td align="left">
                <xref target="NIST_HB_44_2023"/></td>
            </tr>
            <tr>
              <td align="left">Energy</td>
              <td align="left">
                <tt>J</tt></td>
              <td align="left">Joules, SI unit of energy</td>
              <td align="left">
                <xref target="IEEE_260.1_2024"/></td>
            </tr>
            <tr>
              <td align="left">Power</td>
              <td align="left">
                <tt>W</tt></td>
              <td align="left">Watts, SI unit of power</td>
              <td align="left">
                <xref target="IEEE_260.1_2024"/></td>
            </tr>
            <tr>
              <td align="left">Electrical Resistance</td>
              <td align="left">
                <tt>Ω</tt></td>
              <td align="left">Ohms, SI unit of electrical resistance</td>
              <td align="left">
                <xref target="IEEE_260.1_2024"/></td>
            </tr>
            <tr>
              <td align="left">Electrical Current</td>
              <td align="left">
                <tt>A</tt></td>
              <td align="left">Amperes, SI unit of electric current</td>
              <td align="left">
                <xref target="IEEE_260.1_2024"/></td>
            </tr>
            <tr>
              <td align="left">Light Intensity</td>
              <td align="left">
                <tt>cd</tt></td>
              <td align="left">Candelas, SI unit of luminous intensity</td>
              <td align="left">
                <xref target="IEEE_260.1_2024"/></td>
            </tr>
            <tr>
              <td align="left">Area</td>
              <td align="left">
                <tt>m^2</tt></td>
              <td align="left">Square meters, SI unit of area</td>
              <td align="left">
                <xref target="IEEE_260.1_2024"/></td>
            </tr>
            <tr>
              <td align="left">Volume</td>
              <td align="left">
                <tt>m^3</tt></td>
              <td align="left">Cubic meters, SI unit of volume</td>
              <td align="left">
                <xref target="IEEE_260.1_2024"/></td>
            </tr>
            <tr>
              <td align="left">Length</td>
              <td align="left">
                <tt>ft</tt></td>
              <td align="left">Feet, non-SI unit</td>
              <td align="left">
                <xref target="NIST_HB_44_2023"/></td>
            </tr>
            <tr>
              <td align="left">Volume</td>
              <td align="left">
                <tt>gal</tt></td>
              <td align="left">Gallon, non-SI unit</td>
              <td align="left">
                <xref target="NIST_HB_44_2023"/></td>
            </tr>
            <tr>
              <td align="left">Pressure</td>
              <td align="left">
                <tt>bar</tt></td>
              <td align="left">Bar, non-SI unit</td>
              <td align="left">
                <xref target="NIST_HB_44_2023"/></td>
            </tr>
            <tr>
              <td align="left">Digital Storage</td>
              <td align="left">
                <tt>B</tt></td>
              <td align="left">Bytes, non-SI unit</td>
              <td align="left">
                <xref target="IEC_80000-13_2025"/></td>
            </tr>
            <tr>
              <td align="left">Data Rate</td>
              <td align="left">
                <tt>bit/s</tt></td>
              <td align="left">Bits per second</td>
              <td align="left">
                <xref target="IEC_80000-13_2025"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="unit-prefixes">
        <name>Unit Prefixes</name>
        <t>The following SI prefixes MAY be used with base units:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">Symbol</th>
              <th align="left">Factor</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">yotta</td>
              <td align="left">Y</td>
              <td align="left">10²⁴</td>
            </tr>
            <tr>
              <td align="left">zetta</td>
              <td align="left">Z</td>
              <td align="left">10²¹</td>
            </tr>
            <tr>
              <td align="left">exa</td>
              <td align="left">E</td>
              <td align="left">10¹⁸</td>
            </tr>
            <tr>
              <td align="left">peta</td>
              <td align="left">P</td>
              <td align="left">10¹⁵</td>
            </tr>
            <tr>
              <td align="left">tera</td>
              <td align="left">T</td>
              <td align="left">10¹²</td>
            </tr>
            <tr>
              <td align="left">giga</td>
              <td align="left">G</td>
              <td align="left">10⁹</td>
            </tr>
            <tr>
              <td align="left">mega</td>
              <td align="left">M</td>
              <td align="left">10⁶</td>
            </tr>
            <tr>
              <td align="left">kilo</td>
              <td align="left">k</td>
              <td align="left">10³</td>
            </tr>
            <tr>
              <td align="left">milli</td>
              <td align="left">m</td>
              <td align="left">10⁻³</td>
            </tr>
            <tr>
              <td align="left">micro</td>
              <td align="left">μ</td>
              <td align="left">10⁻⁶</td>
            </tr>
            <tr>
              <td align="left">nano</td>
              <td align="left">n</td>
              <td align="left">10⁻⁹</td>
            </tr>
            <tr>
              <td align="left">pico</td>
              <td align="left">p</td>
              <td align="left">10⁻¹²</td>
            </tr>
            <tr>
              <td align="left">hecto</td>
              <td align="left">h</td>
              <td align="left">10²</td>
            </tr>
          </tbody>
        </table>
        <t>Examples:</t>
        <ul spacing="normal">
          <li>
            <t><tt>"km"</tt>: Kilometers</t>
          </li>
          <li>
            <t><tt>"mm"</tt>: Millimeters</t>
          </li>
          <li>
            <t><tt>"μm"</tt>: Micrometers</t>
          </li>
          <li>
            <t><tt>"nm"</tt>: Nanometers</t>
          </li>
          <li>
            <t><tt>"ps"</tt>: Picoseconds</t>
          </li>
          <li>
            <t><tt>"mΩ"</tt>: Milliohms</t>
          </li>
          <li>
            <t><tt>"kΩ"</tt>: Kilohms</t>
          </li>
          <li>
            <t><tt>"MW"</tt>: Megawatts</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="currency-annotations">
      <name>Currency Annotations</name>
      <t>This section defines the keywords used to annotate numeric types with currency
information.</t>
      <section anchor="currency-keyword">
        <name>The <tt>currency</tt> Keyword</name>
        <t>The <tt>currency</tt> keyword provides a mechanism for annotating a numeric schema (or
a schema based on a numeric extended type such as <tt>number</tt>, <tt>int32</tt>, <tt>uint32</tt>,
<tt>int64</tt>, <tt>uint64</tt>, <tt>int128</tt>, <tt>uint128</tt>, <tt>float</tt>, <tt>double</tt>, or <tt>decimal</tt>) with a
currency annotation.</t>
        <t>The keyword MAY appear alongside the <tt>type</tt> keyword in object properties or
array items or map values.</t>
        <ul spacing="normal">
          <li>
            <t>The value of <tt>currency</tt> MUST be a JSON string.</t>
          </li>
          <li>
            <t>The string value of <tt>currency</tt> SHOULD contain a three-letter currency code
conforming to the <xref target="ISO_4217_2015"/> standard.</t>
          </li>
          <li>
            <t>The <tt>currency</tt> keyword MAY be used as an annotation on any schema element.</t>
          </li>
        </ul>
        <t>Example:</t>
        <sourcecode type="json"><![CDATA[
{
  "type": "number",
  "currency": "EUR"
}
]]></sourcecode>
      </section>
      <section anchor="enabling-the-annotations">
        <name>Enabling the Annotations</name>
        <t>These annotations can be enabled in a schema or meta-schema by adding the
<tt>JSONSchemaUnits</tt> key to the <tt>$uses</tt> clause when referencing the extended
meta-schema:</t>
        <sourcecode type="json"><![CDATA[
{
  "$schema": "https://json-structure.org/meta/extended/v0/#",
  "$id": "myschema",
  "$uses": [
    "JSONSchemaUnits"
  ],
  "type": "object",
  "properties": {
    "name": {
      "type": "decimal",
      "unit": "m/s^2"
    }
  }
}
]]></sourcecode>
        <t>The annotations are enabled by default in the validation meta-schema:</t>
        <sourcecode type="json"><![CDATA[
{
  "$schema": "https://json-structure.org/meta/validation/v0/#",
  "$id": "myschema",
  "type": "object",
  "properties": {
    "name": {
      "type": "decimal",
      "unit": "m/s^2"
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-and-interoperability-considerations">
      <name>Security and Interoperability Considerations</name>
      <t>Alternate unit annotations do not affect the fundamental validation of instance
data. They are purely metadata and MUST be ignored by validators that do not
support this extension. Applications that rely on unit annotations for
conversion or display MUST implement appropriate validation against recognized
standards (BIPM SI and NIST HB44) to ensure consistency.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC5646">
        <front>
          <title>Tags for Identifying Languages</title>
          <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
          <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
          <date month="September" year="2009"/>
          <abstract>
            <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object. It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="47"/>
        <seriesInfo name="RFC" value="5646"/>
        <seriesInfo name="DOI" value="10.17487/RFC5646"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="IEEE_260.1_2024" target="https://ieeexplore.ieee.org/document/10530229">
        <front>
          <title>IEEE Standard for Letter Symbols for Measurement Units (SI and Other Common Units)</title>
          <author>
            <organization>Institute of Electrical and Electronics Engineers</organization>
          </author>
          <date year="2024" month="May"/>
        </front>
        <seriesInfo name="DOI" value="10.1109/IEEESTD.2024.10530229"/>
        <seriesInfo name="IEEE" value="260-1-2024"/>
      </reference>
      <reference anchor="NIST_HB_44_2023" target="https://nvlpubs.nist.gov/nistpubs/hb/2023/NIST.HB.44-2023.pdf">
        <front>
          <title>Specifications, Tolerances, and Other Technical Requirements for Weighing and Measuring Devices</title>
          <author initials="" surname="Butcher" fullname="Tina G Butcher">
            <organization>Physical Measurement Laboratory</organization>
          </author>
          <author>
            <organization>National Institute of Standards and Technology</organization>
          </author>
          <date year="2023"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/NIST.HB.44-2023"/>
        <seriesInfo name="NIST Handbooks" value="44-2023"/>
      </reference>
      <reference anchor="IEC_80000-13_2025" target="https://webstore.iec.ch/publication/IEC80000-13-2025">
        <front>
          <title>Quantities and units – Part 13: Information science</title>
          <author>
            <organization>International Electrotechnical Commission</organization>
          </author>
          <date year="2025"/>
        </front>
        <seriesInfo name="IEC Standards" value="IEC 80000-13:2025"/>
      </reference>
      <reference anchor="IEC_80000-1_2025" target="https://webstore.iec.ch/publication/IEC80000-1-2025">
        <front>
          <title>Quantities and units – Part 1: General</title>
          <author>
            <organization>International Electrotechnical Commission</organization>
          </author>
          <date year="2025"/>
        </front>
        <seriesInfo name="IEC Standards" value="IEC 80000-1:2025"/>
      </reference>
      <reference anchor="IEC_80000-3_2025" target="https://webstore.iec.ch/publication/IEC80000-3-2025">
        <front>
          <title>Quantities and units – Part 3: Space and time</title>
          <author>
            <organization>International Electrotechnical Commission</organization>
          </author>
          <date year="2025"/>
        </front>
        <seriesInfo name="IEC Standards" value="IEC 80000-3:2025"/>
      </reference>
      <reference anchor="IEC_80000-4_2025" target="https://webstore.iec.ch/publication/IEC80000-4-2025">
        <front>
          <title>Quantities and units – Part 4: Electricity and magnetism</title>
          <author>
            <organization>International Electrotechnical Commission</organization>
          </author>
          <date year="2025"/>
        </front>
        <seriesInfo name="IEC Standards" value="IEC 80000-4:2025"/>
      </reference>
      <reference anchor="ISO_4217_2015" target="https://www.iso.org/standard/42245.html">
        <front>
          <title>Codes for the representation of currencies and funds</title>
          <author>
            <organization>International Organization for Standardization</organization>
          </author>
          <date year="2015"/>
        </front>
        <seriesInfo name="ISO Standards" value="ISO 4217:2015"/>
      </reference>
      <reference anchor="JSTRUCT-CORE" target="https://json-structure.github.io/core/draft-vasters-json-structure-core.html">
        <front>
          <title>JSON Structure Core</title>
          <author fullname="Clemens Vasters">
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="UCUM" target="https://ucum.org/ucum">
        <front>
          <title>The Unified Code for Units of Measure</title>
          <author fullname="Gunther Schadow">
            <organization/>
          </author>
          <author fullname="Clement J. McDonald">
            <organization/>
          </author>
          <date year="2017" month="November" day="21"/>
        </front>
      </reference>
    </references>
    <?line 474?>

<section numbered="false" anchor="changes-from-draft-vasters-json-structure-units-01">
      <name>Changes from draft-vasters-json-structure-units-01</name>
      <ul spacing="normal">
        <li>
          <t>Updated obsolete RFC 4646 reference to RFC 5646 (BCP 47).</t>
        </li>
        <li>
          <t>Used correct term "language tag" instead of "language code" in symbols
section.</t>
        </li>
        <li>
          <t>Broadened abstract opening to reflect full scope (symbols, currencies).</t>
        </li>
        <li>
          <t>Added <tt>ucumUnit</tt> keyword for UCUM (Unified Code for Units of Measure)
notation support, enabling interoperability with healthcare and scientific
systems.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="changes-from-draft-vasters-json-structure-units-00">
      <name>Changes from draft-vasters-json-structure-units-00</name>
      <ul spacing="normal">
        <li>
          <t>Fixed typo in document abbreviation.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
beY5VchIYn5EtE4Ab25qx2y3t4bcCk2ufgGxHp6ftPPWpG3OEZRqnz0HE6u4
WWO8BK1yJMO6XbY7wyQEIm7fklc7rgK43hM8FLaiazip5uFwjG1LdAzM22au
G7pRdCfcPmo162kxg9wO90godSlzw8aZ1JelXPDR8K+H6y32pKazOlIvkFdS
34mOLaADbV/j+Z4OuZ4CpjZiwt0nD8zo2eLNTMUYTMyQg2a3O6RH2/ocKiWo
xQDQl5ZkT5gAvoG1icBjKAJB1SLCgJxPmdqNDW3SBXuyd1EwiA2kp4kQl818
Y3NsPYKYHGZU8mK9bIvrZF43b73uuZByMo2AusaPf/jXBri+48RRQYEznSqH
ssCUc+hBkQ2mDgIhvHnqjv/MFHbA1ltL4+b9tz9IozCvyCAwJqHpgGB0hM3B
hs0Wtjlxge0IUHus3D2othe8eoPR8I8CXsjkasRDNMgr7Q1GHYMk3fBQzlLP
Qohrta4OBEoIfgn2ae6b0ldT8CIRthuWn0UX9U0LxppLd6588kN2L492L/bw
3cvLdy/2oN3Lq+1ebNnuZZ0S++zs0cq+umf76usQ7nDq7S1zRvlzbn+53u65
BS5ZB19lYMRAYoFgBv5L3TSOJxylHQG5oYnVlqGTDKKlzz4d1FScxweraOJV
IImHAexRw2/rxjogBxeI02VIMMEvo8kT50WjfV+VveiwLYD+CouwkcKOSyJc
NbbhGtbVQEFs2dQByxVTcACQEjVGzGg82GTKbOSy7X+IB6aLb4oh/YHcfFgg
BDooFLI7QuEDQowZsnTa4a0V1QIoksPmXuoGlNL+D+swlBD1Rfh+PO/+vV8t
LtawgxvNQGAjGeIJaW4EZODL4qJfng/R0ewbmnRhNlFhTMWaEWq1pDoI/85S
sD+PIreNcdIInWsyIenkrRQ+VlhgvtloZ3Jm/zVVJI9gqrvR8ztzVkyHwJ7N
ye2eR36Nxbb1RGwmJ+Irk4BZ+9EqFHiMIHyOjkqkFP1y2BEtTaYgWlKorarO
6MQmlJqaI7655bRwGkEeVrb2mrO2bJqDwnEBotLEr+S7GwyTa0g5TcPaZK97
3S7Y+1t3Osqqf2+dOuFpv6iO2V1/b9kZuj/eYaFXAN5c9sfycbZixl1r7CsA
PxLxBKSySHk0tE/HAs+SN/ISBiQeLlv0tlIKbNtSgJB8IUJFdwkWkLT1sISE
zbDJKsDGg5XiWYlkt5zg1pB8uTVcikSDgSeijuwOJHQzK10irsvJ0Dy9kKGa
JDyqSgycXd+FpFtGMpBR3ZQMEu10ck7kV1GkS1a9XVbkGRwimqGwqlYLOF44
HC9EeCXjKopli1bj+EKF2TKahkcOx5E0tlWuFLFQmaVmq4Wx9+A4xWRiwfUA
x0zLIT2dKryoYbRO6saIO63idDgWKk7CcRCLZFIzXsLx3PHxXOFZX0VWYtmi
O/hQ10DgEhyvHI5XPE2rKGYr1qzCUbogeybwlBfvJCKOH/7okEB9VmOjWJMU
az4Mibk6kVpGdh2OXTSiurTsKnt0m97NyBE5IbY5MOGb54wP/WBonvoQowUU
1dWwlUUyVpmmWsqsXI1jNxF8QbYUTjCYkBMaa4oW4yOvrP0IB4m+3DY4+tkI
hLIExVV16R2yWhXgx6mV1ROBRWXdHZbxvspBVvIxgRqJnp7izYf4/VhW41jp
6COeGBx7PPkQNu7AsS8neM4MJbtKsNGR49gb2qe9eSr0B2CpRvdOZQ/Zx3sr
Z9g2rnMiU9wPAQumJe/dC+/CkudTp3T4IfJkambfbYk+VngjBfMdYMd9W0ya
sOg2WRWlOwYouoDp6oENcR9kVkpX2JIH+DhXKTAPY791HHQ2333347f/yUyu
87Ww3/+h/P3d9/azeMPN6EHp8/c/fvs/9vtM4GoM+tXv/2W/gxuZ74Py93ff
2c8TOTGfnxaff/z2e2Y/R8J+Pi5//m/3+RJ2fhq9LAH/j3yxDEOJg1F58f/S
BPPdTxQO//CnygSDAGfEPDbw49oEJ52Z9M2EWRUFMYgTphBkCce0LF1Doavf
UMNNNmxcRo1hj7IZE31oMKLBY2SlNPrDn+wwcFAajmn0JVBdGpxpHDwFSo1t
W7g//DEHrGALMhSYQSTBDR2/ommgh2vcDekyjbvrU60c3MH0T3K244B7yw91
iqP2ohbM6am1yIq5Dz3g8f4cLbKf6oCHcS+/lFVo5GdscRVyv1+Lq1i3cI0k
nSZCNEPzM52cW2xWFSfApaMdCN3li9QQtt395Lx5s2gcP/Uhbv0+R6n9e2Dv
bBLxVWdz1zmb8GnB4fCSXPnKiQ9EAwu0xmT5ueGi0iCCN50dg60EgWv8D1E9
pvlAdTsJxQlz+AmIBIb8kDoNdAEisYW0o9n5gFfCYWTCCqF8YsYbq393h3eS
EULbwWtfbbbXjPg+kQG1puYWihlE0mD4H01rqcYG9pb+eaOsD2PbZm1h4EVv
Cu9R52+lddbj7BH5Yicfx27LnazBtKoZzGadWkZ4t5d6YK5pahs+aGgrBHhv
CRYg3yfDv7hs1rDGzhL3Awg6UkV03Pb8+nhPNrDtBrpTYKeD/QdNWZve9CvT
wS92Q3NG665Nl9QQKGziMT4eY4ijY0KoYDkdroVlNUA8krGpyPCnsZyODuem
2QdyDotb4uaHZO7ccBKrxKi41MSjbplB7S2//drCE1p3qJoffwIWIGWBCQh2
XqkvXTqpIjKku4tbPqkq88YnHHkDBL6axPJrcFud/0zwkW3FVTtx6xgM8NfA
iWD5NWZ/TlduD3df7i7qTPKYL6qmejl8CmEW8i4CwClvcJfNR9y/pAwE9ugJ
/nIEsp8P+m10x7vpmaArgr9tjHmoReMWt6iLWUDnuWqEnVMQyNmTPuvudHfy
WEb3bnEUrw6BHOgy0TqdjOCWQIejaDQiicwlGXcTqUGmIniAVlN8wd2JLvi6
e6zMZUcIcy9RPBDUF7U/q2Bg1LHdxNzRN/62AyI4fGGPtPsxRXEPnKjbDTD5
WHIaQYdhd5+Rue4q3lrI9zprohv5TwlY3edM3jEVPEyneCxu7pkXt3JY6bcD
H6HEzVVKfAIlFOVZeGZbujNNv7WXea7Idv3LWF1DrJ3QdeLl4AYn+ydgdm6m
aHn/B4rB7g38PwAA

-->

</rfc>
