MUST be defined in a specification which is freely and publicly
+ available at the stable URL listed in the registry.
+
+
MUST define a representation, as either a [[WebIDL]] [=dictionary=]
+ or a JSON object, of the [=digital credential/exchange protocol=] request
+ structure (i.e., the [=dictionary=] which defines the semantics and
+ validation of the {{DigitalCredentialsProvider}}'s
+ {{DigitalCredentialsProvider/request}} member.
+
+
MUST define a representation, as either a [[WebIDL]] [=dictionary=]
+ or a JSON object, of the [=digital credential/exchange protocol=]
+ response structure (i.e., the [=dictionary=] which defines the
+ semantics and validation of the {{DigitalCredential}}'s
+ {{DigitalCredential/data}} member.
+
+
MUST define validation rules for members of the request and response
+ structures.
+
MUST have implementation commitment from at least one browser engine,
+ one credential provider/wallet, and one issuer or verifier (depending on
+ the protocol type). Each component MUST be from independent organizations.
+
+
MUST have formally recorded consensus by the Federated Identity Working Group to be
+ included in the registry.
+
+
+
+ Presentation-specific inclusion criteria
+
+
+ To be included as a presentation protocol in the registry (used with
+ `navigator.credentials.get`), the [=digital credential/exchange
+ protocol=]:
+
+
+
MUST support response encryption.
+
+
MUST encrypt any response containing personally identifiable
+ information (PII).
+
+
+
+ Change process
+
+
+ To add a new [=digital credential/exchange protocol=] to the registry, or
+ to update an existing one:
+
+
+
+ Define a protocol identifier
+
+
+ The protocol identifier MUST be a unique string that is not already in
+ use in the registry. Use only lowercase ASCII letters, digits, and
+ hyphens (e.g., "protocol", "the-protocol"). The protocol identifier
+ MUST uniquely define the set of required parameters and/or behavior
+ that a digital credential provider implementation needs to support
+ to successfully handle the request. If the set of required parameters
+ or behaviors is updated in a way which would require a digital credential
+ provider to also require an update to remain functional, a new protocol
+ identifier MUST be assigned and be added to the registry.
+
+
+ Specify a protocol type
+
+
+ The protocol type is either "Presentation" for presentation protocols
+ used with `navigator.credentials.get` or "Issuance" for issuance
+ protocols used with `navigator.credentials.create`.
+
+
+ Describe the protocol
+
+
+ The description MUST be a brief summary of the protocol's purpose and
+ use case.
+
+
+ Provide a link to the specification
+
+
+ The specification MUST be a stable URL that points to the authoritative
+ source for the protocol, including validation rules.
+
+
[=User agents=] MUST support the following [=digital credential/exchange
@@ -452,13 +558,15 @@