<?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-02" 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-02"/>
    <author fullname="Clemens Vasters">
      <organization>Microsoft Corporation</organization>
      <address>
        <email>clemensv@microsoft.com</email>
      </address>
    </author>
    <date year="2025" month="December" day="04"/>
    <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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
dLz/AxKimSv8PwAA

-->

</rfc>
