OptionalpurchaseOptionalproposedOptionalconsultationOptionalproposalOptionalparent_proposal_id?: stringOptionalmedia_buy_id?: stringOptionalopportunity_id?: stringBuyer planning cycle associated with this proposal. Revisions inherit it; it does not participate in proposal identity.
Optionalbase_media_buy_revision?: numberOptionalaccepted_at?: stringOptionalexpires_at?: stringFor a draft, the indicative-terms freshness deadline. For a committed proposal, the inventory-hold deadline.
Optionaldescription?: stringOptionalbrief_alignment?: stringBase64url SHA-256 digest of the RFC 8785 JCS serialization of commercial_terms, prefixed with sha256:.
Optionalinsertion_order?: InsertionOrderOptionalruntimeOpen, absolute URI identifying the claim vocabulary. The URI is an identifier and need not be dereferenceable. AdCP does not maintain an enum of approved claims.
Optionallocator?: AttestationCredentialUriLocator | AttestationIssuerCredentialIdLocatorStable locator for resolving the credential. Credential URLs are permitted only when their canonical origin is allowlisted for the matched issuer. Issuer-scoped IDs name a resolver_id already published by the evaluator; the presentation cannot introduce a resolver URL.
Optionalembedded_credential?: { format: string; value: string | {}; ext?: ExtensionObject }Optional inline credential for private, authenticated, or offline delivery. It may accompany locator or be the only delivery path. Its format must be supported by the evaluator, and the evaluator MUST verify the credential exactly as it would a resolved credential.
Open, absolute URI identifying the credential/proof format. AdCP does not impose a universal issuer payload schema.
Credential encoded as a JSON object or a compact string, according to format.
Optionalext?: ExtensionObjectOptionalcontent_digest?: stringOptional SHA-256 digest pin for the exact credential bytes, formatted as sha256:
Optionalcredential_version?: stringOptional issuer-defined credential version hint. It is advisory; the resolved credential is authoritative.
Optionalvalidity_hint?: { not_before?: string; expires_at?: string }Optional planning-time validity hint copied from issuer metadata. Evaluators MUST use the resolved or embedded credential's signed validity and revocation state as authoritative.
Optionalverify_agent?: { agent_url: string }Optional presenter nomination of a verifier already published by the evaluator. This is a representation, not routing authority: agent_url MUST match an accepted_verifiers[] entry after canonicalization, and the evaluator may choose another accepted verifier or verify locally.
Optionalext?: ExtensionObjectOpen, absolute URI identifying the claim vocabulary. The URI is an identifier and need not be dereferenceable. AdCP does not maintain an enum of approved claims.
Optionallocator?: AttestationCredentialUriLocator | AttestationIssuerCredentialIdLocatorStable locator for resolving the credential. Credential URLs are permitted only when their canonical origin is allowlisted for the matched issuer. Issuer-scoped IDs name a resolver_id already published by the evaluator; the presentation cannot introduce a resolver URL.
Optionalembedded_credential?: { format: string; value: string | {}; ext?: ExtensionObject }Optional inline credential for private, authenticated, or offline delivery. It may accompany locator or be the only delivery path. Its format must be supported by the evaluator, and the evaluator MUST verify the credential exactly as it would a resolved credential.
Open, absolute URI identifying the credential/proof format. AdCP does not impose a universal issuer payload schema.
Credential encoded as a JSON object or a compact string, according to format.
Optionalext?: ExtensionObjectOptionalcontent_digest?: stringOptional SHA-256 digest pin for the exact credential bytes, formatted as sha256:
Optionalcredential_version?: stringOptional issuer-defined credential version hint. It is advisory; the resolved credential is authoritative.
Optionalvalidity_hint?: { not_before?: string; expires_at?: string }Optional planning-time validity hint copied from issuer metadata. Evaluators MUST use the resolved or embedded credential's signed validity and revocation state as authoritative.
Optionalverify_agent?: { agent_url: string }Optional presenter nomination of a verifier already published by the evaluator. This is a representation, not routing authority: agent_url MUST match an accepted_verifiers[] entry after canonicalization, and the evaluator may choose another accepted verifier or verify locally.
Optionalext?: ExtensionObjectOptionalsubject?: {Optionalinvoice
Immediate predecessor this snapshot was forked from. Every proposal produced by refine_proposals carries it, equal to the request's source proposal_id, so negotiation lineage is reconstructible from proposals alone.