1. Introduction
JSContact [RFC9553] 将 Card object 的 uid property 定义为 mandatory. vCard [RFC6350] contact format 将 UID property 定义为 optional. 在本文档中, uid 表示 JSContact property, UID 表示 vCard property.
JSContact uid property 被定义为 mandatory 对某些 use cases 适用, 但在其他 contexts 中会造成问题. JSContact 的目标之一是兼容 vCard data format 的 semantics, 但 vCard 中 UID 是 optional. CardDAV [RFC6352] 和 JMAP for Contacts [RFC9610] 等 synchronization protocols 需要 uid, 而 RDAP [RFC9083] 等 protocols 不需要它.
本文档还说明 conversion problem: RFC 9555 要求在把没有 UID 的 vCards 转换为 JSContact 时生成 unique identifier, 但该值可能是 ephemeral, 并且不同 implementations 或重复 conversions 之间不一致. 如果另一个 Card 通过 members 或 relatedTo 引用该值, 可能产生 invalid relations.