Whether this concrete request can change seller state and should therefore
carry an idempotency key. Most mutations are classified by their tool's
required request field. AdCP 3.2's legacy-compatible proposal finalization
is the exception: it is a state-changing variant of otherwise read-only
get_products, whose compatibility schema keeps the key optional. Creative
feature evaluation is also economically consequential in AdCP 3.2 even
though its 3.x compatibility schema keeps the key optional; classifying it
here makes SDK callers mint a key while servers can still admit legacy
keyless requests.
Whether this concrete request can change seller state and should therefore carry an idempotency key. Most mutations are classified by their tool's required request field. AdCP 3.2's legacy-compatible proposal finalization is the exception: it is a state-changing variant of otherwise read-only
get_products, whose compatibility schema keeps the key optional. Creative feature evaluation is also economically consequential in AdCP 3.2 even though its 3.x compatibility schema keeps the key optional; classifying it here makes SDK callers mint a key while servers can still admit legacy keyless requests.