<?xml version="1.0" encoding="utf-8"?>
<rfc version="3" ipr="trust200902" docName="draft-morgan-ten64-00" 
     submissionType="IETF" category="info" xml:lang="en">
  <front>
    <title abbrev="Ten64">Text Encoded Base 64 Numbers (Ten64)</title>
    
    <author initials="S." surname="Morgan" fullname="Scott Morgan">
      <organization>Adligo Inc.</organization>
      <address>
        <email>scott@adligo.com</email>
        <uri>https://github.com/adligo/ten64.adligo.org</uri>
      </address>
    </author>

    <date year="2026" month="April" day="1"/>

    <area>Applications and Real-Time</area>
    <workgroup>Internet Engineering Task Force</workgroup>

    <abstract>
      <t>
        Ten64 is a <xref target="positional-number-systems-wikipedia" format="none" sectionFormat="bare">positional
        numeral system</xref> for representing numeric values with an alphabet of
        64 characters <xref target="radix-wikipedia" format="none" sectionFormat="bare">(aka. radix/base 64)</xref>.
        However, unlike most <xref target="positional-number-systems-wikipedia" format="none" sectionFormat="bare">
        positional number systems</xref>, the characters are written in ascending
        (aka. <xref target="endian-wikipedia" format="none" sectionFormat="bare">big-endian</xref>,
        <xref target="network-order-ibm" format="none" sectionFormat="bare">network-order</xref>) and NOT descending
        order. The main differences are the use of <xref target="sextet" format="none" sectionFormat="bare">sextets
        (six bits)</xref> instead of <xref target="octet" format="none" sectionFormat="bare">octets (aka. bytes)
        </xref>. Similar to <xref target="hexadecimal" format="none" sectionFormat="bare">hexadecimal</xref>, Ten64
        can be used to create binary strings of arbitrary length. Ten64 can encode
        one or more <xref target="modern-western-numeral-system" format="none" sectionFormat="bare">Modern Western
        Numbers (aka. Arabic, Vedic)</xref>, interpreting the characters respective
        <xref target="endian-wikipedia" format="none" sectionFormat="bare">composite big-endian binary</xref> as a
        one or more <xref target="modern-western-numeral-system"  format="none" sectionFormat="bare">Modern Western
        Numbers</xref>.
      </t>
      
      <t>
        The motivation for Ten64 is to encode numbers in a compact and
        human-readable format similar to <xref target="base58" format="none"
        sectionFormat="bare">Base58</xref>. However, Ten64 is designed to be
        <xref target="performance" format="none" sectionFormat="bare">optimized
        </xref> for use with numbers commonly used in identifiers, such as
        <xref target="decentralized-identifiers-dids" format="none"
        sectionFormat="bare">DIDs</xref>, <xref target="doid-repo" format="none"
        sectionFormat="bare">DOIDs</xref>, <xref target="iana-oids" format="none"
        sectionFormat="bare">IANA OIDs</xref>, <xref target="uuid-rfc-9562" format="none"
        sectionFormat="bare">UUIDs</xref>, <xref target="date-interpretations" format="none"
        sectionFormat="bare">dates</xref>, <xref target="time-interpretations" format="none"
        sectionFormat="bare">time</xref><xref target="militimestamp-interpretations" format="none"
        sectionFormat="bare">(stamp)s</xref>, <xref target="point-interpretations" format="none"
        sectionFormat="bare">points</xref>, and more. Unlike <xref target="base58"
        format="none" sectionFormat="bare">Base58</xref>, and more like <xref
        target="hexadecimal" format="none" sectionFormat="bare">hexadecimal
        </xref> Ten64 aligns the <xref target="modern-western-numeral-system"
        format="none" sectionFormat="bare">Modern Western Numerals</xref> with
        the respective big-ending binary (i.e.; 0 → 0, 1 → 1, 2 → 11, etc).
        Finally, Ten64 provides a disk-based number encoding system for huge
        numbers and number streams.
      </t>
    </abstract>
  </front>
  
  

  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      
      <t>This section is non-normative.</t>
      
      <t>
        Alternative notations and bases have historically been explored to
        improve human-machine interfaces, ranging from early discussions on
        <xref target="CACM-Binary" format="none" sectionFormat="bare">binary
        notations</xref> to modern concepts like <xref target="hexadecimal"
        format="none" sectionFormat="bare">Hexadecimal</xref>, and <xref
        target="bioctal" format="none" sectionFormat="bare">Bioctal</xref>.
        Ten64 builds on this history by using a 64-character alphabet composed
        of standard <xref target="ASCII-7" format="none" sectionFormat="bare">
        ASCII-7</xref> / <xref target="UTF-8" format="none"
        sectionFormat="bare">UTF-8 characters</xref>.
      </t>

      <t>
        In addition to providing a solid manor to represent numbers using
        characters and their respective binary representations, Ten64 extends
        these representations with interpretation conventions. These
        interpretation conventions will likely be specified by some sort of
        schema system like <xref
        target="ejcn-extensible-json-classification-notation-schemas"
        format="none" sectionFormat="bare">EJCN (Extensible JSON Classification
        Notation) Schemas</xref>, <xref target="json-schemas" format="none"
        sectionFormat="bare">JSON Schemas</xref> or <xref target="xml-schemas"
        format="none" sectionFormat="bare">XML Schemas</xref>.
      </t>

      <section anchor="requirements">
        <name>Requirements Language</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.</t>
        <t>This document aligns with the formal IETF standardization 
        procedures defined by the Internet Standards Process in BCP 9 
        <xref target="RFC2026"/>.</t>
      </section>
    </section>

    <section anchor="human-readable-verses-human-decipherable" 
             title="Human-Readable Verses Human-Decipherable">
      <t>
        In Ten64, we are targeting human-readable characters in the alphabet
        but do NOT intend to be human-decipherable. Our definition of these
        terms MAY be specific to this paper.
      </t>
    
      <section anchor="what-is-human-readable" title="What is Human-Readable?">
        <t>
          Our intended meaning of the term human-readable in Ten64 is that a
          human will be able to distinguish the characters from each other. We
          believe the best way of explaining this is with an example where one
          human would literally read the characters to another human over an
          audio-only telephone call. For example, the word Adligo is spelled
          out using a spelled-out phonetic alphabet.
        </t>
        <sourcecode>
    Capital A, as in Apple.
    Small d, as in dog.
    Small l, as in lake.
    Small i, as in indigo.
    Small g, as in golf.
    Small o as in otter.
        </sourcecode>
        <t>
          This is clearly human-readable.
        </t>
      </section>
    
      <section anchor="what-is-human-decipherable" 
               title="What is Human-Decipherable?">
        <t>
          Our intended meaning of the term human-decipherable in Ten64 is that
          most humans would be able to decipher the character stream. Ten64
          does NOT target human-decipherability. We consider
          human-decipherability to be out of scope and may target another ID/
          RFC for this work. Ten64 targets computer-decipherability and will
          rely on computer algorithms to translate Ten64 into in-memory integer
          and decimal numbers. In particular;
        </t>
        <ul>
          <li>
            <xref target="ten64-integer-serialization-algorithm" format="none" 
            sectionFormat="bare">The Ten64 Integer Serialization Algorithm</xref>
          </li>
          <li>
            <xref target="ten64-decimal-serialization-algorithm" format="none" 
            sectionFormat="bare">The Ten64 Decimal Serialization Algorithm</xref>
          </li>
        </ul>
        <t>
          Although this is decipherable for some humans who are developers or
          software architects, this point might seem insignificant. For the vast
          majority of the population, it is significant. The point is that
          software tools will generally be used to decipher Ten64.
        </t>
      </section>
    </section>

    <section anchor="special-chars-intro">
      <name>Special Characters Introduction</name>

      <t>
        Ten64 does NOT use the <xref target="base64-rfc-4648" format="none"
        sectionFormat="bare">Base64 RFC 4648</xref> alphabet but a alphabet
        more in line with <xref target="hexadecimal" format="none"
        sectionFormat="bare">hexadecimal</xref> 0-9,a-k,$,m-z,A-H,+,J-N,!,P-Z, '@' and '_' along
        with some additional special characters most notably '#','.',',' and
        ';', '-', and the UNIX Line Feed 10 (0x0A in <xref target="hexadecimal"
        format="none" sectionFormat="bare">hexadecimal</xref>). It is designed
        to be human and machine-readable but is really designed to be <xref
        target="performance" format="none" sectionFormat="bare">optimized</xref>
        the reading and writing of numbers for streaming and storage computer
        systems. The $,+,!, @ and _ symbols were chosen
        because they human-readable. Theoretically, this system could also be
        used embed numbers into programming languages in the future. However,
        usage MAY require the explicit starting character pound '#', and
        explicit termination semicolon character ';'. It will use a big ending
        binary system as follows;
      </t>
    </section>
    
    <section anchor="special-chars">
      <name>Special Characters and Sequence Details</name>
        <sourcecode>
#   Optional explicit beginning of #Ten64 binary section, use depending
    on context.
#.. The optional explicit beginning of a multiple line Ten64 sequence.
.   The Decimal, List or Number Space Separator
,   The Separator for Number Lists
;   Optional explicit end of #Ten64 sequence.
-   The negative indicator, and human-readable separator
    Whitespace Characters: including Line Feeds, Tabs,
       Spaces, Return Sequences, etc. MAY be included
       and MUST cause end of interpretation of the
       Ten64 sequence.
UNIX Line Feeds:
    UNIX line feeds 10 / hex 0x0A
    MAY be used to continue a number sequence when the number
    sequence starts with '#..'.

    Other Non Alphabet Characters: MAY be included
       and MUST cause end of interpretation of the
       Ten64 sequence.
      </sourcecode>
    </section>

    <section anchor="alphabet">
      <name>The Ten64 Alphabet Mappings</name>

      <table align="center">
        <name>Ten64 Alphabet Mappings</name>
        <thead>
          <tr>
            <th>Primary ASCII / UTF8</th>
            <th>Modern Western Integer Value</th>
            <th>Big-Ending Binary Sextet</th>
          </tr>
        </thead>
        <tbody>
          <tr><td>0</td><td>0</td><td>000000</td></tr>
          <tr><td>1</td><td>1</td><td>100000</td></tr>
          <tr><td>2</td><td>2</td><td>010000</td></tr>
          <tr><td>3</td><td>3</td><td>110000</td></tr>
          <tr><td>4</td><td>4</td><td>001000</td></tr>
          <tr><td>5</td><td>5</td><td>101000</td></tr>
          <tr><td>6</td><td>6</td><td>011000</td></tr>
          <tr><td>7</td><td>7</td><td>111000</td></tr>
          <tr><td>8</td><td>8</td><td>000100</td></tr>
          <tr><td>9</td><td>9</td><td>100100</td></tr>
          <tr><td>a</td><td>10</td><td>010100</td></tr>
          <tr><td>b</td><td>11</td><td>110100</td></tr>
          <tr><td>c</td><td>12</td><td>001100</td></tr>
          <tr><td>d</td><td>13</td><td>101100</td></tr>
          <tr><td>e</td><td>14</td><td>011100</td></tr>
          <tr><td>f</td><td>15</td><td>111100</td></tr>
          <tr><td>g</td><td>16</td><td>000010</td></tr>
          <tr><td>h</td><td>17</td><td>100010</td></tr>
          <tr><td>i</td><td>18</td><td>010010</td></tr>
          <tr><td>j</td><td>19</td><td>110010</td></tr>
          <tr><td>k</td><td>20</td><td>001010</td></tr>
          <tr><td>$</td><td>21</td><td>101010</td></tr>
          <tr><td>m</td><td>22</td><td>011010</td></tr>
          <tr><td>n</td><td>23</td><td>111010</td></tr>
          <tr><td>o</td><td>24</td><td>000110</td></tr>
          <tr><td>p</td><td>25</td><td>100110</td></tr>
          <tr><td>q</td><td>26</td><td>010110</td></tr>
          <tr><td>r</td><td>27</td><td>110110</td></tr>
          <tr><td>s</td><td>28</td><td>001110</td></tr>
          <tr><td>t</td><td>29</td><td>101110</td></tr>
          <tr><td>u</td><td>30</td><td>011110</td></tr>
          <tr><td>v</td><td>31</td><td>111110</td></tr>
          <tr><td>w</td><td>32</td><td>000001</td></tr>
          <tr><td>y</td><td>33</td><td>100001</td></tr>
          <tr><td>x</td><td>34</td><td>010001</td></tr>
          <tr><td>z</td><td>35</td><td>110001</td></tr>
          <tr><td>A</td><td>36</td><td>001001</td></tr>
          <tr><td>B</td><td>37</td><td>101001</td></tr>
          <tr><td>C</td><td>38</td><td>011001</td></tr>
          <tr><td>D</td><td>39</td><td>111001</td></tr>
          <tr><td>E</td><td>40</td><td>000101</td></tr>
          <tr><td>F</td><td>41</td><td>100101</td></tr>
          <tr><td>G</td><td>42</td><td>010101</td></tr>
          <tr><td>H</td><td>43</td><td>110101</td></tr>
          <tr><td>+</td><td>44</td><td>001101</td></tr>
          <tr><td>J</td><td>45</td><td>101101</td></tr>
          <tr><td>K</td><td>46</td><td>011101</td></tr>
          <tr><td>L</td><td>47</td><td>111101</td></tr>
          <tr><td>M</td><td>48</td><td>000011</td></tr>
          <tr><td>N</td><td>49</td><td>100011</td></tr>
          <tr><td>!</td><td>50</td><td>010011</td></tr>
          <tr><td>P</td><td>51</td><td>110011</td></tr>
          <tr><td>Q</td><td>52</td><td>001011</td></tr>
          <tr><td>R</td><td>53</td><td>101011</td></tr>
          <tr><td>S</td><td>54</td><td>011011</td></tr>
          <tr><td>T</td><td>55</td><td>111011</td></tr>
          <tr><td>U</td><td>56</td><td>000111</td></tr>
          <tr><td>V</td><td>57</td><td>100111</td></tr>
          <tr><td>W</td><td>58</td><td>010111</td></tr>
          <tr><td>X</td><td>59</td><td>110111</td></tr>
          <tr><td>Y</td><td>60</td><td>001111</td></tr>
          <tr><td>Z</td><td>61</td><td>101111</td></tr>
          <tr><td>@</td><td>62</td><td>011111</td></tr>
          <tr><td>_</td><td>63</td><td>111111</td></tr>
        </tbody>
      </table>
    </section>

    <section anchor="use-cases" title="Use-Cases">
      <section anchor="shortened-identifiers" title="Shortened Identifiers">
        <t>
          The primary Use-Case is simply an upgrade of <xref
          target="hexadecimal" format="none" sectionFormat="bare">hexadecimal
          </xref>, where Ten64 provides a more succinct/compressed string of
          characters. In addition, we target the encoding of numbers (n in the
          <strong>Text Encoded Base 64 Numbers</strong> title). Generally, we are
          also targeting identifiers of all kinds, attempting to make them as
          short as possible to improve human readability. Finally, we target
          human-readable compressed identifiers shortening <xref
          target="uuid-rfc-9562" format="none" sectionFormat="bare">UUID's</xref>
          as follows;
        </t>
        <sourcecode>
    # 36 character UUID
    00000000-0000-0000-0000-000000000000
    # to 27 characers
    000000.000.000.000.00000000
    # or 22 characters 128/6
    0000000000000000000000
    # or single or short sequences characters for small numbers
    0
        </sourcecode>
      </section>
    
      <section anchor="huge-numbers-and-the-10-6-4-convention" 
               title="Huge Numbers and the 10-6-4 Convention">
        <t>
          Ten64 is designed to be used to encode huge numbers, and is also
          <xref target="performance" format="none" sectionFormat="bare">optimized
          </xref> for this use-case. The 10-6-4 convention suggests huge strings
          of numbers SHOULD be segmented into segments of ten characters, six
          characters, and then four characters. In addition, these huge strings
          MAY be separated by the Unix line feed. This also creates a convention
          of at MOST 92 characters per line SHOULD be used, it is an effort to
          improve human readability.
        </t>
        <sourcecode>
    #..
    0123456789-abcdef-ghij-k$mnopqrst-uvwyxz-ABCD-EFGH+JKLMN-!PQRST-UVWY-XZ@_012345-6789ab-cdef
    ghijk$mnop-qrstuv-wyxz-ABCDEFGH+J-KLMN!P-QRST-UVWYXZ@012-345678-9abc-defghijk$m-nopqrs-tuvw
    yxzABCDEFG-H+JKLM;
    #..
    0123456789-abcdef-ghij-k$mnopqrst-uvwyxz-ABCD-EFGH+JKLMN-!PQRST-UVWY-XZ@_012345-6789ab-cdef
    ghijk$mnop-qrstuv-wyxz-ABCDEFGH+J-KLMN!P-QRST-UVWY.XZ@012-345678-9abc-defghijk$m-nopqrs-tuv
    wyxzABCDEF-GH+JKL-M;
        </sourcecode>
        <t>
          The above code illustrates a huge integer number and a huge decimal
          number. These kinds of Ten64 character sequences MAY be included as
          strings or as template literals in many programming languages. In
          addition, these huge numbers MAY be streamed from disk or over the
          network.
        </t>
      </section>
    </section>
    
    <section anchor="binary" title="Binary">
      <t>
        Ten64 is also a system to create <xref 
        target="bitslotmaps" format="none" sectionFormat="bare">
        BitSlotMaps#1.3.6.1.4.1.33097.1.1.3</xref> (aka, BinaryStrings,
        BitVectors, BitSets, etc). Numbers are read into memory using the
        <xref target="ten64-integer-serialization-algorithm" format="none"
        sectionFormat="bare">Ten64 integer serialization algorithm</xref>. Then
        the binary integer numbers MAY be reinterpreted per the user's wishes.
      </t>
      <t>
        Ten64 MAY also be used to represent arbitrary <xref target="octet"
        format="none" sectionFormat="bare">octet arrays</xref>. Note, conversion
        to <xref target="octet" format="none" sectionFormat="bare">octet arrays
        </xref> is NOT the primary <xref target="use-cases" format="none"
        sectionFormat="bare">Use-Case</xref> of Ten64, and that round tripping
        between <xref target="octet" format="none" sectionFormat="bare">octet
        arrays</xref> MAY introduce issues.
      </t>
    
      <section anchor="ten64-to-octet-array-conversion" 
               title="Ten64 to Octet Array Conversion">
        <t>
          When converting Ten64 binary to an array of <xref target="octet"
          format="none" sectionFormat="bare">octets</xref>, all missing bits MUST
          be filled with zeros. This is to ensure that the binary consists of
          complete <xref target="octet" format="none" sectionFormat="bare">octets
          </xref>.
        </t>
      </section>
    
      <section anchor="ten64-from-octet-byte-array-conversion" 
               title="Ten64 from Octet (Byte) Array Conversion">
        <t>
          When converting arrays of octets to the Ten64 alphabet, all '0'
          characters from the Ten64 alphabet at the right MUST be omitted.
        </t>
      </section>
    </section>
    
    <section anchor="related-technologies" title="Related Technologies">
      <t>
        There are a ton of libraries in various languages, for example
        <xref target="BigInt-Java" format="none" sectionFormat="bare">Java's BigInteger
        </xref> influenced the
        <xref target="ECMA-262" format="none" sectionFormat="bare">ECMA Script BigInt
        </xref>. In addition, this
        <xref target="ECMA-262" format="none" sectionFormat="bare">ECMA Script</xref>
        <xref target="BigDecimal-NPM" format="none" sectionFormat="bare">BigDecimal
        </xref> implementation is based on
        <xref target="BigDecimal-Java" format="none" sectionFormat="bare">
        Java's BigDecimal</xref>. We do NOT expect Ten64 to gain wide adoption over
        the
        <xref target="modern-western-numeral-system" format="none"
        sectionFormat="bare">Modern Western Numeral System</xref>, since the
        <xref target="modern-western-numeral-system" format="none"
        sectionFormat="bare">Modern Western Numeral System</xref> is taught in early
        elementary schools and used all the way through advanced mathematics classes.
      </t>
    </section>

    <section anchor="performance" title="Performance">
      <t>
        Ten64 significantly reduces the number of characters required for encoding, 
        which saves on disk space in files and on the number of
        bytes transferred over sockets. Ten64 SHOULD be implemented using a more
        optimal algorithm to serialize and de-serialize the data than <xref
        target="modern-western-numeral-system" format="none"
        sectionFormat="bare">Modern Base-10 Numeral System</xref> serialization
        uses.
      </t>
    
      <t>
        To create integers from the Ten64 alphabet, algorithms SHOULD use switch
        statements to convert the Ten64 alphabet into little-endian
        binary (used in the majority of in memory number systems). Then the
        algorithms should shift the bits and use the binary and (i.e. &amp;)
        operator to aggregate the number into integers. This <xref
        target="ten64-integer-serialization-algorithm" format="none"
        sectionFormat="bare">Ten64 Integer
        Serialization#1.3.6.1.4.1.33097.0.2.4</xref> Algorithm will complete
        with a O(s) serialization and O(c) de-serialization time cost.  Note; 
        s and c represent the <xref target="sextet" format="none" sectionFormat="bare">
        sextets</xref> and characters in the previous sentence, 
        respectively.
      </t>
    
      <t>
        Comparison with other algorithms which use various serialization and
        de-serialization forms to and from the <xref
        target="modern-western-numeral-system" format="none"
        sectionFormat="bare">Modern Western Numerical System</xref> is generally
        much slower.
      </t>
    
      <ul>
        <li>
          <xref target="number-conversion-calculator" format="none"
          sectionFormat="bare">Number Conversion Calculator</xref>
        </li>
        <li>
          <xref target="Number-Conversion-Instructables" format="none"
          sectionFormat="bare">Number Conversion at Instructables</xref>
        </li>
        <li>
          <xref target="Number-Conversion-Khan-Academy" format="none"
          sectionFormat="bare">Number Conversion at Khan Academy</xref>
        </li>
        <li>
          <xref target="Number-Conversion-Lumen" format="none"
          sectionFormat="bare">Number Conversion at Lumen</xref>
        </li>
        <li>
          <xref target="Number-Conversion-WikiHow" format="none"
          sectionFormat="bare">Number Conversion at WikiHow</xref>
        </li>
      </ul>
    
      <t>
        However, when converting decimal numbers using <xref
        target="ten64-decimal-serialization-algorithm" format="none"
        sectionFormat="bare">Ten64 Decimal
        Serialization#1.3.6.1.4.1.33097.0.2.5</xref>, division is required.
        Depending on the <xref target="MathAsympoticProcessorPerformanceWikipedia"
        format="none" sectionFormat="bare">division algorithm</xref> used, this
        is roughly comparable to serialization and de-serialization of the <xref
        target="modern-western-numeral-system" format="none"
        sectionFormat="bare">Modern Western Numerical System</xref> covered above.
      </t>
    </section>

    <section anchor="compatibility" title="Compatibility">
      <t>
        When drafting Ten64, we went through great lengths to attempt to make it as
        compatible as possible with the largest number of usage environments. However,
        it is impossible to have pristine compatibility with such a large variety of
        usage environments. In short, for use in the
        <xref target="rest-programming-style" format="none" sectionFormat="bare">REST Programming
        Style</xref> or other
        <xref target="uri-rfc-3986" format="none" sectionFormat="bare">URI/HTTP based
        systems</xref> we recommend using Reserved Expansion from
        <xref target="URI-Templates-RFC6570" section="3.2.3" format="none"
        sectionFormat="bare">URI Template Variable Values</xref> with Ten64, ommitting
        the '#' and ';'.
      </t>
    
      <section anchor="uri-and-uri-template-compatibility"
               title="URI and URI Template Compatibility">
        <t>
          The following Ten64 alphabet characters MAY have issues with
          <xref target="uri-rfc-3986" format="none" sectionFormat="bare">URIs
          </xref> and <xref target="URI-Templates-RFC6570" format="none"
          sectionFormat="bare">URI Templates</xref>. The following section is
          in order of usage in Ten64.
        </t>
      </section>
    
      <section anchor="leading-special-characters"
               title="Leading Special Characters">
        <section anchor="uri-pound-symbol" title="URI Pound Symbol '#'">
          <t>
            The pound symbol is a protected character by the <xref
            target="uri-rfc-3986" section="3.2" format="none" sectionFormat="bare">
            URIs RFC3986 section 3.2</xref>. When using Ten64 inside of URIs
            (aka URLs), the pound symbol MUST be either omitted or escaped with a
            percent sign '%23'. Additionally, no major conflicts are foreseen with
            <xref target="URI-Templates-RFC6570" format="none"
            sectionFormat="bare">URI Templates</xref>.
          </t>
        </section>
    
        <section anchor="uri-minus-symbol" title="URI Minus Symbol '-'">
          <t>
            The minus symbol is an unreserved character by the <xref
            target="uri-rfc-3986" section="2.3" format="none" sectionFormat="bare">
            URIs RFC3986 section 2.3</xref>. No special treatment of this
            character is required for <xref target="uri-rfc-3986" format="none"
            sectionFormat="bare">URIs</xref>. However, <xref
            target="URI-Templates-RFC6570" section="2.3" format="none"
            sectionFormat="bare">URI Template Variable Names</xref> will require
            encoding as '%2D'.
          </t>
        </section>
      </section>
    
      <section anchor="alphabet-characters" title="Alphabet Characters">
        <section anchor="uri-dollar-sign-symbol" title="URI Dollar Sign Symbol '$'">
          <t>
            The dollar sign symbol is a sub-delim character by the <xref
            target="uri-rfc-3986" section="3.4" format="none" sectionFormat="bare">
            URIs RFC3986 section 3.4</xref>. It is explicitly permitted in the
            <xref target="uri-rfc-3986" section="3.4" format="none"
            sectionFormat="bare">query component of a URI</xref>. Although NOT
            required by Ten64, some languages MAY require URL encode the dollar
            symbol. In particular, Bash, PowerShell, PHP, Perl, and Ruby where it
            is used to trigger variable expansion.
          </t>
          <t>
            Simple String Expansion in <xref target="URI-Templates-RFC6570"
            section="3.2.2" format="none" sectionFormat="bare">URI Template
            Variable Values</xref> MUST encode the dollar sign '$' as '%24'.
            However, Reserved Expansion in <xref target="URI-Templates-RFC6570"
            section="3.2.3" format="none" sectionFormat="bare">URI Template
            Variable Values</xref> MUST NOT encode the dollar sign '$'.
          </t>
        </section>
    
        <section anchor="uri-plus-symbol" title="URI Plus Symbol '+'">
          <t>
            The plus symbol is a sub-delim character by the <xref
            target="uri-rfc-3986" section="3.4" format="none" sectionFormat="bare">
            URIs RFC3986 section 3.4</xref>. It is explicitly permitted in the
            <xref target="uri-rfc-3986" section="3.4" format="none"
            sectionFormat="bare">query component of a URI</xref>. However, many
            languages and libraries (PHP, Python's urllib, Java Servlets)
            automatically decode this as a space, so it MAY need to be escaped as
            '%2B'.
          </t>
          <t>
            Simple String Expansion in <xref target="URI-Templates-RFC6570"
            section="3.2.2" format="none" sectionFormat="bare">URI Template
            Variable Values</xref> MUST encode the plus symbol as '%2B'.
            However, Reserved Expansion in <xref target="URI-Templates-RFC6570"
            section="3.2.3" format="none" sectionFormat="bare">URI Template
            Variable Values</xref> MUST NOT encode the plus symbol '+'.
          </t>
        </section>
    
        <section anchor="uri-exclamation-mark" title="URI Exclamation Mark '!'">
          <t>
            The exclamation mark is a sub-delim character by the <xref
            target="uri-rfc-3986" section="2.2" format="none" sectionFormat="bare">
            URIs RFC3986 section 2.2</xref>. It is explicitly permitted in the
            <xref target="uri-rfc-3986" section="3.4" format="none"
            sectionFormat="bare">query component of a URI</xref>. However, many
            languages and libraries (Express.js, Ruby on Rails, and Django)
            automatically decode this as a space, so it MAY need to be escaped as
            '%21'.
          </t>
          <t>
            Simple String Expansion in <xref target="URI-Templates-RFC6570"
            section="3.2.2" format="none" sectionFormat="bare">URI Template
            Variable Values</xref> MUST encode the exclamation mark '!' as '%21'.
            However, Reserved Expansion in <xref target="URI-Templates-RFC6570"
            section="3.2.3" format="none" sectionFormat="bare">URI Template
            Variable Values</xref> MUST NOT encode the exclamation mark '!'.
          </t>
        </section>
      </section>
    
      <section anchor="internal-and-trailing-special-characters"
               title="Internal and Trailing Special Characters">
        <section anchor="uri-period" title="URI Period '.'">
          <t>
            The period is unreserved in <xref target="uri-rfc-3986" format="none"
            sectionFormat="bare">URIs RFC3986</xref>. However, it is often used
            for relative paths, We do NOT anticipate any compatibility issues.
          </t>
        </section>
    
        <section anchor="uri-semicolon" title="URI Semicolon ';'">
          <t>
            The semicolon symbol is a sub-delim character by the <xref
            target="uri-rfc-3986" section="3.4" format="none" sectionFormat="bare">
            URIs RFC3986 section 3.4</xref>. It is explicitly permitted in the
            <xref target="uri-rfc-3986" section="3.4" format="none"
            sectionFormat="bare">query component of a URI</xref>. There may be
            legacy issues with Python and Java servlets, which have NOT received
            security patches. The semicolon MAY be omitted or encoded as '%3B'.
          </t>
          <t>
            Simple String Expansion in <xref target="URI-Templates-RFC6570"
            section="3.2.2" format="none" sectionFormat="bare">URI Template
            Variable Values</xref> MUST encode the seimcolon symbol ';' as '%3B'.
            However, Reserved Expansion in <xref target="URI-Templates-RFC6570"
            section="3.2.3" format="none" sectionFormat="bare">URI Template
            Variable Values</xref> MUST NOT encode the semicolon ';'.
          </t>
        </section>
      </section>
    
      <section anchor="did-compatibility" title="DID Compatibility">
        <t>
          We removed the use of the colon ':' and replaced it with an exclamation
          point '!', specifically to increase compatibility with the <xref
          target="decentralized-identifiers-dids" format="none"
          sectionFormat="bare">DID specification</xref>. However depending on
          usage, Ten64 MAY still require URI encoding for use with <xref
          target="decentralized-identifiers-dids" format="none"
          sectionFormat="bare">DIDs</xref>.
        </t>
        <sourcecode type="uri">
    did:ten64:abc123
        </sourcecode>
      </section>
    
      <section anchor="doid-compatibility" title="DOID Compatibility">
        <t>
          <xref target="doid-repo" format="none" sectionFormat="bare">DOID</xref>
          uses Ten64 in a downstream manner, so it is fully compatible with Ten64.
        </t>
      </section>
    
      <section anchor="ejcn-compatibility" title="EJCN Compatibility">
        <t>
          <xref target="ejcn-extensible-json-classification-notation" format="none" sectionFormat="bare">EJCN
          (Extensible JSON Classification Notation)</xref> uses Ten64 in a
          downstream manner, so it is fully compatible with Ten64.
        </t>
      </section>
    
      <section anchor="json-compatibility" title="JSON Compatibility">
        <t>
          <xref target="json-rfc-8259" format="none" sectionFormat="bare">JSON
          Strings</xref> are fully compatible with Ten64, as they use the
          backslash character '\' for escaping characters.
        </t>
      </section>
    
      <section anchor="terminal-shell-compatibility"
               title="Terminal-Shell Compatibility">
        <t>
          Various shells (i.e. Bash) will likely have some compatibility issues
          due to the dollar sign character '$' use when referenceing
          ENVIRONMENT_VARIABLES and function parameters. This can be overcome by
          escaping the dollar sign character '$' with a backslash '\$', or by
          wrapping the text in single quotes.
        </t>
      </section>
    
      <section anchor="xml-compatibility" title="XML Compatibility">
        <t>
          <xref target="xml-compatibility" format="none" sectionFormat="bare">XML
          Strings</xref> are fully compatible with Ten64, as they use the are
          distinct from the big five XML characters '&lt;', '&gt;', '&amp;',
          '&quot;', and '&apos;'.
        </t>
      </section>
    
      <section anchor="other-textual-compatibility"
               title="Other Textual Compatibility">
        <t>
          Ten64 SHOULD be generally compatible with most text files and
          programming syntax. We have intentionally avoided commonly used
          characters like brackets, braces and parentheses '[',']','{','}','(',')'.
          In addition, we have avoided common escape characters '%','&amp;', etc.
        </t>
      </section>
    </section>

    <section anchor="interpretation-conventions" 
             title="Interpretation Conventions">
      <t>
        The Ten64 character sequences may have additional corresponding meta-data
        information from various schema sources like;
      </t>
    
      <ul>
        <li>
          <xref target="ejcn-extensible-json-classification-notation" format="none" 
          sectionFormat="bare">EJCN (Extensible JSON Classification Notation)
          </xref>
        </li>
        <li>
          <xref target="ejcn-extensible-json-classification-notation-schemas" 
          format="none" sectionFormat="bare">EJCN (Extensible JSON Classification 
          Notation) Schemas</xref>
        </li>
        <li>
          <xref target="json-schemas" format="none" sectionFormat="bare">JSON 
          Schemas</xref>
        </li>
        <li>
          <xref target="xml-schemas" format="none" sectionFormat="bare">XML 
          Schemas</xref>
        </li>
      </ul>
    
      <t>
        Although the definitions of all these schema types are out of the scope
        of this document, we supply the following interpretation conventions.
      </t>
    
      <section anchor="default-interpretation" 
               title="The Default Interpretation as Integers, Decimals, and Lists of Lists of Integers">
        <t>
          The following sequences explode as follows;
        </t>
        <sourcecode>
    #0.1;   expands to a list of integers 0, 1 which MAY also be
            interpreted as the decimal 0.1 depending on the context.
    #0.1.2; expands to a segmented number / list of integers 0, 1, 2.
    #01.11; expands the a list of integers 64, 65 which MAY also be
            interpreted as the decimal 64.65 depending on the context.
    #-1.8;  expands to a list of integers -1, 8 and MAY also be
            interpreted as a decimal -1.8 depending on the context.
    #-1.-9  expands to a list of integers -1, -9
        </sourcecode>
      </section>
    
      <section anchor="segmented-number-interpretations-summary" 
               title="Segmented Number Interpretations Summary">
        <t>
          There are several interpretation Use-Cases for segmented numbers,
          including Dates, Datetimes, MiliTimestamps, NanoTimestamps, <xref 
          target="doid-repo" format="none" sectionFormat="bare">DOIDs</xref>, 
          <xref target="iana-oids" format="none" sectionFormat="bare">IANA 
          OIDs</xref>, Points and more.
        </t>
      </section>

      <section anchor="bigdecimal-interpretations" title="BigDecimal Interpretations">
          <t>
            Big Decimals (i.e. Java or Javascript type) can be easily represented with
            Ten64, which encodes the EXACT number of Decimal Places. This provides an
            alternative to
            <xref target="json-rfc-8259" format="none" sectionFormat="bare">JSON</xref>
            (decimal) numbers which MAY use
            <xref target="floating-point" format="none" sectionFormat="bare">
            IETF Single and Double Precision Floating Point</xref> numbers, because of the
            <xref target="ECMA-262" format="none" sectionFormat="bare">ECMAScript standard
            </xref>. The other alternative is to encode the
            <xref target="modern-western-numeral-system" format="none" sectionFormat="bare">
            Modern Western Numerals</xref> as strings, and then use something like a
            <xref target="BigDecimal-Java" format="none" sectionFormat="bare">BigDecimal
            </xref> or
            <xref target="BigDecimal-NPM" format="none" sectionFormat="bare">
            BigDecimal clone</xref> to interpret the text data. See the
            <xref target="commentary" format="none" sectionFormat="bare">commentary</xref>
            for a deep dive on this topic.
          </t>
        </section>

      <section anchor="date-interpretations" title="Date Interpretations">
        <t>
          Dates can be greatly condensed using the Segmented Number base class.
          Dates should be standardized as the year ten64 followed by a dot, and
          one ten64 character for the month and one ten64 character for the day.
          For example;
        </t>
        <sourcecode>
    #Vv.21;  expands to 2023-02-01
        </sourcecode>
      </section>
    
      <section anchor="datetime-interpretations" title="Datetime Interpretations">
        <t>
          Datetimes add the additional timezone, (military time) hour and minute
          to the date. The timezone, (military time) hour and minute each only
          take one ten64 character and can be encoded as follows;
        </t>
        <sourcecode>
    #Vv.216jR;  expands to 2023-02-01 CST 7:53 PM
        </sourcecode>
        <t>
          Note j is 19, in military time -12 = 7 PM.
        </t>
      </section>
    
      <section anchor="list-interpretations" title="List Interpretations">
        <t>
          Ten64 supports lists of number separated by commas, each number MAY
          include whitespace characters on either side of the number;
        </t>
        <sourcecode>
    #1,2,3,4;  expands to a number list of 1,2,3,4
    #1.2.3,4.5.6,7.8.9;  expands to a list of 3d points
        </sourcecode>
      </section>
    
      <section anchor="militimestamp-interpretations" 
               title="MiliTimestamp Interpretations">
        <t>
          MiliTimestamps add a single ten64 character for seconds and separate
          milliseconds with an additional dot.
        </t>
        <sourcecode>
    #Vv.216jR1.2; expands to 2023-02-01 CST 7:53:01.2
    or with milliseconds expanded PM 2023-02-01 CST 7:53:01.002 PM
        </sourcecode>
      </section>
    
      <section anchor="nanotimestamp-interpretations" 
               title="NanoTimestamp Interpretations">
        <t>
          NanoTimestamps add an additional dot, as the MiliSeconds can be
          multiple characters (with values 0-1000), and then multiple ten64
          characters representing the additional (0-1,000,000,000) nanoseconds
          that are NOT tracked as milliseconds.
        </t>
        <sourcecode>
    #Vv.216jR1.2.7;  expands to 2023-02-01 CST 7:53:01.2.7 PM
    or with nanoseconds expanded 2023-02-01 CST 7:53:01.002000007 PM
        </sourcecode>
      </section>
    
      <section anchor="point-interpretations" title="Point Interpretations">
        <t>
          Ten64 can encode 2d, 3d, and Nd points as segmented numbers.
        </t>
        <sourcecode>
    # A 3d decimal point
    #-1.7,-5.2,-7.9;
        </sourcecode>
      </section>
    
      <section anchor="time-interpretations" title="Time Interpretations">
        <t>
          Time will use the time segments from the <xref target="datetime-interpretations" 
          format="none" sectionFormat="bare">Datetime</xref>, <xref 
          target="militimestamp-interpretations" format="none" sectionFormat="bare">MiliTimestpan
          </xref>, and <xref target="nanotimestamp-interpretations" format="none" 
          sectionFormat="bare">NanoTimestamp</xref>.
        </t>
        <sourcecode>
    # The Date Time
    #Vv.216jR;  expands to 2023-02-01 CST 7:53 PM
    # vs just the time part
    #6jR;  expands to CST 7:53 PM
        </sourcecode>
        <t>
          Note j is 19, in military time -12 = 7 PM.
        </t>
      </section>
    </section>

    <section anchor="modern-western-numeral-system" 
             title="Modern Western Numeral System">
      <t>
        Arabic, Ghubari, and Vedic as well as many other numeral systems were
        considered for use in this RFC. We finally settled down on modern the
        name <strong>The Modern Western Numeral System</strong>. It appears that
        numeral systems have influenced each other over the ages, and we will
        likely continue carbon dating each glyph 0-9 for some time, as we have
        recently carbon dated the glyph '0'. In addition, even if we do find an
        older carbon date of a particular glyph, It could take a considerable
        amount of time to determine if that carbon dating references a different
        culture than the main culture which recorded the glyph.
      </t>
      <ul>
        <li>
          <xref target="origin-of-modern-mathematical-numeral">Origin of the
          Numerals</xref>
        </li>
        <li>
          <xref target="carbon-dating-zero">Carbon Dating Reveals the History of
          Zero Is Older Than Previously Thought</xref>
        </li>
      </ul>
      <blockquote>
        Before we go on to analytically review the Hindu-Indian Brahmagubta and
        Islamo-Arabic Ghubari origin of the modern mathematical numeral system
        which is now regarded as the Western Numeral System.
      </blockquote>
      <ul>
        <li>
          <xref target="origin-of-modern-mathematical-numeral">Origin of Modern
          Mathematical Numeral pg 46</xref>
        </li>
      </ul>
    
      <section anchor="modern-western-integers" title="Modern Western Integers">
        <t>
          Modern Western Integers are simply integers composed using the Modern
          Western Numerical System. <strong>Modern Western Integers</strong> MAY
          be positive, negative, or zero.
        </t>
      </section>
    
      <section anchor="modern-western-decimal-numbers" 
               title="Modern Western Decimal Numbers">
        <t>
          Modern Western Decimal Numbers are simply numbers using the Modern
          Western Numeral System, which contain a decimal point.
        </t>
      </section>
    </section>
    
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>Adligo Inc. maintains a Private Enterprise Number (PEN) Object 
      Identifier (OID) registered with IANA. The specific OID allocated 
      for the Ten64 serialization format is 1.3.6.1.4.1.33097.8.1.</t>
      <t>Further documentation regarding this registration is available at: 
      https://adligo.github.io/papers.adligo.com/ietf-rfcs/Ten64.html</t>
      
      
      <t>There are no other IANA considerations for this document.</t>
    </section>
    
    <section anchor="commentary" title="Commentary">
      <t>This section is non-normative.</t>
      
      <t>
        To improve human readability, we replaced these characters with their respective
        characters. The following chart shows the history of this.
      </t>

      <sourcecode>
    21: lower case 'l' →  '$'
    44: upper case 'I' → '%' → '+'
    50: upper case 'O' → '?' → ':' → '!'
      </sourcecode>

      <t>
        2026-03-28 Replaced the % sign with the + sign to make
        <xref target="uri-rfc-3986" format="none" sectionFormat="bare">URI (URL)</xref>
        escaping easier. Replaced the question mark with the colon to make
        <xref target="uri-rfc-3986" format="none" sectionFormat="bare">URI (URL)</xref>
        escaping easier, and then later on replaced it with the exclamation point to
        make Ten64 more compatible with
        <xref target="decentralized-identifiers-dids" format="none" sectionFormat="bare">
        DIDs</xref>.
      </t>

      <t>
        Although Ten64 can encode and decode numbers of any size and precision, they are
        often not human-decipherable. During the creation of this text, there was much
        discussion about JSON RFCs
        <xref target="JSON-RFC-4627" format="none" sectionFormat="bare">4627</xref>,
        <xref target="JSON-RFC-7158" format="none" sectionFormat="bare">7158</xref>,
        <xref target="JSON-RFC-7159" format="none" sectionFormat="bare">7159</xref>,
        <xref target="json-rfc-8259" format="none" sectionFormat="bare">8259</xref>,
        <xref target="JavaScript-Wikipedia" format="none" sectionFormat="bare">
        JavaScript</xref> and
        <xref target="ECMA-262" format="none" sectionFormat="bare">ECMA Script</xref>
        Numbers.  S Morgan believes that a separate document should be created to address
        the serialization/de-serialization (aka encoding/decoding) which uses text
        representing the
        <xref target="modern-western-numeral-system" format="none" sectionFormat="bare">
        Modern Western Numeral System</xref> specifically.  He also suggests something
        like the following;
      </t>

      <sourcecode>
    12 → int, long or ECMA BigInt, Language specifies.
    12.78 → Java BigDecimal style numbers or a new BigNumber type
    f12.78 → 32 bit IEEE 754 / Java single floating point decimal numbers
    d12.78 → 64 bit IEEE 754 / Java double floating point decimal numbers
      </sourcecode>

      <t>
        Although the current state of the
        <xref target="json-rfc-8259" format="none" sectionFormat="bare">JSON RFC 8259
        </xref> specification is fairly clear, it has a muddied past, which has created
        confusion and varying interpretations (i.e.
        <xref target="Gson-GitHub" format="none" sectionFormat="bare">GSON</xref>,
        <xref target="Jackson-GitHub" format="none" sectionFormat="bare">Jackson</xref>
        and others). This starts with the usage of the term
        <xref target="JavaScript-Wikipedia" format="none" sectionFormat="bare">
        JavaScript</xref> in the title, the JS in
        <xref target="json-rfc-8259" format="none" sectionFormat="bare">JSON</xref>.
        It took some time for an actual
        <xref target="JavaScript-Wikipedia" format="none" sectionFormat="bare">
        JavaScript-like specification</xref> to emerge as
        <xref target="ECMA-262" format="none" sectionFormat="bare">ECMA Script</xref>
        which specifies
        <xref target="floating-point" format="none" sectionFormat="bare">
        IEEE 754-2019 Floating Point Numbers</xref>. These challenges and issues are
        not traceable to a single standard, but instead the result of the
        interaction between at least three standards bodies the
        <xref target="ieee" format="none" sectionFormat="bare">IEEE</xref>,
        <xref target="IETF" format="none" sectionFormat="bare">IETF</xref> and
        <xref target="ECMA-262" format="none" sectionFormat="bare">ECMA International
        </xref>, and the history of <xref target="JavaScript-Wikipedia" format="none" sectionFormat="bare">
        JavaScript</xref> and 
        <xref target="netscape" format="none" sectionFormat="bare">
        Netscape</xref> <xref target="netscape-2" format="none" sectionFormat="bare">
        [2]</xref> <xref target="netscape-3" format="none" sectionFormat="bare">
        [3]</xref> 
        
        .
      </t>

      <t>
        As a side note, the
        <eref target="https://tc39.es/ecma262">ECMA Script 262 website</eref> chews up
        enough resources (processor/RAM I didn't benchmark it?) that it slows down and
        crashes browsers on my computer with 64 GB of RAM. However, for the brave people
        who want to click on these direct links;
      </t>

      <ul>
        <li>
          <eref target="https://tc39.es/ecma262/#sec-numeric-types">
          ECMA Script 262 Section 6.1.6 Numeric Types</eref>
        </li>
        <li>
          <eref target="https://tc39.es/ecma262/#sec-ecmascript-language-types-number-type">
          ECMA Script 262 Section 6.1.6.1 Language Types Number Type</eref>
        </li>
        <li>
          <eref target="https://tc39.es/ecma262/#sec-numbers-and-dates">
          ECMA Script 262 Section 21 Numbers and Dates</eref>
        </li>
      </ul>

      <t>
        In some ways, these serialization issues appear to be fixed in part by more modern RFC's
        including the following;
      </t>
      <ul>
        <li>
          <xref target="CBOR-RFC-8949" format="none" sectionFormat="bare">
          CBOR RFC 8949</xref> which simply uses a binary format to transfer the
          <xref target="floating-point" format="none" sectionFormat="bare">
          floating-point numbers</xref>.
        </li>
        <li>
          <xref target="HTTP-Structured-Fields-RFC-9651" format="none" sectionFormat="bare">
          HTTP Structured Fields RFC 9651</xref> which does not target text but
          <xref target="uri-rfc-3986" format="none" sectionFormat="bare">
          HTTP or really UIRs RFC 3986</xref> and puts a tight limitation on decimal
          numbers, only allowing three decimal digits, which isn't compatible with
          <xref target="Bitcoin" format="none" sectionFormat="bare">Bitcoin</xref>
          and other wider decimal number formats.
        </li>
      </ul>

      <t>
        The culmination of these points result in ubiquitous usage of string
        wrappers for numbers in tools like JSON, which forces the various parsers to get
        it right all the time;
      </t>

      <sourcecode>
    { "myJSONDecimalNumber": "12.3" }
      </sourcecode>

      <t>
        This essentially defeats the purpose of having a (decimal) number type in
        <xref target="json-rfc-8259" format="none" sectionFormat="bare">JSON</xref>.
      </t>

      <t>
        In addition, printing floating point numbers has been challenging historically.
        Which has led to the
        <xref target="ryū" format="none" sectionFormat="bare">Ryū</xref> algorithm,
        which greatly reduced the time cost (asymptotic complexity) of printing floating
        point numbers in various JVM environments.
        <xref target="ryū" format="none" sectionFormat="bare">Ryū</xref> itself improved
        on the previous
        <xref target="Floating-Point-Printing" format="none" sectionFormat="bare">
        How to Print Floating-Point Numbers Accurately paper by Guy L. Steele Jr. and
        Jon L White</xref>, and was eventually adopted by the
        <xref target="jcp" format="none" sectionFormat="bare">JCP</xref>. Casual readers
        are encouraged to watch the
        <xref target="ryū-video" format="none" sectionFormat="bare">Ryū video</xref>.
        Then ask themselves the philosophical question: What do you want to see from the
        following pseudo-code?
      </t>

      <sourcecode>
    var f : ieee754Float = f0.3
    print(f)
      </sourcecode>

      <t>
        Some people would prefer <strong>Option A '0.3'</strong> while others (i.e. S
        Morgan) would prefer <strong>Option B '0.300048828125'</strong>. S Morgan thinks
        <strong>Option B</strong> is simpler, likely much faster to print and also
        provides a more accurate representation of what is actually stored in RAM
        without any rounding.
      </t>

      <t>
        In addition, since the Java BigDecimal style isn't actually a standard from any
        of these standards bodies, except for maybe the
        <xref target="jcp" format="none" sectionFormat="bare">JCP</xref>. This means we
        don't actually have a solid standard for serializing money (i.e. USD, YEN, BTC,
        etc). Finally, after reading all of this and the citations to ANSI Math
        <xref target="ansi-x3274-1996" format="none" sectionFormat="bare">X3.274-1996
        </xref> -
        <xref target="ansi-x3274-1996-am-1-2000-section-7.4" format="none" sectionFormat="bare">
        X3.274-1996 AM 1-2000 section 74</xref> in the Java 23 BigDecimal source code,
        (S Morgan) started to ponder: Is all of this mantissa stuff just too complex?
      </t>

      <t>
        S Morgan:
      </t>

      <t>
        From more of a
        <xref target="category-theory-b-milewski-youtube" format="none" sectionFormat="bare">
        philosophical Category Theory</xref> perspective; Are we actually usually doing
        <xref target="discrete-mathematics-o-levin-2024" format="none" sectionFormat="bare">
        discrete mathematics</xref> and have just added decimal places to help us read
        the
        <xref target="natural-numbers-wikipedia" format="none" sectionFormat="bare">
        natural numbers</xref>?
      </t>

      <t>
        For example, USD currency serialization and mathematical operations are actually
        using a 
        <xref target="natural-numbers-wikipedia" format="none" sectionFormat="bare">
        natural number</xref> of cents. Perhaps we should just run with that and do
        much of our math with
        <xref target="BigInt-Java" format="none" sectionFormat="bare">BigIntegers</xref>
        ,
        <xref target="ECMA-262" format="none" sectionFormat="bare">BigInts</xref>, and
        then reformat the string representation with a decimal point. This would likely
        give most intuitive users who are just learning programming, math or both for
        the first time a much lower barrier to entry when performing most elementary to
        high school math, programming and serialization.
      </t>

      <t>
        A new <strong>BigNumber</strong> convention could be created on top of this idea
        leveraging the
        <xref target="ISO-IEC-10967-1" format="none" sectionFormat="bare">
        ISO/IEC 10967 integer datatype section 5.1 / International Math Standard.</xref>
      </t>

      <sourcecode>
    var b : BigNumber = 12.57
    println(b)
    println(b.toDiscreteString())
    println(b.hasDecimalPoint())
    var i : BigNumber = -∞
    println(i)
    println(i.hasDecimalPoint())
    var c = BigNumber = 0.3
    println(c)
    println(c.toFloat())
    // should output the following text
    12.57
    1257
    true
    -∞
    false
    0.3
    0.300048828125
      </sourcecode>

      <t>
        Then this new <strong>BigNumber</strong> type could potentially be used as the
        basis for further text-encoding number work with the
        <xref target="modern-western-numeral-system" format="none" sectionFormat="bare">
        Modern Western Numeral System</xref>.
        
        Finally, an open question. What should we do with fractions/repeating numbers 
        (aka. connected overlines) (i.e.
        0.&#x0305;0&#x0305;1&#x0305;2&#x0305;3&#x0305;4&#x0305;5&#x0305;6&#x0305;7&#x0305;8&#x0305;9
        or 1/7 = 0.&#x0305;1&#x0305;4&#x0305;2&#x0305;8&#x0305;5&#x0305;7 ), another new
        <strong>BigFraction</strong> type perhaps?
      </t>

      <sourcecode>
    # Github Markdown for Connected Overlines
    0.&#x0305;0&#x0305;1&#x0305;2&#x0305;3&#x0305;4&#x0305;5&#x0305;6&#x0305;7&#x0305;8&#x0305;9
    1/7 = 0.&#x0305;1&#x0305;4&#x0305;2&#x0305;8&#x0305;5&#x0305;7
      </sourcecode>

    </section>
    
    <section anchor="citations-and-workflow-comments" title="Citations and Workflow Comments">
      <t>
        Finally, note that most of the Github style Markdown to RFC style XML
        conversion, and citations were generated by
        <xref target="google-gemini" format="none" sectionFormat="bare">
        Gemini</xref>. Also,
        <xref target="google-gemini-deep-research" format="none" sectionFormat="bare">
        Gemini Deep Research</xref>, found
        <xref target="ISO-IEC-10967-1" format="none" sectionFormat="bare">
        ISO/IEC 10967 / A International Math Standard
        </xref>, and other content that I didn't track. Finally, note I dictated
        most of this paper using various voice-to-text AI software, which has given
        much of it a strangely verbal style. Feel free to reach out if you would
        like to correct, modify or add anything to this paper.
      </t>
    </section>
  </middle>

  <back>
  
    <references>
      <name>Normative References</name>

      <reference anchor="ansi" target="https://www.ansi.org/">
        <front>
          <title>American National Standards Institute - ANSI Home</title>
          <author>
            <organization>American National Standards Institute (ANSI)</organization>
          </author>
        </front>
      </reference>

      <reference anchor="ansi-x3274-ibm" target="https://speleotrove.com/decimal/dax3274.html">
        <front>
          <title>Decimal Arithmetic Specification, version 1.70 - Appendix A: The X3.274 subset</title>
          <author>
            <organization>IBM Corporation</organization>
          </author>
          <date day="7" month="April" year="2009"/>
        </front>
        <seriesInfo name="Website" value="speleotrove.com/decimal"/>
      </reference>
      
      <reference anchor="ansi-x3274-1996" target="https://webstore.ansi.org/standards/incits/ansiincits2741996amd12000r2001">
        <front>
          <title>Information Technology - Programming Language REXX</title>
          <author>
            <organization>InterNational Committee for Information Technology Standards (INCITS)</organization>
          </author>
          <date year="2000"/>
        </front>
        <seriesInfo name="ANSI" value="INCITS 274-1996/AMD1-2000 (R2001)"/>
      </reference>

      <reference anchor="ansi-x3274-1996-am-1-2000-section-7.4" target="https://webstore.ansi.org/standards/incits/ansiincits2741996amd12000r2001">
        <front>
          <title>Information Technology - Programming Language REXX</title>
          <author>
            <organization>InterNational Committee for Information Technology Standards (INCITS)</organization>
          </author>
          <date year="2000"/>
        </front>
        <seriesInfo name="ANSI" value="INCITS 274-1996/AMD1-2000 (R2001)"/>
      </reference>

      <reference anchor="ASCII-7" 
                 target="https://www.ansi.org/">
        <front>
          <title>American Standard Code for Information Interchange (ASCII)</title>
          <author>
            <organization>American Standards Association</organization>
          </author>
          <date year="1963" month="June" day="17"/>
        </front>
        <seriesInfo name="ASA" value="X3.4-1963"/>
      </reference>
      
      <reference anchor="base58" target="https://datatracker.ietf.org/doc/html/draft-msporny-base58-03">
        <front>
          <title>The Base58 Encoding Scheme</title>
          <author initials="M." surname="Sporny" fullname="Manu Sporny">
            <organization>Digital Bazaar</organization>
          </author>
          <date year="2024" month="February" day="11"/>
          <abstract>
            <t>Base58 is a group of binary-to-text encoding schemes used to represent large integers as alphanumeric text. It is designed to be human-friendly by excluding visually ambiguous characters.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-msporny-base58-03"/>
      </reference>

      <reference anchor="base64-rfc-4648" 
                 target="https://www.rfc-editor.org/info/rfc4648">
        <front>
          <title>The Base16, Base32, and Base64 Data Encodings</title>
          <author initials="S." surname="Josefsson" fullname="S. Josefsson"/>
          <date year="2006" month="October"/>
        </front>
        <seriesInfo name="RFC" value="4648"/>
      </reference>

      <reference anchor="Bitcoin" target="https://bitcoin.org/bitcoin.pdf">
        <front>
          <title>Bitcoin: A Peer-to-Peer Electronic Cash System</title>
          <author fullname="Satoshi Nakamoto">
            <organization></organization>
          </author>
          <date year="2008" month="October"/>
        </front>
      </reference>

      <reference anchor="bitslotmaps" 
           target="https://adligo.github.io/papers.adligo.com/data_structures/BitSlotMaps.html">
        <front>
          <title>BitSlotMaps</title>
          <author initials="S." surname="Morgan" fullname="Scott Morgan">
            <organization>Adligo Inc</organization>
          </author>
          <date year="2025" month="November" day="25"/>
        </front>
        <seriesInfo name="Adligo Papers" value="1.3.6.1.4.1.33097.1.1.3"/>
      </reference>
      
      <reference anchor="carbon-dating-zero" target="https://www.smithsonianmag.com/smart-news/dating-ancient-indian-text-gives-new-timeline-history-zero-180964896/">
        <front>
          <title>Carbon Dating Reveals the History of Zero Is Older Than Previously Thought</title>
          <author initials="B." surname="Katz">
            <organization>Smithsonian Magazine</organization>
          </author>
          <date year="2017" month="September" day="14"/>
        </front>
        <seriesInfo name="Smithsonian Magazine" value="Smart News"/>
      </reference>

      <reference anchor="category-theory-b-milewski-youtube" target="https://www.youtube.com/watch?v=I8LbkfSSR58">
        <front>
          <title>Category Theory 1.1: Motivation and Philosophy</title>
          <author fullname="Bartosz Milewski">
          </author>
          <date day="25" month="August" year="2016"/>
        </front>
        <seriesInfo name="Video" value="YouTube"/>
      </reference>

      <reference anchor="CBOR-RFC-8949" target="https://www.rfc-editor.org/info/rfc8949">
        <front>
          <title>Concise Binary Object Representation (CBOR)</title>
          <author fullname="C. Bormann" initials="C." surname="Bormann">
            <organization>Universität Bremen TZI</organization>
          </author>
          <author fullname="P. Hoffman" initials="P." surname="Hoffman">
            <organization>ICANN</organization>
          </author>
          <date month="December" year="2020"/>
          <abstract>
            <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8949"/>
        <seriesInfo name="STD" value="94"/>
        <seriesInfo name="DOI" value="10.17487/RFC8949"/>
      </reference>
      
      <reference anchor="decentralized-identifiers-dids" target="https://www.w3.org/TR/2022/REC-did-core-20220719/">
        <front>
          <title>Decentralized Identifiers (DIDs) v1.0</title>
          <author fullname="Manu Sporny" initials="M." surname="Sporny">
            <organization>Digital Bazaar</organization>
          </author>
          <author fullname="Amy Guy" initials="A." surname="Guy">
            <organization>Digital Bazaar</organization>
          </author>
          <author fullname="Markus Sabadello" initials="M." surname="Sabadello">
            <organization>Danube Tech</organization>
          </author>
          <author fullname="Drummond Reed" initials="D." surname="Reed">
            <organization>Avast</organization>
          </author>
          <author fullname="Manu Sporny" initials="M." surname="Sporny">
            <organization>Digital Bazaar</organization>
          </author>
          <date day="19" month="July" year="2022" />
        </front>
        <seriesInfo name="W3C Recommendation" value="REC-did-core-20220719" />
      </reference>

      <reference anchor="discrete-mathematics-o-levin-2024" target="https://discrete.openmathbooks.org/pdfs/dmoi4.pdf">
        <front>
          <title>Discrete Mathematics: An Open Introduction, 4th Edition</title>
          <author fullname="Oscar Levin" initials="O." surname="Levin">
            <organization>University of Northern Colorado</organization>
          </author>
          <date year="2024"/>
        </front>
        <seriesInfo name="Format" value="PDF"/>
      </reference>

      <reference anchor="doid-repo" target="https://github.com/adligo/doid.adligo.org">
        <front>
          <title>doid.adligo.org: Domain Oracle Identifiers</title>
          <author>
            <organization>Adligo</organization>
          </author>
          <date year="2024" month="October"/> 
        </front>
        <refcontent>GitHub Repository</refcontent>
      </reference>

      <reference anchor="ejcn-extensible-json-classification-notation" target="https://github.com/adligo/ejcn.adligo.org">
        <front>
          <title>ejcn.adligo.org: Extensible JSON Classification Notation</title>
          <author>
            <organization>Adligo</organization>
          </author>
          <date year="2026" month="March"/>
        </front>
        <refcontent>GitHub Repository</refcontent>
      </reference>

      <reference anchor="ejcn-extensible-json-classification-notation-schemas" target="https://github.com/adligo/ejcn_schemas.adligo.org">
        <front>
          <title>EJCN (Extensible JSON Classification Notation) Schemas</title>
          <author>
            <organization>Adligo</organization>
          </author>
          <date year="2026"/>
          <abstract>
            <t> The EJCN schema system.</t>
          </abstract>
        </front>
        <refcontent>GitHub Repository</refcontent>
      </reference>

      <reference anchor="endian-wikipedia" target="https://en.wikipedia.org/wiki/Endianness">
        <front>
          <title>Endianness</title>
          <author>
            <organization>Wikipedia contributors</organization>
          </author>
          <date year="2024" month="March"/>
        </front>
        <seriesInfo name="Encyclopedia" value="Wikipedia, The Free Encyclopedia"/>
        <seriesInfo name="URL" value="https://en.wikipedia.org/wiki/Endianness"/>
      </reference>

      <reference anchor="floating-point" target="https://ieeexplore.ieee.org/document/8766229">
        <front>
          <title>IEEE Standard for Floating-Point Arithmetic</title>
          <author>
            <organization>IEEE</organization>
          </author>
          <date year="2019" month="July" day="22"/>
          <abstract>
            <t>This standard specifies interchange and arithmetic formats and methods for binary and decimal floating-point arithmetic in computer programming environments.</t>
          </abstract>
        </front>
        <seriesInfo name="IEEE" value="Std 754-2019"/>
        <seriesInfo name="DOI" value="10.1109/IEEESTD.2019.8766229"/>
      </reference>

      <reference anchor="Floating-Point-Gordon" target="https://cs.gordon.edu/courses/mat342/handouts/ieee.html">
        <front>
          <title>The IEEE 754 Floating-Point Standard</title>
          <author>
            <organization>Gordon College</organization>
          </author>
          <date year="2024"/>
        </front>
        <refcontent>MAT342 Numerical Analysis Course Material</refcontent>
      </reference>

      <reference anchor="Floating-Point-J-Burkardt" target="https://people.sc.fsu.edu/~jburkardt/html/ieee.html">
        <front>
          <title>IEEE Floating Point Numbers</title>
          <author initials="J." surname="Burkardt" fullname="John Burkardt">
            <organization>Florida State University</organization>
          </author>
          <date year="2023"/>
        </front>
        <refcontent>Department of Scientific Computing Resource</refcontent>
      </reference>

      <reference anchor="Floating-Point-Printing" target="https://dl.acm.org/doi/10.1145/1806596.1806623">
        <front>
          <title>Adaptive Floating-Point Summation and Arbitrary Precision Floating-Point Arithmetic</title>
          <author initials="J. R." surname="Shewchuk" fullname="Jonathan Richard Shewchuk">
            <organization>University of California at Berkeley</organization>
          </author>
          <date year="1997" month="October"/>
          <abstract>
            <t>Algorithms for exact addition and multiplication of floating-point numbers, and their use in robust geometric predicates.</t>
          </abstract>
        </front>
        <seriesInfo name="DOI" value="10.1145/1806596.1806623"/>
      </reference>

      <reference anchor="Floating-Point-Wikipedia" target="https://en.wikipedia.org/wiki/IEEE_754">
        <front>
          <title>IEEE 754: Standard for Floating-Point Arithmetic</title>
          <author>
            <organization>Wikipedia</organization>
          </author>
          <date year="2023" month="October"/>
        </front>
        <refcontent>Wikipedia, The Free Encyclopedia</refcontent>
      </reference>

      <reference anchor="Grisu3" target="https://doi.org/10.1145/1806651.1806623">
        <front>
          <title>Printing floating-point numbers quickly and accurately with integers</title>
          <author initials="F." surname="Loitsch" fullname="Florian Loitsch"/>
          <date year="2010" month="June"/>
        </front>
        <seriesInfo name="ACM SIGPLAN Notices" value="vol. 45, no. 6, pp. 233-243"/>
      </reference>

      <reference anchor="HTTP-Structured-Fields-RFC-9651" target="https://www.rfc-editor.org/info/rfc9651">
        <front>
          <title>Structured Field Values for HTTP</title>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham">
            <organization>Cloudflare</organization>
          </author>
          <author fullname="P-H. Kamp" initials="P-H." surname="Kamp">
            <organization>The Varnish Cache Project</organization>
          </author>
          <date month="September" year="2024"/>
          <abstract>
            <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers".</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9651"/>
        <seriesInfo name="DOI" value="10.17487/RFC9651"/>
      </reference>


      <reference anchor="hexadecimal"
                 target="https://en.wikipedia.org/wiki/Hexadecimal">
        <front>
          <title>Hexadecimal</title>
          <author>
            <organization>Wikipedia Contributors</organization>
          </author>
          <date year="2026" month="March"/>
        </front>
        <seriesInfo name="Wikipedia" value="Hexadecimal"/>
      </reference>
      
      <reference anchor="iana-oids" target="https://www.iana.org/assignments/enterprise-numbers">
        <front>
          <title>Private Enterprise Numbers (PEN)</title>
          <author>
            <organization>IANA</organization>
          </author>
          <date year="2026" month="March"/>
        </front>
        <refcontent>IANA Registry</refcontent>
      </reference>

      <reference anchor="ieee" target="https://www.ieee.org">
        <front>
          <title>Institute of Electrical and Electronics Engineers (IEEE)</title>
          <author>
            <organization>IEEE</organization>
          </author>
          <date/>
        </front>
      </reference>

      <reference anchor="IEEE754" 
                 target="https://ieeexplore.ieee.org/document/8766229">
        <front>
          <title>IEEE Standard for Floating-Point Arithmetic</title>
          <author><organization>IEEE</organization></author>
          <date year="2019" month="July"/>
        </front>
        <seriesInfo name="IEEE" value="754-2019"/>
      </reference>

      <reference anchor="IETF" target="https://www.ietf.org">
        <front>
          <title>Internet Engineering Task Force (IETF)</title>
          <author>
            <organization>IETF</organization>
          </author>
          <date/>
        </front>
      </reference>

      <reference anchor="Information-Theory-Elements-Cover-Thomas-2006" target="https://doi.org/10.1002/047174882X">
        <front>
          <title>Elements of Information Theory</title>
          <author initials="T. M." surname="Cover" fullname="Thomas M. Cover">
            <organization>Stanford University</organization>
          </author>
          <author initials="J. A." surname="Thomas" fullname="Joy A. Thomas">
            <organization>Stratify, Inc.</organization>
          </author>
          <date year="2006" month="July"/>
        </front>
        <seriesInfo name="DOI" value="10.1002/047174882X"/>
        <seriesInfo name="Publisher" value="Wiley-Interscience"/>
        <seriesInfo name="Edition" value="2nd"/>
      </reference>

      <reference anchor="JavaScript-Wikipedia" target="https://en.wikipedia.org/wiki/JavaScript">
        <front>
          <title>JavaScript</title>
          <author>
            <organization>Wikipedia Contributors</organization>
          </author>
          <date year="2026" month="March" day="29"/>
        </front>
        <seriesInfo name="Wikipedia, The Free Encyclopedia" value="Online"/>
      </reference>

      <reference anchor="jcp" target="https://www.jcp.org/en/home/index">
        <front>
          <title>The Java Community Process(SM) Program - Home</title>
          <author>
            <organization>Java Community Process (Oracle Corporation)</organization>
          </author>
          </front>
      </reference>

      <reference anchor="JSON-RFC-4627" target="https://www.rfc-editor.org/info/rfc4627">
        <front>
          <title>The application/json Media Type for JavaScript Object Notation (JSON)</title>
          <author fullname="D. Crockford" initials="D." surname="Crockford">
            <organization/>
          </author>
          <date month="July" year="2006"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4627"/>
        <seriesInfo name="DOI" value="10.17487/RFC4627"/>
      </reference>

      <reference anchor="JSON-RFC-7158" target="https://www.rfc-editor.org/info/rfc7158">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray" initials="T." role="editor" surname="Bray">
            <organization/>
          </author>
          <date month="March" year="2013"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data. This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7158"/>
        <seriesInfo name="DOI" value="10.17487/RFC7158"/>
      </reference>

      <reference anchor="JSON-RFC-7159" target="https://www.rfc-editor.org/info/rfc7159">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray" initials="T." role="editor" surname="Bray">
            <organization/>
          </author>
          <date month="March" year="2014"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data. This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7159"/>
        <seriesInfo name="DOI" value="10.17487/RFC7159"/>
      </reference>

      <reference anchor="json-rfc-8259" target="https://www.rfc-editor.org/info/rfc8259">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray" initials="T." role="editor" surname="Bray">
            <organization/>
          </author>
          <date month="December" year="2017"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data. This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8259"/>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="DOI" value="10.17487/RFC8259"/>
      </reference>

      <reference anchor="json-schemas" target="https://json-schema.org/draft/2020-12/json-schema-core.html">
        <front>
          <title>JSON Schema: A Media Type for Describing JSON Data Structures</title>
          <author fullname="H. Andrews" initials="H." surname="Andrews">
            <organization/>
          </author>
          <author fullname="A. Wright" initials="A." surname="Wright">
            <organization/>
          </author>
          <date month="December" year="2020"/>
          <abstract>
            <t>JSON Schema defines the media type "application/schema+json", a JSON-based format for describing the structure of JSON data. JSON Schema asserts what a JSON document must look like, what shapes it can take, and what values are valid.</t>
          </abstract>
        </front>
      </reference>

      <reference anchor="MathAsympoticProcessorPerformanceWikipedia" target="https://en.wikipedia.org/wiki/Computational_complexity_of_mathematical_operations">
        <front>
          <title>Computational complexity of mathematical operations</title>
          <author>
            <organization>Wikipedia</organization>
          </author>
          <date year="2023" month="October"/>
        </front>
        <refcontent>Wikipedia, The Free Encyclopedia</refcontent>
      </reference>

      <reference anchor="ISO-IEC-10967-1" target="https://www.iso.org/standard/51317.html">
        <front>
          <title>Information technology -- Language independent arithmetic -- Part 1: Integer and floating point arithmetic</title>
          <author>
            <organization>International Organization for Standardization (ISO) / International Electrotechnical Commission (IEC)</organization>
          </author>
          <date day="15" month="July" year="2012"/>
        </front>
        <seriesInfo name="ISO/IEC" value="10967-1:2012"/>
      </reference>

      <reference anchor="Mathematical-Theory-of-Communication-Shannon-1948" target="https://doi.org/10.1002/j.1538-7305.1948.tb01338.x">
        <front>
          <title>A Mathematical Theory of Communication</title>
          <author initials="C. E." surname="Shannon" fullname="Claude E. Shannon">
            <organization>Bell System Technical Journal</organization>
          </author>
          <date year="1948" month="July"/>
        </front>
        <seriesInfo name="Bell System Technical Journal" value="Vol. 27, pp. 379–423, 623–656"/>
        <seriesInfo name="DOI" value="10.1002/j.1538-7305.1948.tb01338.x"/>
      </reference>

      <reference anchor="natural-numbers-wikipedia" target="https://en.wikipedia.org/wiki/Natural_number">
        <front>
          <title>Natural number</title>
          <author>
            <organization>Wikipedia contributors</organization>
          </author>
          </front>
        <seriesInfo name="Website" value="Wikipedia, The Free Encyclopedia"/>
      </reference>

      <reference anchor="network-order-ibm" target="https://www.ibm.com/docs/ja/zvm/7.2.0?topic=domains-network-byte-order-host-byte-order">
        <front>
          <title>Network byte order and host byte order</title>
          <author>
            <organization>IBM</organization>
          </author>
          </front>
      </reference>

      <reference anchor="origin-of-modern-mathematical-numeral" target="https://www.academia.edu/9099310/Origin_of_Modern_Mathematical_Numeral_0_1_2_3_4_5_6_7_8_9_the_Hindu_Indian_Brahmagubta_The_Islamo_Arabic_or_the_West">
        <front>
          <title>Origin of Modern Mathematical Numeral – 0, 1, 2, 3, 4, 5, 6, 7, 8, 9: the Hindu-Indian-Brahmagubta, The Islamo-Arabic or the West?</title>
          <author initials="A." surname="Musa" fullname="Auwalu Musa">
            <organization>Mubi North Education Authority, Mubi North Local Government Area, Adamawa State – Nigeria</organization>
          </author>
          <date year="2014"/>
        </front>
        <seriesInfo name="Page" value="46"/>
      </reference>

      <reference anchor="netscape" target="http://www.blooberry.com/indexdot/history/netscape.htm">
        <front>
          <title>Browser History: Netscape</title>
          <author fullname="Brian Wilson" initials="B." surname="Wilson"/>
        </front>
        <seriesInfo name="Website" value="Index DOT Html/Css (BlooBerry)"/>
      </reference>

      <reference anchor="netscape-2" target="https://medium.com/@gp2030/netscapes-rise-and-fall-a-browser-wars-history-8546e3b52092">
        <front>
          <title>Netscape's Rise and Fall: A Browser Wars History</title>
          <author fullname="Gil Pignol" initials="G." surname="Pignol"/>
          <date day="3" month="December" year="2025"/>
        </front>
        <seriesInfo name="Website" value="Medium"/>
      </reference>
      
      <reference anchor="netscape-3" target="https://en.wikipedia.org/wiki/Netscape">
        <front>
          <title>Netscape</title>
          <author>
            <organization>Wikipedia contributors</organization>
          </author>
        </front>
        <seriesInfo name="Website" value="Wikipedia, The Free Encyclopedia"/>
      </reference>
      
      <reference anchor="number-conversion-calculator" target="https://www.rapidtables.com/convert/number/decimal-to-binary.html?x=756">
        <front>
          <title>Decimal to Binary Converter: 756</title>
          <author>
            <organization>RapidTables</organization>
          </author>
          <date year="2026"/>
        </front>
      </reference>

      <reference anchor="Number-Conversion-Instructables" target="https://www.instructables.com/How-to-Convert-From-Decimal-to-Binary/">
        <front>
          <title>How to Convert From Decimal to Binary</title>
          <author>
            <organization>Instructables</organization>
          </author>
          <date year="2023" month="October"/>
        </front>
        <refcontent>Instructables Science and Tech Category</refcontent>
      </reference>
      
      <reference anchor="Number-Conversion-Khan-Academy" target="https://www.khanacademy.org/math/algebra-home/alg-intro-to-algebra/algebra-alternate-number-bases/v/large-number-decimal-to-binary">
        <front>
          <title>Large Number Decimal to Binary</title>
          <author initials="S." surname="Khan" fullname="Sal Khan">
            <organization>Khan Academy</organization>
          </author>
          <date year="2026"/>
        </front>
        <refcontent>Video Tutorial: Algebra / Alternate Number Bases</refcontent>
      </reference>

      <reference anchor="Number-Conversion-Lumen" target="https://courses.lumenlearning.com/waymakermath4libarts/chapter/converting-between-bases/">
        <front>
          <title>Converting Between Bases</title>
          <author>
            <organization>Lumen Learning</organization>
          </author>
          <date year="2024"/>
          <abstract>
            <t>A comprehensive guide to positional numeration systems, detailing methods for converting between decimal and non-decimal bases.</t>
          </abstract>
        </front>
        <refcontent>Waymaker Mathematics for Liberal Arts</refcontent>
      </reference>

      <reference anchor="Number-Conversion-WikiHow" target="https://www.wikihow.com/Convert-from-Decimal-to-Binary">
        <front>
          <title>How to Convert from Decimal to Binary</title>
          <author>
            <organization>WikiHow</organization>
          </author>
          <date year="2023" month="September" day="14"/>
        </front>
        <refcontent>WikiHow Technology Category</refcontent>
      </reference>

      <reference anchor="OData-Protocol" target="https://docs.oasis-open.org/odata/odata/v4.01/os/part1-protocol/odata-v4.01-os-part1-protocol.html">
        <front>
          <title>OData Version 4.01. Part 1: Protocol</title>
          <author fullname="Michael Pizzo" initials="M." surname="Pizzo">
            <organization>OASIS</organization>
          </author>
          <author fullname="Ralf Handl" initials="R." surname="Handl">
            <organization>OASIS</organization>
          </author>
          <author fullname="Martin Zurmuehl" initials="M." surname="Zurmuehl">
            <organization>OASIS</organization>
          </author>
          <date month="June" year="2021" />
        </front>
        <seriesInfo name="OASIS Standard" value="OData-v4.01-Part1" />
      </reference>

      <reference anchor="Radix-10-vs-60-Research-Gate" target="https://www.researchgate.net/post/Why-we-use-base-10-almost-everywhere-than-base-60-which-was-first-invented-method">
        <front>
          <title>Why we use base-10 almost everywhere than base-60 which was first invented method?</title>
          <author>
            <organization>ResearchGate Community</organization>
          </author>
          <date year="2014" month="May"/>
        </front>
        <seriesInfo name="URL" value="https://www.researchgate.net/post/Why-we-use-base-10-almost-everywhere-than-base-60-which-was-first-invented-method"/>
      </reference>

      <reference anchor="rest-programming-style" target="https://roy.gbiv.com/pubs/dissertation/fielding_dissertation.pdf">
        <front>
          <title>Architectural Styles and the Design of Network-based Software Architectures</title>
          <author fullname="Roy Thomas Fielding" initials="R. T." surname="Fielding">
            <organization>University of California, Irvine</organization>
          </author>
          <date year="2000"/>
        </front>
        <seriesInfo name="Ph.D. Dissertation" value="University of California, Irvine"/>
      </reference>

      <reference anchor="radix-wikipedia" target="https://en.wikipedia.org/wiki/Radix">
        <front>
          <title>Radix</title>
          <author>
            <organization>Wikipedia contributors</organization>
          </author>
          <date year="2024" month="March"/>
        </front>
        <seriesInfo name="Encyclopedia" value="Wikipedia, The Free Encyclopedia"/>
        <seriesInfo name="URL" value="https://en.wikipedia.org/wiki/Radix"/>
      </reference>

      <reference anchor="RFC20" target="https://www.rfc-editor.org/info/rfc20">
        <front>
          <title>ASCII format for Network Interchange</title>
          <author initials="V." surname="Cerf" fullname="V. Cerf"/>
          <date year="1969" month="October"/>
        </front>
        <seriesInfo name="RFC" value="20"/>
      </reference>

      <reference anchor="RFC2026" 
                 target="https://www.rfc-editor.org/info/rfc2026">
        <front>
          <title>The Internet Standards Process -- Revision 3</title>
          <author initials="S." surname="Bradner" fullname="S. Bradner"/>
          <date year="1996" month="October"/>
        </front>
        <seriesInfo name="BCP" value="9"/>
        <seriesInfo name="RFC" value="2026"/>
      </reference>

      <reference anchor="RFC2119" 
                 target="https://www.rfc-editor.org/info/rfc2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner" fullname="S. Bradner"/>
          <date year="1997" month="March"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
      </reference>

      <reference anchor="RFC3629" 
                 target="https://www.rfc-editor.org/info/rfc3629">
        <front>
          <title>UTF-8, a transformation format of ISO 10646</title>
          <author initials="F." surname="Yergeau" fullname="F. Yergeau"/>
          <date year="2003" month="November"/>
        </front>
        <seriesInfo name="STD" value="63"/>
        <seriesInfo name="RFC" value="3629"/>
      </reference>

      <reference anchor="RFC8174" 
                 target="https://www.rfc-editor.org/info/rfc8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119</title>
          <author initials="B." surname="Leiba" fullname="B. Leiba"/>
          <date year="2017" month="May"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
      </reference>

      <reference anchor="RFC8259" 
                 target="https://www.rfc-editor.org/info/rfc8259">
        <front>
          <title>The JSON Data Interchange Format</title>
          <author initials="T." surname="Bray" fullname="T. Bray"/>
          <date year="2017" month="December"/>
        </front>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="RFC" value="8259"/>
      </reference>

      <reference anchor="ryū" target="https://doi.org/10.1145/3192366.3192369">
        <front>
          <title>Ryū: fast float-to-string conversion</title>
          <author initials="U." surname="Adams" fullname="Ulf Adams"/>
          <date year="2018" month="June"/>
        </front>
        <seriesInfo name="Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation" value="PLDI 2018, pp. 270-282"/>
      </reference>

      <reference anchor="ryū-video" target="https://www.youtube.com/watch?v=kw-U6smcLzk&amp;t=457s">
        <front>
          <title>Ryū: Fast Float-to-String Conversion (PLDI 2018)</title>
          <author fullname="Ulf Adams">
            </author>
          <date year="2018"/>
        </front>
        <seriesInfo name="Video" value="YouTube"/>
      </reference>

      <reference anchor="octet" 
                 target="https://en.wikipedia.org/wiki/Octet_(computing)">
        <front>
          <title>Octet</title>
          <author>
            <organization>Wikipedia Contributors</organization>
          </author>
          <date year="2026" month="March"/>
        </front>
        <seriesInfo name="Wikipedia" value="Octet"/>
      </reference>
      
      <reference anchor="positional-number-systems-wikipedia" target="https://en.wikipedia.org/wiki/Numeral_system#Positional_systems_in_detail">
        <front>
          <title>Numeral system: Positional systems in detail</title>
          <author>
            <organization>Wikipedia contributors</organization>
          </author>
          <date year="2024" month="March"/>
        </front>
        <seriesInfo name="Encyclopedia" value="Wikipedia, The Free Encyclopedia"/>
      </reference>


      <reference anchor="sextet" 
                 target="https://en.wikipedia.org/wiki/Units_of_information#sextet">
        <front>
          <title>Sextet</title>
          <author>
            <organization>Wikipedia Contributors</organization>
          </author>
          <date year="2026" month="March"/>
        </front>
        <seriesInfo name="Wikipedia" value="Sextet"/>
      </reference>
      
      <reference anchor="ten64-decimal-serialization-algorithm" target="https://adligo.github.io/papers.adligo.com/algorithms/concrete/Ten64DecimalSerialization.html">
        <front>
          <title>Ten64DecimalSerialization: A Concrete Algorithm for 64-bit Decimal Representation</title>
          <author>
            <organization>Adligo</organization>
          </author>
          <date year="2024"/>
          <abstract>
            <t>A algorithm for the deterministic serialization and deserialization of signed integers of various types into a string format suitable for high-performance computing and data transmission.</t>
          </abstract>
        </front>
        <refcontent>Adligo Algorithm Specification Series</refcontent>
      </reference>
      
      <reference anchor="ten64-integer-serialization-algorithm" target="https://adligo.github.io/papers.adligo.com/algorithms/concrete/Ten64IntegerSerialization.html">
        <front>
          <title>Ten64IntegerSerialization: A Concrete Algorithm for 64-bit Integer Representation</title>
          <author>
            <organization>Adligo</organization>
          </author>
          <date year="2024"/>
          <abstract>
            <t>A algorithm for the deterministic serialization and de-serialization of various Decimal numbers into a string format suitable for high-performance computing and data transmission.</t>
          </abstract>
        </front>
        <refcontent>Adligo Algorithm Specification Series</refcontent>
      </reference>

      <reference anchor="UTF-8" 
                 target="https://www.rfc-editor.org/rfc/rfc3629">
        <front>
          <title>UTF-8, a transformation format of ISO 10646</title>
          <author initials="F." surname="Yergeau" fullname="Francois Yergeau">
            <organization>Alis Technologies</organization>
          </author>
          <date year="2003" month="November"/>
        </front>
        <seriesInfo name="RFC" value="3629"/>
        <seriesInfo name="STD" value="63"/>
      </reference>

      <reference anchor="uri-rfc-3986" target="https://www.rfc-editor.org/info/rfc3986">
        <front>
          <title>Uniform Resource Identifier (URI): Generic Syntax</title>
          <author initials="T." surname="Berners-Lee" fullname="T. Berners-Lee"/>
          <author initials="R." surname="Fielding" fullname="R. Fielding"/>
          <author initials="L." surname="Masinter" fullname="L. Masinter"/>
          <date month="January" year="2005"/>
        </front>
        <seriesInfo name="STD" value="66"/>
        <seriesInfo name="RFC" value="3986"/>
        <format type="PDF" target="https://www.rfc-editor.org/rfc/rfc3986.pdf"/>
      </reference>

      <reference anchor="URI-Templates-RFC6570" target="https://www.rfc-editor.org/info/rfc6570">
        <front>
          <title>URI Template</title>
          <author initials="J." surname="Gregorio" fullname="J. Gregorio"/>
          <author initials="R." surname="Fielding" fullname="R. Fielding"/>
          <author initials="M." surname="Hadley" fullname="M. Hadley"/>
          <author initials="M." surname="Nottingham" fullname="M. Nottingham"/>
          <author initials="D." surname="Orchard" fullname="D. Orchard"/>
          <date month="March" year="2012"/>
        </front>
        <seriesInfo name="RFC" value="6570"/>
        <seriesInfo name="DOI" value="10.17487/RFC6570"/>
      </reference>
      
      <reference anchor="uuid-rfc-9562" target="https://www.rfc-editor.org/info/rfc9562">
        <front>
          <title>Universally Unique IDentifiers (UUIDs)</title>
          <author fullname="K. Davis" initials="K." surname="Davis"/>
          <author fullname="B. Peabody" initials="B." surname="Peabody"/>
          <author fullname="P. Leach" initials="P." surname="Leach"/>
          <date month="May" year="2024"/>
          <abstract>
            <t>This specification defines UUIDs (Universally Unique IDentifiers) — also known as GUIDs (Globally Unique IDentifiers) — and a Uniform Resource Name namespace for UUIDs.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9562"/>
        <seriesInfo name="DOI" value="10.17487/RFC9562"/>
      </reference>

      <reference anchor="xml-schemas" target="https://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/">
        <front>
          <title>W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes</title>
          <author fullname="David Peterson" initials="D." surname="Peterson"/>
          <author fullname="Shudi (Sandy) Gao" initials="S." surname="Gao"/>
          <author fullname="Ashok Malhotra" initials="A." surname="Malhotra"/>
          <author fullname="C. M. Sperberg-McQueen" initials="C." surname="Sperberg-McQueen"/>
          <author fullname="Henry S. Thompson" initials="H." surname="Thompson"/>
          <date day="5" month="April" year="2012"/>
        </front>
        <seriesInfo name="W3C Recommendation" value="REC-xmlschema11-2-20120405"/>
      </reference>
    </references>
    
    <references>
      <name>Informative References</name>
      
      <reference anchor="BigInt-Java" target="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/math/BigInteger.html">
        <front>
          <title>Java Platform, Standard Edition v21: Class BigInteger</title>
          <author>
            <organization>Oracle Corporation</organization>
          </author>
          <date year="2023"/>
        </front>
      </reference>

      <reference anchor="BigDecimal-Java" target="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/math/BigDecimal.html">
        <front>
          <title>Java Platform, Standard Edition v21: Class BigDecimal</title>
          <author>
            <organization>Oracle Corporation</organization>
          </author>
          <date year="2023"/>
        </front>
        <refcontent>Java Standard Library</refcontent>
      </reference>

      <reference anchor="BigDecimal-NPM" target="https://www.npmjs.com/package/bigdecimal">
        <front>
          <title>BigDecimal: Arbitrary-precision decimal arithmetic</title>
          <author>
            <organization>STZ-IDA</organization>
          </author>
          <date year="2024" month="September"/>
        </front>
        <refcontent>NPM Package</refcontent>
      </reference>

      <reference anchor="bioctal" 
                 target="https://en.wikipedia.org/wiki/Bioctal">
        <front>
          <title>Bioctal: Hexadecimal 2.0</title>
          <author><organization>Community</organization></author>
          <date/>
        </front>
      </reference>

      <reference anchor="OriginOfTheNumerals" target="https://arxiv.org/abs/math/0606699">
        <front>
          <title>Origin of the numerals</title>
          <author initials="A." surname="Boucenna" fullname="Ahmed Boucenna">
            <organization>Department of Physics, Faculty of Sciences, Ferhat Abbas University</organization>
            <address>
              <postal>
                <city>Sétif</city>
                <code>19000</code>
                <country>Algeria</country>
              </postal>
            </address>
          </author>
          <date year="2006" month="June" day="30"/>
        </front>
        <seriesInfo name="arXiv" value="math/0606699"/>
      </reference>

      <reference anchor="CACM-Binary" 
                 target="https://doi.org/10.1145/364096.364107">
        <front>
          <title>Letters to the editor: On binary notation</title>
          <author><organization>ACM</organization></author>
          <date year="1968"/>
        </front>
        <seriesInfo name="DOI" value="10.1145/364096.364107"/>
      </reference>

      <reference anchor="ECMA-262" target="https://tc39.es/ecma262/">
        <front>
          <title>ECMAScript 2025 Language Specification</title>
          <author>
            <organization>Ecma International</organization>
          </author>
          <date year="2025" month="June"/>
        </front>
        <seriesInfo name="Standard" value="ECMA-262"/>
      </reference>

      <reference anchor="google-gemini" target="https://www.emergentmind.com/topics/google-gemini">
        <front>
          <title>Google Gemini: Scalable Multimodal Models</title>
          <author>
            <organization>Emergent Mind</organization>
          </author>
          <date day="14" month="January" year="2026"/>
        </front>
        <seriesInfo name="Website" value="Emergent Mind"/>
      </reference>

      <reference anchor="google-gemini-deep-research" target="https://i10x.ai/news/google-gemini-deep-research-analysis">
        <front>
          <title>Google Gemini Deep Research: AI for Complex Tasks</title>
          <author>
            <organization>i10X</organization>
          </author>
          <date day="16" month="December" year="2025"/>
        </front>
        <seriesInfo name="Website" value="i10X"/>
      </reference>

      <reference anchor="Gson-GitHub" target="https://github.com/google/gson">
        <front>
          <title>Gson: A Java serialization/deserialization library to convert Java Objects into JSON and back</title>
          <author>
            <organization>Google</organization>
          </author>
          <date year="2026" month="March"/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="Jackson-GitHub" target="https://github.com/fasterxml/jackson">
        <front>
          <title>Jackson: Main Portal page for the Jackson project</title>
          <author>
            <organization>FasterXML, LLC</organization>
          </author>
          <date year="2026" month="March"/>
        </front>
        <refcontent>GitHub repository</refcontent>
      </reference>

      <reference anchor="IETF-Style" target="https://authors.ietf.org/language-and-style">
        <front>
          <title>Language and Style Guide for IETF Authors</title>
          <author>
            <organization>Internet Engineering Task Force (IETF)</organization>
          </author>
          <date year="2024"/>
          <abstract>
            <t>Style guidelines for the preparation of Internet-Drafts and RFCs, covering English usage, technical terminology, and document structure.</t>
          </abstract>
        </front>
        <refcontent>IETF Author Resources</refcontent>
      </reference>

      <reference anchor="ISO8601" 
                 target="https://www.iso.org/standard/40874.html">
        <front>
          <title>Representation of dates and times</title>
          <author><organization>ISO</organization></author>
          <date year="2004"/>
        </front>
        <seriesInfo name="ISO" value="8601"/>
      </reference>

      <reference anchor="Smithsonian-Zero" target="https://www.smithsonianmag.com/smart-news/dating-ancient-indian-text-gives-new-timeline-history-zero-180964896/">
        <front>
          <title>Carbon Dating Reveals the History of Zero Is Older Than Previously Thought</title>
          <author initials="B." surname="Katz" fullname="Brigit Katz">
            <organization>Smithsonian Magazine</organization>
          </author>
          <date year="2017" month="September" day="14"/>
        </front>
        <refcontent>Smart News</refcontent>
      </reference>

      <reference anchor="W3C.REC-xml-20081126" 
                 target="https://www.w3.org/TR/2008/REC-xml-20081126/">
        <front>
          <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title>
          <author initials="T." surname="Bray" fullname="Tim Bray"/>
          <date year="2008" month="November"/>
        </front>
        <seriesInfo name="W3C REC" value="REC-xml-20081126"/>
      </reference>
      
    </references>

    <section anchor="acknowledgments" numbered="false" title="Acknowledgments">
      <t>
        The author wishes to acknowledge <contact fullname="R Ismo"/>, who was 
        instrumental in providing meticulous scrutiny to this project. Although 
        he disagreed and <bcp14>MAY</bcp14> still disagree with much of it, the 
        discourse was wonderful and fully worthwhile.
      </t>
    </section>
  </back>
</rfc>