<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-ietf-calext-jscontact-uid-07" number="9982" submissionType="IETF" consensus="true" category="std" xml:lang="en" obsoletes="" updates="9555" tocInclude="true" symRefs="true" sortRefs="true" prepTime="2026-05-28T18:14:16" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-calext-jscontact-uid-07" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9982" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="JSContact Version 2.0">JSContact Version 2.0: A JSON Representation of Contact Data</title>
    <seriesInfo name="RFC" value="9982" stream="IETF"/>
    <author initials="R." surname="Stepanek" fullname="Robert Stepanek">
      <organization showOnFrontPage="true">Fastmail</organization>
      <address>
        <postal>
          <extaddr>PO Box 234</extaddr>
          <street>Collins St. West</street>
          <city>Melbourne</city>
          <region>VIC</region>
          <code>8007</code>
          <country>Australia</country>
        </postal>
        <email>rsto@fastmailteam.com</email>
      </address>
    </author>
    <date month="05" year="2026"/>
    <area>ART</area>
    <workgroup>calext</workgroup>
    <keyword>JSContact</keyword>
    <keyword>addressbook</keyword>
    <keyword>contacts</keyword>
    <keyword>cards</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document defines version "2.0" of JSContact. It defines the uid property of a Card object to be optional, rather than mandatory, as defined previously in version "1.0". All other definitions of JSContact version "1.0" remain as defined in RFC 9553. This document updates RFC 9555 by redefining how to convert the now optional uid property from and to vCard. It also registers the vCard JSCOMPS parameter at IANA, which was defined but not registered in RFC 9555.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9982" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2026 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-notational-conventions">Notational Conventions</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-jscontact-version-20">JSContact Version 2.0</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-redefined-uid-property">Redefined uid Property</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-redefined-conversion-rule-f">Redefined Conversion Rule for the uid Property</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-other-changes">Other Changes</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update-to-the-jscontact-ver">Update to the JSContact Version Registry</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update-to-the-jscontact-pro">Update to the JSContact Properties Registry</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.3">
                <t indent="0" pn="section-toc.1-1.7.2.3.1"><xref derivedContent="7.3" format="counter" sectionFormat="of" target="section-7.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update-to-the-vcard-paramet">Update to the vCard Parameters Registry</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-address">Author's Address</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1"><xref target="RFC9553" format="default" sectionFormat="of" derivedContent="RFC9553">JSContact</xref> defines the Card object uid property, a mandatory property that contains a unique identifier for the entity represented by that contact card. For the same purpose, the <xref target="RFC6350" format="default" sectionFormat="of" derivedContent="RFC6350">vCard</xref> contact format defines the UID property, an optional property of a vCard instance. Throughout the rest of this document, the term uid (all lowercase) denotes the JSContact uid property, and the term UID (all uppercase) denotes the vCard UID property.</t>
      <t indent="0" pn="section-1-2">The uid property being defined as mandatory in JSContact has shown to be applicable for some use cases but turned out to be an issue in other contexts.</t>
      <ol indent="adaptive" spacing="normal" start="1" type="1" pn="section-1-3">
  <li pn="section-1-3.1" derivedCounter="1.">
    A stated goal of JSContact is to be compatible with the semantics of the vCard data format (<xref target="RFC9553" section="1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9553#section-1" derivedContent="RFC9553"/>). But <xref target="RFC6350" format="default" sectionFormat="of" derivedContent="RFC6350"/>
defines the UID property of a vCard to be optional, and consequently, the semantics of JSContact and vCard differ for such a crucial common element.
  </li>
        <li pn="section-1-3.2" derivedCounter="2.">
    Address book synchronization protocols, such as <xref target="RFC6352" format="default" sectionFormat="of" derivedContent="RFC6352">CardDAV</xref> and <xref target="RFC9610" format="default" sectionFormat="of" derivedContent="RFC9610">JMAP for Contacts</xref>, require the uid property. But other protocols, such as <xref target="RFC9083" format="default" sectionFormat="of" derivedContent="RFC9083">RDAP</xref>, have no use for it. JSContact should not require protocols to generate unique identifiers when they are irrelevant or even detrimental to the use case.
  </li>
        <li pn="section-1-3.3" derivedCounter="3.">
    Converting vCards having no UID property to JSContact is especially problematic:
<xref target="RFC9555" section="2.1.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9555#section-2.1.1" derivedContent="RFC9555"/>
requires implementations in this case to generate a unique identifier during conversion but does not require it to be the same across implementations or even one implementation converting the same Card multiple times. A recipient being unaware that the uid property value of such a Card object is ephemeral might refer to it in the members property or relatedTo property of another Card object, introducing invalid relations between contact cards.
  </li>
      </ol>
    </section>
    <section anchor="notational-conventions" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-notational-conventions">Notational Conventions</name>
      <t indent="0" pn="section-2-1">                                                                     
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/>
    when, and only when, they appear in all capitals, as shown here.
      </t>
      <t indent="0" pn="section-2-2">The ABNF definitions in this document use the notations of <xref target="RFC5234" format="default" sectionFormat="of" derivedContent="RFC5234"/>. ABNF rules not defined in this document are defined in either <xref target="RFC5234" format="default" sectionFormat="of" derivedContent="RFC5234"/> (such as the ABNF for CRLF, WSP, DQUOTE, VCHAR, ALPHA, and DIGIT) or <xref target="RFC6350" format="default" sectionFormat="of" derivedContent="RFC6350"/>.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-jscontact-version-20">JSContact Version 2.0</name>
      <t indent="0" pn="section-3-1">This document redefines the uid property of a Card object to become optional. Other than that, the property definition is left unchanged. This change requires the major version of JSContact to change, so this document defines the JSContact version to become "2.0". For further information about versioning JSContact data, see <xref target="RFC9553" section="1.9" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9553#section-1.9" derivedContent="RFC9553"/>.</t>
      <t indent="0" pn="section-3-2">Implementations <bcp14>MUST</bcp14> create JSContact data that complies with the definitions of version "2.0" (or some later registered version) and <bcp14>MUST</bcp14> set the version property of the JSContact Card object to that version. They <bcp14>MUST NOT</bcp14> reject a Card object without the uid property as invalid unless specified differently in another document or unless the Card version property has value "1.0". As any valid version "1.0" JSContact Card is also valid according to version "2.0", there is no need to migrate existing JSContact data.</t>
      <t indent="0" pn="section-3-3">This document does not redefine the vCard UID property.</t>
    </section>
    <section anchor="redefined-uid-property" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-redefined-uid-property">Redefined uid Property</name>
      <t indent="0" pn="section-4-1">This document redefines the type signature of the uid property, originally defined in <xref target="RFC9553" section="2.1.9" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9553#section-2.1.9" derivedContent="RFC9553"/>.</t>
      <t indent="0" pn="section-4-2">OLD:</t>
      <blockquote pn="section-4-3">
        <strong>uid: String (mandatory).</strong></blockquote>
      <t indent="0" pn="section-4-4">NEW:</t>
      <blockquote pn="section-4-5">
        <strong>uid: String (optional).</strong></blockquote>
      <t indent="0" pn="section-4-6">The remaining property definition is left unchanged, with the following additional paragraph:</t>
      <blockquote pn="section-4-7">
        <t indent="0" pn="section-4-7.1">A Card without an uid property cannot be referred to as a group member in the members property (<xref target="RFC9553" section="2.1.6" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9553#section-2.1.6" derivedContent="RFC9553"/>) or put in relation to another Card object in the relatedTo property (<xref target="RFC9553" section="2.1.8" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9553#section-2.1.8" derivedContent="RFC9553"/>).</t>
      </blockquote>
    </section>
    <section anchor="redefined-uid-property-conversion" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-redefined-conversion-rule-f">Redefined Conversion Rule for the uid Property</name>
      <t indent="0" pn="section-5-1">This document redefines how to convert the Card uid property from vCard, originally defined in <xref target="RFC9555" section="2.1.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9555#section-2.1.1" derivedContent="RFC9555"/>. The new conversion rule is as follows:</t>
      <t indent="0" pn="section-5-2">Implementations that convert a vCard without a UID property (<xref target="RFC6350" section="6.7.6" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc6350#section-6.7.6" derivedContent="RFC6350"/>) to a Card of version "2.0" or higher <bcp14>MUST NOT</bcp14> generate a unique identifier as a value for the uid property (<xref target="RFC9553" section="2.1.9" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9553#section-2.1.9" derivedContent="RFC9553"/>).</t>
      <t indent="0" pn="section-5-3">When converting a vCard without a UID property to JSContact version "1.0", implementations <bcp14>MUST</bcp14> generate a value for the uid property.
How to generate unique identifiers is implementation-specific. Implementations
<bcp14>SHOULD</bcp14>
generate the same value when generating the same Card multiple times, but as
<xref target="introduction" format="default" sectionFormat="of" derivedContent="Section 1"/>
describes, this still cannot prevent interoperability issues. Consequently, implementations
<bcp14>SHOULD NOT</bcp14>
convert to version "1.0" Card objects.
      </t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-other-changes">Other Changes</name>
      <t indent="0" pn="section-6-1">This document also registers the JSCOMPS parameter in the IANA "vCard Parameters" registry. The parameter was defined in <xref target="RFC9555" section="3.3.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9555#section-3.3.1" derivedContent="RFC9555"/> but mistakenly not registered at IANA.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-7.1">
        <name slugifiedName="name-update-to-the-jscontact-ver">Update to the JSContact Version Registry</name>
        <t indent="0" pn="section-7.1-1">IANA has updated the "JSContact Version" registry, originally created in <xref target="RFC9553" section="3.4" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9553#section-3.4" derivedContent="RFC9553"/>, by adding the following record:</t>
        <table anchor="tab-iana-version-registry" align="center" pn="table-1">
          <name slugifiedName="name-jscontact-version-registry">JSContact Version Registry</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Major Version</th>
              <th align="left" colspan="1" rowspan="1">Highest Minor Version</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">2</td>
              <td align="left" colspan="1" rowspan="1">0</td>
              <td align="left" colspan="1" rowspan="1">RFC 9982</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-7.2">
        <name slugifiedName="name-update-to-the-jscontact-pro">Update to the JSContact Properties Registry</name>
        <t indent="0" pn="section-7.2-1">IANA has updated the "JSContact Properties" registry, originally created in <xref target="RFC9553" section="3.5" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9553#section-3.5" derivedContent="RFC9553"/>: In the "Reference/Description" column of the uid property, a reference to <xref target="redefined-uid-property" format="default" sectionFormat="of" derivedContent="Section 4"/> of this document has been added.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-7.3">
        <name slugifiedName="name-update-to-the-vcard-paramet">Update to the vCard Parameters Registry</name>
        <t indent="0" pn="section-7.3-1">IANA has updated the "vCard Parameters" registry within the "vCard Elements" registry group by adding the following entry:</t>
        <table anchor="tab-iana-vcard-parameter-registry" align="center" pn="table-2">
          <name slugifiedName="name-vcard-parameters-registry">vCard Parameters Registry</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Namespace</th>
              <th align="left" colspan="1" rowspan="1">Parameter</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1"/>
              <td align="left" colspan="1" rowspan="1">JSCOMPS</td>
              <td align="left" colspan="1" rowspan="1">
                <xref target="RFC9555" section="3.3.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9555#section-3.3.1" derivedContent="RFC9555"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-8-1">This document does not provide new security considerations. The security considerations of <xref target="RFC9553" section="4" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9553#section-4" derivedContent="RFC9553"/> apply.</t>
    </section>
  </middle>
  <back>
    <references pn="section-9">
      <name slugifiedName="name-references">References</name>
      <references pn="section-9.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234" quoteTitle="true" derivedAnchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t indent="0">Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC6350" target="https://www.rfc-editor.org/info/rfc6350" quoteTitle="true" derivedAnchor="RFC6350">
          <front>
            <title>vCard Format Specification</title>
            <author fullname="S. Perreault" initials="S." surname="Perreault"/>
            <date month="August" year="2011"/>
            <abstract>
              <t indent="0">This document defines the vCard data format for representing and exchanging a variety of information about individuals and other entities (e.g., formatted and structured name and delivery addresses, email address, multiple telephone numbers, photograph, logo, audio clips, etc.). This document obsoletes RFCs 2425, 2426, and 4770, and updates RFC 2739. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6350"/>
          <seriesInfo name="DOI" value="10.17487/RFC6350"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9553" target="https://www.rfc-editor.org/info/rfc9553" quoteTitle="true" derivedAnchor="RFC9553">
          <front>
            <title>JSContact: A JSON Representation of Contact Data</title>
            <author fullname="R. Stepanek" initials="R." surname="Stepanek"/>
            <author fullname="M. Loffredo" initials="M." surname="Loffredo"/>
            <date month="May" year="2024"/>
            <abstract>
              <t indent="0">This specification defines a data model and JavaScript Object Notation (JSON) representation of contact card information that can be used for data storage and exchange in address book or directory applications. It aims to be an alternative to the vCard data format and to be unambiguous, extendable, and simple to process. In contrast to the JSON-based jCard format, it is not a direct mapping from the vCard data model and expands semantics where appropriate. Two additional specifications define new vCard elements and how to convert between JSContact and vCard.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9553"/>
          <seriesInfo name="DOI" value="10.17487/RFC9553"/>
        </reference>
        <reference anchor="RFC9555" target="https://www.rfc-editor.org/info/rfc9555" quoteTitle="true" derivedAnchor="RFC9555">
          <front>
            <title>JSContact: Converting from and to vCard</title>
            <author fullname="M. Loffredo" initials="M." surname="Loffredo"/>
            <author fullname="R. Stepanek" initials="R." surname="Stepanek"/>
            <date month="May" year="2024"/>
            <abstract>
              <t indent="0">This document defines how to convert contact information between the JSContact and vCard data formats. It defines conversion rules for every JSContact and vCard element registered at IANA at the time of publication. It also defines new JSContact properties as well as vCard properties and parameters, to support converting arbitrary or unknown JSContact and vCard elements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9555"/>
          <seriesInfo name="DOI" value="10.17487/RFC9555"/>
        </reference>
      </references>
      <references pn="section-9.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC6352" target="https://www.rfc-editor.org/info/rfc6352" quoteTitle="true" derivedAnchor="RFC6352">
          <front>
            <title>CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)</title>
            <author fullname="C. Daboo" initials="C." surname="Daboo"/>
            <date month="August" year="2011"/>
            <abstract>
              <t indent="0">This document defines extensions to the Web Distributed Authoring and Versioning (WebDAV) protocol to specify a standard way of accessing, managing, and sharing contact information based on the vCard format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6352"/>
          <seriesInfo name="DOI" value="10.17487/RFC6352"/>
        </reference>
        <reference anchor="RFC9083" target="https://www.rfc-editor.org/info/rfc9083" quoteTitle="true" derivedAnchor="RFC9083">
          <front>
            <title>JSON Responses for the Registration Data Access Protocol (RDAP)</title>
            <author fullname="S. Hollenbeck" initials="S." surname="Hollenbeck"/>
            <author fullname="A. Newton" initials="A." surname="Newton"/>
            <date month="June" year="2021"/>
            <abstract>
              <t indent="0">This document describes JSON data structures representing registration information maintained by Regional Internet Registries (RIRs) and Domain Name Registries (DNRs). These data structures are used to form Registration Data Access Protocol (RDAP) query responses. This document obsoletes RFC 7483.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="95"/>
          <seriesInfo name="RFC" value="9083"/>
          <seriesInfo name="DOI" value="10.17487/RFC9083"/>
        </reference>
        <reference anchor="RFC9610" target="https://www.rfc-editor.org/info/rfc9610" quoteTitle="true" derivedAnchor="RFC9610">
          <front>
            <title>JSON Meta Application Protocol (JMAP) for Contacts</title>
            <author fullname="N. Jenkins" initials="N." role="editor" surname="Jenkins"/>
            <date month="December" year="2024"/>
            <abstract>
              <t indent="0">This document specifies a data model for synchronising contact data with a server using the JSON Meta Application Protocol (JMAP).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9610"/>
          <seriesInfo name="DOI" value="10.17487/RFC9610"/>
        </reference>
      </references>
    </references>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-authors-address">Author's Address</name>
      <author initials="R." surname="Stepanek" fullname="Robert Stepanek">
        <organization showOnFrontPage="true">Fastmail</organization>
        <address>
          <postal>
            <extaddr>PO Box 234</extaddr>
            <street>Collins St. West</street>
            <city>Melbourne</city>
            <region>VIC</region>
            <code>8007</code>
            <country>Australia</country>
          </postal>
          <email>rsto@fastmailteam.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
