@adcp/sdk 15.8.1 → 16.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2348) hide show
  1. package/ADCP_VERSION +1 -1
  2. package/bin/adcp-identity.js +74 -0
  3. package/bin/adcp.js +2 -0
  4. package/compliance/cache/3.2.4/domains/creative/index.yaml +370 -0
  5. package/compliance/cache/3.2.4/domains/creative/scenarios/billing_out_of_band.yaml +181 -0
  6. package/compliance/cache/3.2.4/domains/creative/scenarios/canonical_supported_formats.yaml +235 -0
  7. package/compliance/cache/3.2.4/domains/creative/scenarios/creative_features_idempotency.yaml +675 -0
  8. package/compliance/cache/3.2.4/domains/creative/scenarios/creative_revision_identity.yaml +219 -0
  9. package/compliance/cache/3.2.4/domains/creative/scenarios/evaluator_auth.yaml +589 -0
  10. package/compliance/cache/3.2.4/domains/creative/scenarios/list_creatives_filter_behavior.yaml +132 -0
  11. package/compliance/cache/3.2.4/domains/creative/scenarios/native_in_feed.yaml +557 -0
  12. package/compliance/cache/3.2.4/domains/creative/scenarios/native_localization.yaml +393 -0
  13. package/compliance/cache/3.2.4/domains/governance/index.yaml +708 -0
  14. package/compliance/cache/3.2.4/domains/governance/scenarios/property_list_change_webhook_signing.yaml +165 -0
  15. package/compliance/cache/3.2.4/domains/media-buy/index.yaml +865 -0
  16. package/compliance/cache/3.2.4/domains/media-buy/scenarios/advanced_delivery_reporting.yaml +276 -0
  17. package/compliance/cache/3.2.4/domains/media-buy/scenarios/audience_activation_discovery.yaml +275 -0
  18. package/compliance/cache/3.2.4/domains/media-buy/scenarios/audience_buy_flow.yaml +387 -0
  19. package/compliance/cache/3.2.4/domains/media-buy/scenarios/availability_windows.yaml +446 -0
  20. package/compliance/cache/3.2.4/domains/media-buy/scenarios/available_actions.yaml +692 -0
  21. package/compliance/cache/3.2.4/domains/media-buy/scenarios/bidding_cost_binding.yaml +154 -0
  22. package/compliance/cache/3.2.4/domains/media-buy/scenarios/bidding_policy_placement.yaml +301 -0
  23. package/compliance/cache/3.2.4/domains/media-buy/scenarios/billing_finality_delivery.yaml +363 -0
  24. package/compliance/cache/3.2.4/domains/media-buy/scenarios/canonical_formats.yaml +1291 -0
  25. package/compliance/cache/3.2.4/domains/media-buy/scenarios/catalog_item_availability_updates.yaml +938 -0
  26. package/compliance/cache/3.2.4/domains/media-buy/scenarios/clicks_buy_flow.yaml +271 -0
  27. package/compliance/cache/3.2.4/domains/media-buy/scenarios/collection_selection.yaml +474 -0
  28. package/compliance/cache/3.2.4/domains/media-buy/scenarios/completed_views_buy_flow.yaml +350 -0
  29. package/compliance/cache/3.2.4/domains/media-buy/scenarios/create_media_buy_async.yaml +267 -0
  30. package/compliance/cache/3.2.4/domains/media-buy/scenarios/create_media_buy_async_lifecycle.yaml +432 -0
  31. package/compliance/cache/3.2.4/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +463 -0
  32. package/compliance/cache/3.2.4/domains/media-buy/scenarios/creative_reception.yaml +252 -0
  33. package/compliance/cache/3.2.4/domains/media-buy/scenarios/cross_path_targeting_provenance.yaml +445 -0
  34. package/compliance/cache/3.2.4/domains/media-buy/scenarios/delivery_reporting.yaml +410 -0
  35. package/compliance/cache/3.2.4/domains/media-buy/scenarios/demographic_targeting.yaml +653 -0
  36. package/compliance/cache/3.2.4/domains/media-buy/scenarios/dependency_impairment.yaml +750 -0
  37. package/compliance/cache/3.2.4/domains/media-buy/scenarios/dependency_impairment_audience.yaml +352 -0
  38. package/compliance/cache/3.2.4/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +1007 -0
  39. package/compliance/cache/3.2.4/domains/media-buy/scenarios/event_dedup_flow.yaml +406 -0
  40. package/compliance/cache/3.2.4/domains/media-buy/scenarios/external_audience_source_binding.yaml +332 -0
  41. package/compliance/cache/3.2.4/domains/media-buy/scenarios/frequency_cap_capability_updates.yaml +329 -0
  42. package/compliance/cache/3.2.4/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +316 -0
  43. package/compliance/cache/3.2.4/domains/media-buy/scenarios/geo_place_targeting.yaml +1049 -0
  44. package/compliance/cache/3.2.4/domains/media-buy/scenarios/geo_region_all_values_support.yaml +145 -0
  45. package/compliance/cache/3.2.4/domains/media-buy/scenarios/geo_region_exclusion_support.yaml +227 -0
  46. package/compliance/cache/3.2.4/domains/media-buy/scenarios/geo_region_targeting.yaml +1001 -0
  47. package/compliance/cache/3.2.4/domains/media-buy/scenarios/get_products_async.yaml +553 -0
  48. package/compliance/cache/3.2.4/domains/media-buy/scenarios/get_products_rejected.yaml +193 -0
  49. package/compliance/cache/3.2.4/domains/media-buy/scenarios/governance_approved.yaml +447 -0
  50. package/compliance/cache/3.2.4/domains/media-buy/scenarios/governance_conditions.yaml +552 -0
  51. package/compliance/cache/3.2.4/domains/media-buy/scenarios/governance_denied.yaml +398 -0
  52. package/compliance/cache/3.2.4/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +601 -0
  53. package/compliance/cache/3.2.4/domains/media-buy/scenarios/invalid_transitions.yaml +329 -0
  54. package/compliance/cache/3.2.4/domains/media-buy/scenarios/inventory_list_no_match.yaml +173 -0
  55. package/compliance/cache/3.2.4/domains/media-buy/scenarios/inventory_list_targeting.yaml +306 -0
  56. package/compliance/cache/3.2.4/domains/media-buy/scenarios/measurement_accountability.yaml +273 -0
  57. package/compliance/cache/3.2.4/domains/media-buy/scenarios/measurement_terms_accepted.yaml +173 -0
  58. package/compliance/cache/3.2.4/domains/media-buy/scenarios/measurement_terms_rejected.yaml +171 -0
  59. package/compliance/cache/3.2.4/domains/media-buy/scenarios/media_buy_frequency_cap_readback.yaml +332 -0
  60. package/compliance/cache/3.2.4/domains/media-buy/scenarios/media_buy_frequency_cap_updates.yaml +434 -0
  61. package/compliance/cache/3.2.4/domains/media-buy/scenarios/metric_container_subsumption.yaml +365 -0
  62. package/compliance/cache/3.2.4/domains/media-buy/scenarios/outcome_target.yaml +517 -0
  63. package/compliance/cache/3.2.4/domains/media-buy/scenarios/outcome_target_list_products_inert.yaml +96 -0
  64. package/compliance/cache/3.2.4/domains/media-buy/scenarios/owner_sold_channel_carriage.yaml +388 -0
  65. package/compliance/cache/3.2.4/domains/media-buy/scenarios/package_automatic_bidding.yaml +154 -0
  66. package/compliance/cache/3.2.4/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +131 -0
  67. package/compliance/cache/3.2.4/domains/media-buy/scenarios/pending_creatives_to_start.yaml +343 -0
  68. package/compliance/cache/3.2.4/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +505 -0
  69. package/compliance/cache/3.2.4/domains/media-buy/scenarios/performance_buy_flow.yaml +440 -0
  70. package/compliance/cache/3.2.4/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +482 -0
  71. package/compliance/cache/3.2.4/domains/media-buy/scenarios/portfolio_routing_scope.yaml +170 -0
  72. package/compliance/cache/3.2.4/domains/media-buy/scenarios/pricing_currency_filter.yaml +197 -0
  73. package/compliance/cache/3.2.4/domains/media-buy/scenarios/product_coverage_filters.yaml +149 -0
  74. package/compliance/cache/3.2.4/domains/media-buy/scenarios/product_filter_behavior.yaml +206 -0
  75. package/compliance/cache/3.2.4/domains/media-buy/scenarios/product_signal_targeting.yaml +407 -0
  76. package/compliance/cache/3.2.4/domains/media-buy/scenarios/provenance_audit_observation.yaml +361 -0
  77. package/compliance/cache/3.2.4/domains/media-buy/scenarios/provenance_enforcement.yaml +549 -0
  78. package/compliance/cache/3.2.4/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +323 -0
  79. package/compliance/cache/3.2.4/domains/media-buy/scenarios/reach_buy_flow.yaml +829 -0
  80. package/compliance/cache/3.2.4/domains/media-buy/scenarios/read_filter_behavior.yaml +302 -0
  81. package/compliance/cache/3.2.4/domains/media-buy/scenarios/revenue_share_pricing.yaml +349 -0
  82. package/compliance/cache/3.2.4/domains/media-buy/scenarios/seller_optimized_budget.yaml +1223 -0
  83. package/compliance/cache/3.2.4/domains/media-buy/scenarios/seller_optimized_min_spend_target_exceeds_package_cap.yaml +178 -0
  84. package/compliance/cache/3.2.4/domains/media-buy/scenarios/seller_optimized_proposal_package_pacing.yaml +300 -0
  85. package/compliance/cache/3.2.4/domains/media-buy/scenarios/targeting_aware_discovery.yaml +1701 -0
  86. package/compliance/cache/3.2.4/domains/media-buy/scenarios/total_budget_redistribution.yaml +198 -0
  87. package/compliance/cache/3.2.4/domains/media-buy/scenarios/typed_proposal_negotiation.yaml +798 -0
  88. package/compliance/cache/3.2.4/domains/media-buy/scenarios/vendor_metric_accountability.yaml +390 -0
  89. package/compliance/cache/3.2.4/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +314 -0
  90. package/compliance/cache/3.2.4/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +592 -0
  91. package/compliance/cache/3.2.4/domains/media-buy/state-machine.yaml +567 -0
  92. package/compliance/cache/3.2.4/domains/signals/index.yaml +177 -0
  93. package/compliance/cache/3.2.4/domains/signals/scenarios/get_signals_async.yaml +458 -0
  94. package/compliance/cache/3.2.4/index.json +508 -0
  95. package/compliance/cache/3.2.4/protocols/creative/index.yaml +370 -0
  96. package/compliance/cache/3.2.4/protocols/creative/scenarios/billing_out_of_band.yaml +181 -0
  97. package/compliance/cache/3.2.4/protocols/creative/scenarios/canonical_supported_formats.yaml +235 -0
  98. package/compliance/cache/3.2.4/protocols/creative/scenarios/creative_features_idempotency.yaml +675 -0
  99. package/compliance/cache/3.2.4/protocols/creative/scenarios/creative_revision_identity.yaml +219 -0
  100. package/compliance/cache/3.2.4/protocols/creative/scenarios/evaluator_auth.yaml +589 -0
  101. package/compliance/cache/3.2.4/protocols/creative/scenarios/list_creatives_filter_behavior.yaml +132 -0
  102. package/compliance/cache/3.2.4/protocols/creative/scenarios/native_in_feed.yaml +557 -0
  103. package/compliance/cache/3.2.4/protocols/creative/scenarios/native_localization.yaml +393 -0
  104. package/compliance/cache/3.2.4/protocols/governance/index.yaml +708 -0
  105. package/compliance/cache/3.2.4/protocols/governance/scenarios/property_list_change_webhook_signing.yaml +165 -0
  106. package/compliance/cache/3.2.4/protocols/media-buy/index.yaml +865 -0
  107. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/advanced_delivery_reporting.yaml +276 -0
  108. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/audience_activation_discovery.yaml +275 -0
  109. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/audience_buy_flow.yaml +387 -0
  110. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/availability_windows.yaml +446 -0
  111. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/available_actions.yaml +692 -0
  112. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/bidding_cost_binding.yaml +154 -0
  113. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/bidding_policy_placement.yaml +301 -0
  114. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/billing_finality_delivery.yaml +363 -0
  115. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/canonical_formats.yaml +1291 -0
  116. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/catalog_item_availability_updates.yaml +938 -0
  117. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/clicks_buy_flow.yaml +271 -0
  118. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/collection_selection.yaml +474 -0
  119. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +350 -0
  120. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/create_media_buy_async.yaml +267 -0
  121. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/create_media_buy_async_lifecycle.yaml +432 -0
  122. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +463 -0
  123. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/creative_reception.yaml +252 -0
  124. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/cross_path_targeting_provenance.yaml +445 -0
  125. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/delivery_reporting.yaml +410 -0
  126. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/demographic_targeting.yaml +653 -0
  127. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/dependency_impairment.yaml +750 -0
  128. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +352 -0
  129. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +1007 -0
  130. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/event_dedup_flow.yaml +406 -0
  131. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/external_audience_source_binding.yaml +332 -0
  132. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/frequency_cap_capability_updates.yaml +329 -0
  133. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +316 -0
  134. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/geo_place_targeting.yaml +1049 -0
  135. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/geo_region_all_values_support.yaml +145 -0
  136. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/geo_region_exclusion_support.yaml +227 -0
  137. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/geo_region_targeting.yaml +1001 -0
  138. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/get_products_async.yaml +553 -0
  139. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/get_products_rejected.yaml +193 -0
  140. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/governance_approved.yaml +447 -0
  141. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/governance_conditions.yaml +552 -0
  142. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/governance_denied.yaml +398 -0
  143. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +601 -0
  144. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/invalid_transitions.yaml +329 -0
  145. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/inventory_list_no_match.yaml +173 -0
  146. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/inventory_list_targeting.yaml +306 -0
  147. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/measurement_accountability.yaml +273 -0
  148. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/measurement_terms_accepted.yaml +173 -0
  149. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +171 -0
  150. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/media_buy_frequency_cap_readback.yaml +332 -0
  151. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/media_buy_frequency_cap_updates.yaml +434 -0
  152. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/metric_container_subsumption.yaml +365 -0
  153. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/outcome_target.yaml +517 -0
  154. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/outcome_target_list_products_inert.yaml +96 -0
  155. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/owner_sold_channel_carriage.yaml +388 -0
  156. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/package_automatic_bidding.yaml +154 -0
  157. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +131 -0
  158. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +343 -0
  159. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +505 -0
  160. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/performance_buy_flow.yaml +440 -0
  161. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +482 -0
  162. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/portfolio_routing_scope.yaml +170 -0
  163. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/pricing_currency_filter.yaml +197 -0
  164. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/product_coverage_filters.yaml +149 -0
  165. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/product_filter_behavior.yaml +206 -0
  166. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/product_signal_targeting.yaml +407 -0
  167. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/provenance_audit_observation.yaml +361 -0
  168. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/provenance_enforcement.yaml +549 -0
  169. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +323 -0
  170. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/reach_buy_flow.yaml +829 -0
  171. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/read_filter_behavior.yaml +302 -0
  172. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/revenue_share_pricing.yaml +349 -0
  173. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/seller_optimized_budget.yaml +1223 -0
  174. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/seller_optimized_min_spend_target_exceeds_package_cap.yaml +178 -0
  175. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/seller_optimized_proposal_package_pacing.yaml +300 -0
  176. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/targeting_aware_discovery.yaml +1701 -0
  177. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/total_budget_redistribution.yaml +198 -0
  178. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/typed_proposal_negotiation.yaml +798 -0
  179. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +390 -0
  180. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +314 -0
  181. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +592 -0
  182. package/compliance/cache/3.2.4/protocols/media-buy/state-machine.yaml +567 -0
  183. package/compliance/cache/3.2.4/protocols/signals/index.yaml +177 -0
  184. package/compliance/cache/3.2.4/protocols/signals/scenarios/get_signals_async.yaml +458 -0
  185. package/compliance/cache/3.2.4/specialisms/audience-sync/index.yaml +354 -0
  186. package/compliance/cache/3.2.4/specialisms/brand-rights/index.yaml +436 -0
  187. package/compliance/cache/3.2.4/specialisms/brand-rights/scenarios/update_rights_lifecycle.yaml +163 -0
  188. package/compliance/cache/3.2.4/specialisms/collection-lists/index.yaml +412 -0
  189. package/compliance/cache/3.2.4/specialisms/content-standards/index.yaml +725 -0
  190. package/compliance/cache/3.2.4/specialisms/creative-ad-server/index.yaml +425 -0
  191. package/compliance/cache/3.2.4/specialisms/creative-generative/generative-seller.yaml +701 -0
  192. package/compliance/cache/3.2.4/specialisms/creative-generative/index.yaml +742 -0
  193. package/compliance/cache/3.2.4/specialisms/creative-template/index.yaml +440 -0
  194. package/compliance/cache/3.2.4/specialisms/creative-transformers/index.yaml +475 -0
  195. package/compliance/cache/3.2.4/specialisms/governance-delivery-monitor/index.yaml +1374 -0
  196. package/compliance/cache/3.2.4/specialisms/governance-spend-authority/denied.yaml +251 -0
  197. package/compliance/cache/3.2.4/specialisms/governance-spend-authority/index.yaml +483 -0
  198. package/compliance/cache/3.2.4/specialisms/property-lists/index.yaml +544 -0
  199. package/compliance/cache/3.2.4/specialisms/sales-broadcast-tv/index.yaml +682 -0
  200. package/compliance/cache/3.2.4/specialisms/sales-dooh/index.yaml +739 -0
  201. package/compliance/cache/3.2.4/specialisms/sales-guaranteed/index.yaml +714 -0
  202. package/compliance/cache/3.2.4/specialisms/sales-non-guaranteed/index.yaml +662 -0
  203. package/compliance/cache/3.2.4/specialisms/signal-marketplace/index.yaml +471 -0
  204. package/compliance/cache/3.2.4/specialisms/signal-owned/index.yaml +235 -0
  205. package/compliance/cache/3.2.4/test-vectors/request-signing/README.md +319 -0
  206. package/compliance/cache/3.2.4/test-vectors/request-signing/canonicalization.json +318 -0
  207. package/compliance/cache/3.2.4/test-vectors/request-signing/negative/026-non-ascii-host.json +33 -0
  208. package/compliance/cache/3.2.4/test-vectors/request-signing/negative/029-duplicate-signature-label.json +32 -0
  209. package/compliance/cache/3.2.4/test-vectors/request-signing/negative/030-content-digest-key-case.json +33 -0
  210. package/compliance/cache/3.2.4/test-vectors/request-signing/negative/031-malformed-host-authority.json +34 -0
  211. package/compliance/cache/3.2.4/test-vectors/request-signing/positive/013-two-signature-labels-distinct.json +32 -0
  212. package/compliance/cache/3.2.4/test-vectors/request-signing/positive/014-content-digest-two-algorithms.json +32 -0
  213. package/compliance/cache/3.2.4/test-vectors/request-signing/positive/015-bracketed-ipv6-host-with-port.json +32 -0
  214. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/001-no-signature-header.json +31 -0
  215. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/011-malformed-header.json +33 -0
  216. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/019-signature-without-signature-input.json +31 -0
  217. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/021-duplicate-signature-input-label.json +34 -0
  218. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/022-multi-valued-content-type.json +34 -0
  219. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/023-multi-valued-content-digest.json +34 -0
  220. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/024-unquoted-string-param.json +34 -0
  221. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/026-non-ascii-host.json +34 -0
  222. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/027-webhook-registration-authentication-unsigned.json +30 -0
  223. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/028-unsigned-protocol-method-required.json +32 -0
  224. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/029-duplicate-signature-label.json +34 -0
  225. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/030-content-digest-key-case.json +34 -0
  226. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/031-malformed-host-authority.json +35 -0
  227. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/positive/013-two-signature-labels-distinct.json +33 -0
  228. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/positive/014-content-digest-two-algorithms.json +32 -0
  229. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/positive/015-bracketed-ipv6-host-with-port.json +33 -0
  230. package/compliance/cache/3.2.4/universal/billing-gate-dispatch.yaml +570 -0
  231. package/compliance/cache/3.2.4/universal/collection-lists-pagination-integrity.yaml +341 -0
  232. package/compliance/cache/3.2.4/universal/content-standards-pagination-integrity.yaml +361 -0
  233. package/compliance/cache/3.2.4/universal/deterministic-testing.yaml +1471 -0
  234. package/compliance/cache/3.2.4/universal/error-compliance-signals.yaml +417 -0
  235. package/compliance/cache/3.2.4/universal/error-compliance.yaml +577 -0
  236. package/compliance/cache/3.2.4/universal/get-signals-pagination-integrity.yaml +241 -0
  237. package/compliance/cache/3.2.4/universal/idempotency.yaml +917 -0
  238. package/compliance/cache/3.2.4/universal/property-lists-pagination-integrity.yaml +342 -0
  239. package/compliance/cache/3.2.4/universal/read-tool-idempotency.yaml +345 -0
  240. package/compliance/cache/3.2.4/universal/schema-validation-signals.yaml +212 -0
  241. package/compliance/cache/3.2.4/universal/schema-validation.yaml +442 -0
  242. package/compliance/cache/3.2.4/universal/signed-requests.yaml +224 -0
  243. package/compliance/cache/3.2.4/universal/stale-response-advisory.yaml +320 -0
  244. package/compliance/cache/3.2.4/universal/storyboard-schema.yaml +2749 -0
  245. package/compliance/cache/3.2.4/universal/webhook-emission.yaml +944 -0
  246. package/compliance/cache/3.2.4/universal/wholesale-feed-products-scope-isolation.yaml +156 -0
  247. package/compliance/cache/3.2.4/universal/wholesale-feed-products.yaml +185 -0
  248. package/compliance/cache/3.2.4/universal/wholesale-feed-signals-scope-isolation.yaml +154 -0
  249. package/compliance/cache/3.2.4/universal/wholesale-feed-signals.yaml +180 -0
  250. package/dist/lib/adapters/keyed-account-backend.d.mts +37 -0
  251. package/dist/lib/adapters/keyed-account-backend.d.ts +37 -0
  252. package/dist/lib/adapters/keyed-account-backend.js +121 -0
  253. package/dist/lib/adapters/keyed-account-backend.mjs +94 -0
  254. package/dist/lib/adapters/keyed-account-store.d.mts +28 -0
  255. package/dist/lib/adapters/keyed-account-store.d.ts +28 -0
  256. package/dist/lib/adapters/keyed-account-store.js +227 -0
  257. package/dist/lib/adapters/keyed-account-store.mjs +203 -0
  258. package/dist/lib/client/core.d.mts +1 -1
  259. package/dist/lib/client/core.d.ts +1 -1
  260. package/dist/lib/compliance-fixtures/canonical-storyboards-provenance.json +4 -4
  261. package/dist/lib/compliance-fixtures/canonical-storyboards.d.mts +2 -2
  262. package/dist/lib/compliance-fixtures/canonical-storyboards.d.ts +2 -2
  263. package/dist/lib/core/AgentClient.d.mts +10 -2
  264. package/dist/lib/core/AgentClient.d.ts +10 -2
  265. package/dist/lib/core/AgentClient.js +0 -1
  266. package/dist/lib/core/AgentClient.mjs +0 -1
  267. package/dist/lib/core/SingleAgentClient.d.mts +45 -13
  268. package/dist/lib/core/SingleAgentClient.d.ts +45 -13
  269. package/dist/lib/core/SingleAgentClient.js +397 -99
  270. package/dist/lib/core/SingleAgentClient.mjs +406 -95
  271. package/dist/lib/core/TaskExecutor.d.mts +6 -0
  272. package/dist/lib/core/TaskExecutor.d.ts +6 -0
  273. package/dist/lib/core/TaskExecutor.js +66 -5
  274. package/dist/lib/core/TaskExecutor.mjs +71 -5
  275. package/dist/lib/core/account-resolution.d.mts +6 -0
  276. package/dist/lib/core/account-resolution.d.ts +6 -0
  277. package/dist/lib/core/buyer-account-registry.d.mts +6 -0
  278. package/dist/lib/core/buyer-account-registry.d.ts +6 -0
  279. package/dist/lib/core/buyer-account-registry.js +36 -17
  280. package/dist/lib/core/buyer-account-registry.mjs +36 -17
  281. package/dist/lib/core/postgres-webhook-registration-store.js +32 -5
  282. package/dist/lib/core/postgres-webhook-registration-store.mjs +32 -5
  283. package/dist/lib/core/redis-webhook-registration-store.js +23 -1
  284. package/dist/lib/core/redis-webhook-registration-store.mjs +23 -1
  285. package/dist/lib/core/webhook-registration.d.mts +7 -1
  286. package/dist/lib/core/webhook-registration.d.ts +7 -1
  287. package/dist/lib/core/webhook-registration.js +24 -2
  288. package/dist/lib/core/webhook-registration.mjs +23 -2
  289. package/dist/lib/errors/index.d.mts +2 -2
  290. package/dist/lib/errors/index.d.ts +2 -2
  291. package/dist/lib/errors/index.js +4 -2
  292. package/dist/lib/errors/index.mjs +4 -2
  293. package/dist/lib/identity-3.3/index.d.mts +10 -0
  294. package/dist/lib/identity-3.3/index.d.ts +10 -0
  295. package/dist/lib/identity-3.3/index.js +75 -0
  296. package/dist/lib/identity-3.3/index.mjs +46 -0
  297. package/dist/lib/identity-3.3/lifecycle.d.mts +113 -0
  298. package/dist/lib/identity-3.3/lifecycle.d.ts +113 -0
  299. package/dist/lib/identity-3.3/lifecycle.js +267 -0
  300. package/dist/lib/identity-3.3/lifecycle.mjs +240 -0
  301. package/dist/lib/identity-3.3/revocation.d.mts +50 -0
  302. package/dist/lib/identity-3.3/revocation.d.ts +50 -0
  303. package/dist/lib/identity-3.3/revocation.js +238 -0
  304. package/dist/lib/identity-3.3/revocation.mjs +216 -0
  305. package/dist/lib/identity-3.3/schemas.draft.d.mts +2472 -0
  306. package/dist/lib/identity-3.3/schemas.draft.d.ts +2472 -0
  307. package/dist/lib/identity-3.3/schemas.draft.js +1448 -0
  308. package/dist/lib/identity-3.3/schemas.draft.mjs +1428 -0
  309. package/dist/lib/identity-3.3/server.d.mts +34 -0
  310. package/dist/lib/identity-3.3/server.d.ts +34 -0
  311. package/dist/lib/identity-3.3/server.js +219 -0
  312. package/dist/lib/identity-3.3/server.mjs +194 -0
  313. package/dist/lib/identity-3.3/store.d.mts +24 -0
  314. package/dist/lib/identity-3.3/store.d.ts +24 -0
  315. package/dist/lib/identity-3.3/store.js +191 -0
  316. package/dist/lib/identity-3.3/store.mjs +169 -0
  317. package/dist/lib/identity-3.3/trust.d.mts +94 -0
  318. package/dist/lib/identity-3.3/trust.d.ts +94 -0
  319. package/dist/lib/identity-3.3/trust.js +278 -0
  320. package/dist/lib/identity-3.3/trust.mjs +239 -0
  321. package/dist/lib/identity-3.3/types.d.mts +127 -0
  322. package/dist/lib/identity-3.3/types.d.ts +127 -0
  323. package/dist/lib/identity-3.3/types.js +16 -0
  324. package/dist/lib/identity-3.3/types.mjs +0 -0
  325. package/dist/lib/identity-3.3/validation.d.mts +2 -0
  326. package/dist/lib/identity-3.3/validation.d.ts +2 -0
  327. package/dist/lib/identity-3.3/validation.js +125 -0
  328. package/dist/lib/identity-3.3/validation.mjs +91 -0
  329. package/dist/lib/index.d.mts +2 -2
  330. package/dist/lib/index.d.ts +2 -2
  331. package/dist/lib/negotiation/commercial-terms-semantics.d.mts +2 -1
  332. package/dist/lib/negotiation/commercial-terms-semantics.d.ts +2 -1
  333. package/dist/lib/negotiation/commercial-terms-semantics.js +11 -0
  334. package/dist/lib/negotiation/commercial-terms-semantics.mjs +11 -0
  335. package/dist/lib/reporting/azure/index.d.mts +5 -0
  336. package/dist/lib/reporting/azure/index.d.ts +5 -0
  337. package/dist/lib/reporting/azure/index.js +26 -7
  338. package/dist/lib/reporting/azure/index.mjs +26 -7
  339. package/dist/lib/reporting/bigquery/index.d.mts +139 -20
  340. package/dist/lib/reporting/bigquery/index.d.ts +139 -20
  341. package/dist/lib/reporting/bigquery/index.js +345 -99
  342. package/dist/lib/reporting/bigquery/index.mjs +343 -98
  343. package/dist/lib/reporting/gcs/adapter.d.mts +8 -1
  344. package/dist/lib/reporting/gcs/adapter.d.ts +8 -1
  345. package/dist/lib/reporting/gcs/errors.d.mts +6 -0
  346. package/dist/lib/reporting/gcs/errors.d.ts +6 -0
  347. package/dist/lib/reporting/gcs/fence.d.mts +5 -0
  348. package/dist/lib/reporting/gcs/fence.d.ts +5 -0
  349. package/dist/lib/reporting/gcs/index.d.mts +9 -0
  350. package/dist/lib/reporting/gcs/index.d.ts +9 -0
  351. package/dist/lib/reporting/gcs/reader.d.mts +27 -3
  352. package/dist/lib/reporting/gcs/reader.d.ts +27 -3
  353. package/dist/lib/reporting/gcs/row-provider.d.mts +7 -0
  354. package/dist/lib/reporting/gcs/row-provider.d.ts +7 -0
  355. package/dist/lib/reporting/gcs/row-provider.js +34 -14
  356. package/dist/lib/reporting/gcs/row-provider.mjs +34 -14
  357. package/dist/lib/reporting/ledger/change-feed.d.mts +31 -3
  358. package/dist/lib/reporting/ledger/change-feed.d.ts +31 -3
  359. package/dist/lib/reporting/ledger/change-feed.js +8 -2
  360. package/dist/lib/reporting/ledger/change-feed.mjs +8 -2
  361. package/dist/lib/reporting/ledger/handler.js +15 -4
  362. package/dist/lib/reporting/ledger/handler.mjs +18 -5
  363. package/dist/lib/reporting/ledger/health.d.mts +6 -0
  364. package/dist/lib/reporting/ledger/health.d.ts +6 -0
  365. package/dist/lib/reporting/ledger/health.js +25 -0
  366. package/dist/lib/reporting/ledger/health.mjs +23 -0
  367. package/dist/lib/reporting/ledger/index.d.mts +12 -0
  368. package/dist/lib/reporting/ledger/index.d.ts +12 -0
  369. package/dist/lib/reporting/ledger/index.js +2 -0
  370. package/dist/lib/reporting/ledger/index.mjs +1 -0
  371. package/dist/lib/reporting/ledger/managed-postgres.d.mts +31 -0
  372. package/dist/lib/reporting/ledger/managed-postgres.d.ts +31 -0
  373. package/dist/lib/reporting/ledger/managed-postgres.js +152 -7
  374. package/dist/lib/reporting/ledger/managed-postgres.mjs +155 -8
  375. package/dist/lib/reporting/ledger/managed-router.d.mts +148 -0
  376. package/dist/lib/reporting/ledger/managed-router.d.ts +148 -0
  377. package/dist/lib/reporting/ledger/managed-router.js +280 -0
  378. package/dist/lib/reporting/ledger/managed-router.mjs +258 -0
  379. package/dist/lib/reporting/ledger/managed.d.mts +190 -21
  380. package/dist/lib/reporting/ledger/managed.d.ts +190 -21
  381. package/dist/lib/reporting/ledger/managed.js +82 -3
  382. package/dist/lib/reporting/ledger/managed.mjs +78 -3
  383. package/dist/lib/reporting/ledger/notification-activity.d.mts +65 -3
  384. package/dist/lib/reporting/ledger/notification-activity.d.ts +65 -3
  385. package/dist/lib/reporting/ledger/object-writes.d.mts +64 -5
  386. package/dist/lib/reporting/ledger/object-writes.d.ts +64 -5
  387. package/dist/lib/reporting/ledger/postgres.d.mts +118 -12
  388. package/dist/lib/reporting/ledger/postgres.d.ts +118 -12
  389. package/dist/lib/reporting/ledger/postgres.js +251 -61
  390. package/dist/lib/reporting/ledger/postgres.mjs +254 -62
  391. package/dist/lib/reporting/ledger/row-encoding.d.mts +92 -6
  392. package/dist/lib/reporting/ledger/row-encoding.d.ts +92 -6
  393. package/dist/lib/reporting/ledger/row-encoding.js +8 -4
  394. package/dist/lib/reporting/ledger/row-encoding.mjs +6 -3
  395. package/dist/lib/reporting/ledger/row-storage-errors.d.mts +11 -1
  396. package/dist/lib/reporting/ledger/row-storage-errors.d.ts +11 -1
  397. package/dist/lib/reporting/ledger/row-storage-migration.d.mts +19 -1
  398. package/dist/lib/reporting/ledger/row-storage-migration.d.ts +19 -1
  399. package/dist/lib/reporting/ledger/row-storage-migration.js +149 -18
  400. package/dist/lib/reporting/ledger/row-storage-migration.mjs +149 -18
  401. package/dist/lib/reporting/ledger/row-storage-object.d.mts +103 -12
  402. package/dist/lib/reporting/ledger/row-storage-object.d.ts +103 -12
  403. package/dist/lib/reporting/ledger/row-storage-object.js +106 -31
  404. package/dist/lib/reporting/ledger/row-storage-object.mjs +104 -31
  405. package/dist/lib/reporting/ledger/row-storage.d.mts +89 -20
  406. package/dist/lib/reporting/ledger/row-storage.d.ts +89 -20
  407. package/dist/lib/reporting/ledger/row-storage.js +130 -66
  408. package/dist/lib/reporting/ledger/row-storage.mjs +133 -67
  409. package/dist/lib/reporting/ledger/schedule.d.mts +13 -0
  410. package/dist/lib/reporting/ledger/schedule.d.ts +13 -0
  411. package/dist/lib/reporting/ledger/schedule.js +24 -0
  412. package/dist/lib/reporting/ledger/schedule.mjs +23 -0
  413. package/dist/lib/reporting/ledger/types.d.mts +38 -2
  414. package/dist/lib/reporting/ledger/types.d.ts +38 -2
  415. package/dist/lib/reporting/s3/index.d.mts +5 -0
  416. package/dist/lib/reporting/s3/index.d.ts +5 -0
  417. package/dist/lib/reporting/s3/index.js +37 -14
  418. package/dist/lib/reporting/s3/index.mjs +37 -14
  419. package/dist/lib/reporting/service/index.d.mts +10 -0
  420. package/dist/lib/reporting/service/index.d.ts +10 -0
  421. package/dist/lib/reporting/service/maintenance.d.mts +41 -3
  422. package/dist/lib/reporting/service/maintenance.d.ts +41 -3
  423. package/dist/lib/reporting/service/maintenance.js +26 -4
  424. package/dist/lib/reporting/service/maintenance.mjs +26 -4
  425. package/dist/lib/schemas-data/3.2/a2ui/bound-value.json +1 -1
  426. package/dist/lib/schemas-data/3.2/a2ui/component.json +1 -1
  427. package/dist/lib/schemas-data/3.2/a2ui/si-catalog.json +25 -25
  428. package/dist/lib/schemas-data/3.2/a2ui/surface.json +2 -2
  429. package/dist/lib/schemas-data/3.2/a2ui/user-action.json +1 -1
  430. package/dist/lib/schemas-data/3.2/aao/agent-publishers.json +1 -1
  431. package/dist/lib/schemas-data/3.2/account/get-account-financials-request.json +6 -6
  432. package/dist/lib/schemas-data/3.2/account/get-account-financials-response.json +12 -12
  433. package/dist/lib/schemas-data/3.2/account/list-account-changes-request.json +11 -12
  434. package/dist/lib/schemas-data/3.2/account/list-account-changes-response.json +7 -7
  435. package/dist/lib/schemas-data/3.2/account/list-accounts-request.json +6 -6
  436. package/dist/lib/schemas-data/3.2/account/list-accounts-response.json +8 -8
  437. package/dist/lib/schemas-data/3.2/account/report-usage-request.json +6 -6
  438. package/dist/lib/schemas-data/3.2/account/report-usage-response.json +6 -6
  439. package/dist/lib/schemas-data/3.2/account/sync-accounts-request.json +16 -16
  440. package/dist/lib/schemas-data/3.2/account/sync-accounts-response.json +21 -21
  441. package/dist/lib/schemas-data/3.2/account/sync-governance-request.json +5 -5
  442. package/dist/lib/schemas-data/3.2/account/sync-governance-response.json +10 -10
  443. package/dist/lib/schemas-data/3.2/adagents.json +30 -30
  444. package/dist/lib/schemas-data/3.2/brand/acquire-rights-request.json +12 -12
  445. package/dist/lib/schemas-data/3.2/brand/acquire-rights-response.json +16 -16
  446. package/dist/lib/schemas-data/3.2/brand/creative-approval-request.json +5 -5
  447. package/dist/lib/schemas-data/3.2/brand/creative-approval-response.json +12 -12
  448. package/dist/lib/schemas-data/3.2/brand/get-brand-identity-request.json +4 -4
  449. package/dist/lib/schemas-data/3.2/brand/get-brand-identity-response.json +10 -10
  450. package/dist/lib/schemas-data/3.2/brand/get-rights-request.json +8 -8
  451. package/dist/lib/schemas-data/3.2/brand/get-rights-response.json +11 -11
  452. package/dist/lib/schemas-data/3.2/brand/revocation-notification.json +4 -4
  453. package/dist/lib/schemas-data/3.2/brand/rights-pricing-option.json +5 -5
  454. package/dist/lib/schemas-data/3.2/brand/rights-terms.json +3 -3
  455. package/dist/lib/schemas-data/3.2/brand/search-brands-request.json +6 -6
  456. package/dist/lib/schemas-data/3.2/brand/search-brands-response.json +11 -11
  457. package/dist/lib/schemas-data/3.2/brand/update-rights-request.json +6 -6
  458. package/dist/lib/schemas-data/3.2/brand/update-rights-response.json +11 -11
  459. package/dist/lib/schemas-data/3.2/brand/verification-status.json +1 -1
  460. package/dist/lib/schemas-data/3.2/brand/verify-brand-claim-request.json +3 -3
  461. package/dist/lib/schemas-data/3.2/brand/verify-brand-claim-response.json +13 -13
  462. package/dist/lib/schemas-data/3.2/brand/verify-brand-claims-request.json +3 -3
  463. package/dist/lib/schemas-data/3.2/brand/verify-brand-claims-response.json +13 -13
  464. package/dist/lib/schemas-data/3.2/brand.json +23 -23
  465. package/dist/lib/schemas-data/3.2/bundled.schemas.br +0 -0
  466. package/dist/lib/schemas-data/3.2/collection/base-collection-source.json +3 -3
  467. package/dist/lib/schemas-data/3.2/collection/collection-list-changed-webhook.json +2 -2
  468. package/dist/lib/schemas-data/3.2/collection/collection-list-filters.json +7 -7
  469. package/dist/lib/schemas-data/3.2/collection/collection-list.json +5 -5
  470. package/dist/lib/schemas-data/3.2/collection/create-collection-list-request.json +8 -8
  471. package/dist/lib/schemas-data/3.2/collection/create-collection-list-response.json +6 -6
  472. package/dist/lib/schemas-data/3.2/collection/delete-collection-list-request.json +5 -5
  473. package/dist/lib/schemas-data/3.2/collection/delete-collection-list-response.json +5 -5
  474. package/dist/lib/schemas-data/3.2/collection/get-collection-list-request.json +5 -5
  475. package/dist/lib/schemas-data/3.2/collection/get-collection-list-response.json +12 -12
  476. package/dist/lib/schemas-data/3.2/collection/list-collection-lists-request.json +6 -6
  477. package/dist/lib/schemas-data/3.2/collection/list-collection-lists-response.json +7 -7
  478. package/dist/lib/schemas-data/3.2/collection/update-collection-list-request.json +8 -8
  479. package/dist/lib/schemas-data/3.2/collection/update-collection-list-response.json +6 -6
  480. package/dist/lib/schemas-data/3.2/content-standards/artifact-webhook-payload.json +3 -3
  481. package/dist/lib/schemas-data/3.2/content-standards/artifact.json +8 -8
  482. package/dist/lib/schemas-data/3.2/content-standards/calibrate-content-request.json +5 -5
  483. package/dist/lib/schemas-data/3.2/content-standards/calibrate-content-response.json +10 -10
  484. package/dist/lib/schemas-data/3.2/content-standards/content-standards.json +7 -7
  485. package/dist/lib/schemas-data/3.2/content-standards/create-content-standards-request.json +8 -8
  486. package/dist/lib/schemas-data/3.2/content-standards/create-content-standards-response.json +8 -8
  487. package/dist/lib/schemas-data/3.2/content-standards/get-content-standards-request.json +4 -4
  488. package/dist/lib/schemas-data/3.2/content-standards/get-content-standards-response.json +9 -9
  489. package/dist/lib/schemas-data/3.2/content-standards/get-media-buy-artifacts-request.json +5 -5
  490. package/dist/lib/schemas-data/3.2/content-standards/get-media-buy-artifacts-response.json +10 -10
  491. package/dist/lib/schemas-data/3.2/content-standards/list-content-standards-request.json +6 -6
  492. package/dist/lib/schemas-data/3.2/content-standards/list-content-standards-response.json +10 -10
  493. package/dist/lib/schemas-data/3.2/content-standards/update-content-standards-request.json +8 -8
  494. package/dist/lib/schemas-data/3.2/content-standards/update-content-standards-response.json +8 -8
  495. package/dist/lib/schemas-data/3.2/content-standards/validate-content-delivery-request.json +5 -5
  496. package/dist/lib/schemas-data/3.2/content-standards/validate-content-delivery-response.json +10 -10
  497. package/dist/lib/schemas-data/3.2/core/acceptance-policy-profile-ids.json +1 -1
  498. package/dist/lib/schemas-data/3.2/core/account-authorization.json +1 -1
  499. package/dist/lib/schemas-data/3.2/core/account-change-recorded-webhook.json +2 -2
  500. package/dist/lib/schemas-data/3.2/core/account-change.json +2 -2
  501. package/dist/lib/schemas-data/3.2/core/account-identity-change-preview.json +4 -4
  502. package/dist/lib/schemas-data/3.2/core/account-identity-change.json +3 -3
  503. package/dist/lib/schemas-data/3.2/core/account-ref.json +3 -3
  504. package/dist/lib/schemas-data/3.2/core/account-status-changed-webhook.json +4 -4
  505. package/dist/lib/schemas-data/3.2/core/account-timezone-capability.json +1 -1
  506. package/dist/lib/schemas-data/3.2/core/account-with-authorization.json +3 -3
  507. package/dist/lib/schemas-data/3.2/core/account.json +14 -14
  508. package/dist/lib/schemas-data/3.2/core/activation-key.json +1 -1
  509. package/dist/lib/schemas-data/3.2/core/ad-inventory-config.json +1 -1
  510. package/dist/lib/schemas-data/3.2/core/agent-encryption-key.json +1 -1
  511. package/dist/lib/schemas-data/3.2/core/agent-notification-config-state.json +4 -4
  512. package/dist/lib/schemas-data/3.2/core/agent-notification-config.json +4 -4
  513. package/dist/lib/schemas-data/3.2/core/agent-reporting-destination-state.json +4 -4
  514. package/dist/lib/schemas-data/3.2/core/agent-reporting-destination.json +8 -8
  515. package/dist/lib/schemas-data/3.2/core/agent-signing-key.json +1 -1
  516. package/dist/lib/schemas-data/3.2/core/agent-webhook-challenge.json +1 -1
  517. package/dist/lib/schemas-data/3.2/core/app-item.json +4 -4
  518. package/dist/lib/schemas-data/3.2/core/applicable-package-id.json +1 -1
  519. package/dist/lib/schemas-data/3.2/core/asset-group-vocabulary.json +1 -1
  520. package/dist/lib/schemas-data/3.2/core/assets/asset-union.json +22 -22
  521. package/dist/lib/schemas-data/3.2/core/assets/audio-asset.json +3 -3
  522. package/dist/lib/schemas-data/3.2/core/assets/brief-asset.json +2 -2
  523. package/dist/lib/schemas-data/3.2/core/assets/card-asset.json +6 -6
  524. package/dist/lib/schemas-data/3.2/core/assets/catalog-asset.json +2 -2
  525. package/dist/lib/schemas-data/3.2/core/assets/css-asset.json +2 -2
  526. package/dist/lib/schemas-data/3.2/core/assets/daast-asset.json +6 -6
  527. package/dist/lib/schemas-data/3.2/core/assets/daast-tracker-asset.json +5 -5
  528. package/dist/lib/schemas-data/3.2/core/assets/display-tag-asset.json +12 -12
  529. package/dist/lib/schemas-data/3.2/core/assets/html-asset.json +2 -2
  530. package/dist/lib/schemas-data/3.2/core/assets/image-asset.json +2 -2
  531. package/dist/lib/schemas-data/3.2/core/assets/javascript-asset.json +3 -3
  532. package/dist/lib/schemas-data/3.2/core/assets/markdown-asset.json +2 -2
  533. package/dist/lib/schemas-data/3.2/core/assets/pixel-tracker-asset.json +5 -5
  534. package/dist/lib/schemas-data/3.2/core/assets/published-post-asset.json +2 -2
  535. package/dist/lib/schemas-data/3.2/core/assets/text-asset.json +2 -2
  536. package/dist/lib/schemas-data/3.2/core/assets/url-asset.json +5 -5
  537. package/dist/lib/schemas-data/3.2/core/assets/vast-asset.json +6 -6
  538. package/dist/lib/schemas-data/3.2/core/assets/vast-tracker-asset.json +5 -5
  539. package/dist/lib/schemas-data/3.2/core/assets/video-asset.json +7 -7
  540. package/dist/lib/schemas-data/3.2/core/assets/webhook-asset.json +7 -7
  541. package/dist/lib/schemas-data/3.2/core/assets/zip-asset.json +2 -2
  542. package/dist/lib/schemas-data/3.2/core/async-response-data.json +43 -43
  543. package/dist/lib/schemas-data/3.2/core/async-response-refs/creative/get-creative-features-async-response-submitted.json +3 -3
  544. package/dist/lib/schemas-data/3.2/core/async-response-refs/creative/sync-creatives-async-response-input-required.json +3 -3
  545. package/dist/lib/schemas-data/3.2/core/async-response-refs/creative/sync-creatives-async-response-submitted.json +4 -4
  546. package/dist/lib/schemas-data/3.2/core/async-response-refs/creative/sync-creatives-async-response-working.json +3 -3
  547. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/accept-proposal-async-response-input-required.json +2 -2
  548. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/accept-proposal-async-response-submitted.json +2 -2
  549. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/accept-proposal-async-response-working.json +2 -2
  550. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/build-creative-async-response-input-required.json +4 -4
  551. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/build-creative-async-response-submitted.json +4 -4
  552. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/build-creative-async-response-working.json +3 -3
  553. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/buy-products-async-response-input-required.json +2 -2
  554. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/buy-products-async-response-submitted.json +2 -2
  555. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/buy-products-async-response-working.json +2 -2
  556. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/control-media-buy-async-response-input-required.json +2 -2
  557. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/control-media-buy-async-response-submitted.json +2 -2
  558. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/control-media-buy-async-response-working.json +2 -2
  559. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/create-media-buy-async-response-input-required.json +4 -4
  560. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/create-media-buy-async-response-submitted.json +4 -4
  561. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/create-media-buy-async-response-working.json +3 -3
  562. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/decline-proposals-async-response-input-required.json +2 -2
  563. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/decline-proposals-async-response-submitted.json +2 -2
  564. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/decline-proposals-async-response-working.json +2 -2
  565. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/get-products-async-response-input-required.json +4 -4
  566. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/get-products-async-response-submitted.json +4 -4
  567. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/get-products-async-response-working.json +3 -3
  568. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/refine-proposals-async-response-input-required.json +2 -2
  569. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/refine-proposals-async-response-submitted.json +2 -2
  570. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/refine-proposals-async-response-working.json +2 -2
  571. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/request-proposals-async-response-input-required.json +2 -2
  572. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/request-proposals-async-response-submitted.json +2 -2
  573. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/request-proposals-async-response-working.json +2 -2
  574. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  575. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/sync-catalogs-async-response-submitted.json +4 -4
  576. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/sync-catalogs-async-response-working.json +3 -3
  577. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/update-media-buy-async-response-input-required.json +3 -3
  578. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/update-media-buy-async-response-submitted.json +4 -4
  579. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/update-media-buy-async-response-working.json +3 -3
  580. package/dist/lib/schemas-data/3.2/core/async-response-refs/signals/get-signals-async-response-submitted.json +4 -4
  581. package/dist/lib/schemas-data/3.2/core/async-response-refs/signals/get-signals-async-response-working.json +3 -3
  582. package/dist/lib/schemas-data/3.2/core/attestation-capabilities.json +5 -5
  583. package/dist/lib/schemas-data/3.2/core/attestation-evaluation.json +2 -2
  584. package/dist/lib/schemas-data/3.2/core/attestation-issuer.json +5 -5
  585. package/dist/lib/schemas-data/3.2/core/attestation-reference.json +7 -7
  586. package/dist/lib/schemas-data/3.2/core/attestation-subject.json +5 -5
  587. package/dist/lib/schemas-data/3.2/core/attribution-window.json +4 -4
  588. package/dist/lib/schemas-data/3.2/core/audience-activation-method.json +6 -6
  589. package/dist/lib/schemas-data/3.2/core/audience-characteristic.json +1 -1
  590. package/dist/lib/schemas-data/3.2/core/audience-evidence-pin.json +2 -2
  591. package/dist/lib/schemas-data/3.2/core/audience-evidence-requirements.json +10 -10
  592. package/dist/lib/schemas-data/3.2/core/audience-evidence-selection.json +5 -5
  593. package/dist/lib/schemas-data/3.2/core/audience-evidence.json +10 -10
  594. package/dist/lib/schemas-data/3.2/core/audience-member.json +3 -3
  595. package/dist/lib/schemas-data/3.2/core/audience-selector.json +7 -7
  596. package/dist/lib/schemas-data/3.2/core/audience-source.json +3 -3
  597. package/dist/lib/schemas-data/3.2/core/authorized-agent-base.json +3 -3
  598. package/dist/lib/schemas-data/3.2/core/bidding-policy-capability.json +1 -1
  599. package/dist/lib/schemas-data/3.2/core/bidding-policy.json +1 -1
  600. package/dist/lib/schemas-data/3.2/core/brand-id.json +1 -1
  601. package/dist/lib/schemas-data/3.2/core/brand-key.json +2 -2
  602. package/dist/lib/schemas-data/3.2/core/brand-ref.json +3 -3
  603. package/dist/lib/schemas-data/3.2/core/brand-response-authorization-result.json +1 -1
  604. package/dist/lib/schemas-data/3.2/core/budget-allocation.json +2 -2
  605. package/dist/lib/schemas-data/3.2/core/budget-range.json +1 -1
  606. package/dist/lib/schemas-data/3.2/core/business-entity.json +2 -2
  607. package/dist/lib/schemas-data/3.2/core/cancellation-policy.json +2 -2
  608. package/dist/lib/schemas-data/3.2/core/canonical-account-ref.json +3 -3
  609. package/dist/lib/schemas-data/3.2/core/canonical-audience-evidence-selection.json +3 -3
  610. package/dist/lib/schemas-data/3.2/core/canonical-audience-evidence.json +8 -8
  611. package/dist/lib/schemas-data/3.2/core/canonical-budget-allocation.json +2 -2
  612. package/dist/lib/schemas-data/3.2/core/canonical-delivery-forecast.json +7 -7
  613. package/dist/lib/schemas-data/3.2/core/canonical-forecast-point.json +12 -12
  614. package/dist/lib/schemas-data/3.2/core/canonical-forecast-vendor-metric-value.json +5 -5
  615. package/dist/lib/schemas-data/3.2/core/canonical-format-kind.json +1 -1
  616. package/dist/lib/schemas-data/3.2/core/canonical-format-option.json +6 -6
  617. package/dist/lib/schemas-data/3.2/core/canonical-measurement-terms.json +3 -3
  618. package/dist/lib/schemas-data/3.2/core/canonical-media-buy-action-fields.json +6 -6
  619. package/dist/lib/schemas-data/3.2/core/canonical-media-buy-action.json +4 -4
  620. package/dist/lib/schemas-data/3.2/core/canonical-media-buy-features.json +2 -2
  621. package/dist/lib/schemas-data/3.2/core/canonical-metric-qualifier.json +6 -6
  622. package/dist/lib/schemas-data/3.2/core/canonical-optimization-goal.json +9 -9
  623. package/dist/lib/schemas-data/3.2/core/canonical-performance-standard.json +4 -4
  624. package/dist/lib/schemas-data/3.2/core/canonical-placement.json +9 -9
  625. package/dist/lib/schemas-data/3.2/core/canonical-pricing-option.json +5 -5
  626. package/dist/lib/schemas-data/3.2/core/canonical-product-action.json +6 -6
  627. package/dist/lib/schemas-data/3.2/core/canonical-product.json +31 -31
  628. package/dist/lib/schemas-data/3.2/core/canonical-projection-ref.json +3 -3
  629. package/dist/lib/schemas-data/3.2/core/canonical-projection-slot-override.json +1 -1
  630. package/dist/lib/schemas-data/3.2/core/canonical-proposal.json +5 -5
  631. package/dist/lib/schemas-data/3.2/core/canonical-reporting-capabilities.json +11 -11
  632. package/dist/lib/schemas-data/3.2/core/canonical-reporting-commitment.json +6 -6
  633. package/dist/lib/schemas-data/3.2/core/canvas-constraint.json +1 -1
  634. package/dist/lib/schemas-data/3.2/core/capabilities-changed-webhook.json +2 -2
  635. package/dist/lib/schemas-data/3.2/core/catalog-field-mapping.json +2 -2
  636. package/dist/lib/schemas-data/3.2/core/catalog-item-availability-error.json +3 -3
  637. package/dist/lib/schemas-data/3.2/core/catalog-item-availability-ref.json +1 -1
  638. package/dist/lib/schemas-data/3.2/core/catalog-item-availability-state.json +4 -4
  639. package/dist/lib/schemas-data/3.2/core/catalog-item-availability-update-result.json +4 -4
  640. package/dist/lib/schemas-data/3.2/core/catalog-item-availability-update.json +2 -2
  641. package/dist/lib/schemas-data/3.2/core/catalog-item-delivery-metrics.json +3 -3
  642. package/dist/lib/schemas-data/3.2/core/catalog-item-reference-not-found-error.json +1 -1
  643. package/dist/lib/schemas-data/3.2/core/catalog-selection.json +7 -7
  644. package/dist/lib/schemas-data/3.2/core/catalog.json +7 -7
  645. package/dist/lib/schemas-data/3.2/core/catchment.json +5 -5
  646. package/dist/lib/schemas-data/3.2/core/collection-delivery-metrics.json +3 -3
  647. package/dist/lib/schemas-data/3.2/core/collection-distribution.json +3 -3
  648. package/dist/lib/schemas-data/3.2/core/collection-list-ref.json +1 -1
  649. package/dist/lib/schemas-data/3.2/core/collection-property-delivery-metrics.json +5 -5
  650. package/dist/lib/schemas-data/3.2/core/collection-ref.json +1 -1
  651. package/dist/lib/schemas-data/3.2/core/collection-selection.json +4 -4
  652. package/dist/lib/schemas-data/3.2/core/collection-selector.json +1 -1
  653. package/dist/lib/schemas-data/3.2/core/collection.json +13 -13
  654. package/dist/lib/schemas-data/3.2/core/committed-metric.json +14 -14
  655. package/dist/lib/schemas-data/3.2/core/compact-task-input-required.json +4 -4
  656. package/dist/lib/schemas-data/3.2/core/compact-task-submitted.json +12 -4
  657. package/dist/lib/schemas-data/3.2/core/compact-task-working.json +3 -3
  658. package/dist/lib/schemas-data/3.2/core/content-rating.json +2 -2
  659. package/dist/lib/schemas-data/3.2/core/context.json +1 -1
  660. package/dist/lib/schemas-data/3.2/core/creative-approval-scope.json +3 -3
  661. package/dist/lib/schemas-data/3.2/core/creative-asset.json +13 -13
  662. package/dist/lib/schemas-data/3.2/core/creative-assets.json +3 -3
  663. package/dist/lib/schemas-data/3.2/core/creative-assignment.json +2 -2
  664. package/dist/lib/schemas-data/3.2/core/creative-brief.json +4 -4
  665. package/dist/lib/schemas-data/3.2/core/creative-consumption.json +1 -1
  666. package/dist/lib/schemas-data/3.2/core/creative-delivery-metrics.json +2 -2
  667. package/dist/lib/schemas-data/3.2/core/creative-filters.json +8 -8
  668. package/dist/lib/schemas-data/3.2/core/creative-item.json +1 -1
  669. package/dist/lib/schemas-data/3.2/core/creative-locale-policy.json +2 -2
  670. package/dist/lib/schemas-data/3.2/core/creative-localization-readback.json +6 -6
  671. package/dist/lib/schemas-data/3.2/core/creative-localization.json +6 -6
  672. package/dist/lib/schemas-data/3.2/core/creative-manifest.json +13 -13
  673. package/dist/lib/schemas-data/3.2/core/creative-operation-format-declaration.json +7 -7
  674. package/dist/lib/schemas-data/3.2/core/creative-policy.json +3 -3
  675. package/dist/lib/schemas-data/3.2/core/creative-representation-set.json +4 -4
  676. package/dist/lib/schemas-data/3.2/core/creative-representation.json +2 -2
  677. package/dist/lib/schemas-data/3.2/core/creative-revision-id.json +1 -1
  678. package/dist/lib/schemas-data/3.2/core/creative-variable.json +1 -1
  679. package/dist/lib/schemas-data/3.2/core/creative-variant.json +6 -6
  680. package/dist/lib/schemas-data/3.2/core/daast-tracker-constraints.json +2 -2
  681. package/dist/lib/schemas-data/3.2/core/data-provider-signal-selector.json +1 -1
  682. package/dist/lib/schemas-data/3.2/core/date-range.json +1 -1
  683. package/dist/lib/schemas-data/3.2/core/datetime-range.json +1 -1
  684. package/dist/lib/schemas-data/3.2/core/daypart-target.json +3 -3
  685. package/dist/lib/schemas-data/3.2/core/deadline-policy.json +1 -1
  686. package/dist/lib/schemas-data/3.2/core/delivery-breakdown-controls.json +3 -3
  687. package/dist/lib/schemas-data/3.2/core/delivery-forecast.json +7 -7
  688. package/dist/lib/schemas-data/3.2/core/delivery-metric-aggregate.json +14 -14
  689. package/dist/lib/schemas-data/3.2/core/delivery-metrics.json +11 -11
  690. package/dist/lib/schemas-data/3.2/core/delivery-provider.json +1 -1
  691. package/dist/lib/schemas-data/3.2/core/delivery-recipient.json +2 -2
  692. package/dist/lib/schemas-data/3.2/core/demographic-age-range.json +1 -1
  693. package/dist/lib/schemas-data/3.2/core/demographic-predicate.json +2 -2
  694. package/dist/lib/schemas-data/3.2/core/demographic-reporting-capability.json +4 -4
  695. package/dist/lib/schemas-data/3.2/core/demographic-targeting-capability.json +4 -4
  696. package/dist/lib/schemas-data/3.2/core/demographic-targeting-intent.json +4 -4
  697. package/dist/lib/schemas-data/3.2/core/demographic-targeting-resolution.json +10 -10
  698. package/dist/lib/schemas-data/3.2/core/deployment.json +3 -3
  699. package/dist/lib/schemas-data/3.2/core/destination-item.json +4 -4
  700. package/dist/lib/schemas-data/3.2/core/destination.json +1 -1
  701. package/dist/lib/schemas-data/3.2/core/diagnostic-issue.json +1 -1
  702. package/dist/lib/schemas-data/3.2/core/downstream-connection-requirement.json +1 -1
  703. package/dist/lib/schemas-data/3.2/core/duration.json +1 -1
  704. package/dist/lib/schemas-data/3.2/core/education-item.json +4 -4
  705. package/dist/lib/schemas-data/3.2/core/error.json +1 -1
  706. package/dist/lib/schemas-data/3.2/core/evaluator-spec.json +5 -5
  707. package/dist/lib/schemas-data/3.2/core/event-custom-data.json +2 -2
  708. package/dist/lib/schemas-data/3.2/core/event-source-health.json +3 -3
  709. package/dist/lib/schemas-data/3.2/core/event-surface.json +2 -2
  710. package/dist/lib/schemas-data/3.2/core/event.json +8 -8
  711. package/dist/lib/schemas-data/3.2/core/experimental-feature-id.json +1 -1
  712. package/dist/lib/schemas-data/3.2/core/ext.json +1 -1
  713. package/dist/lib/schemas-data/3.2/core/feature-requirement.json +1 -1
  714. package/dist/lib/schemas-data/3.2/core/flight-item.json +4 -4
  715. package/dist/lib/schemas-data/3.2/core/forecast-dimension-audience.json +2 -2
  716. package/dist/lib/schemas-data/3.2/core/forecast-dimension-device-platform.json +2 -2
  717. package/dist/lib/schemas-data/3.2/core/forecast-dimension-device-type.json +2 -2
  718. package/dist/lib/schemas-data/3.2/core/forecast-dimension-geo.json +5 -5
  719. package/dist/lib/schemas-data/3.2/core/forecast-dimension-placement.json +2 -2
  720. package/dist/lib/schemas-data/3.2/core/forecast-dimension-signal.json +2 -2
  721. package/dist/lib/schemas-data/3.2/core/forecast-dimension-time.json +1 -1
  722. package/dist/lib/schemas-data/3.2/core/forecast-point-dimensions.json +8 -8
  723. package/dist/lib/schemas-data/3.2/core/forecast-point.json +28 -28
  724. package/dist/lib/schemas-data/3.2/core/forecast-range.json +1 -1
  725. package/dist/lib/schemas-data/3.2/core/forecast-rate-range.json +2 -2
  726. package/dist/lib/schemas-data/3.2/core/forecast-vendor-metric-value.json +7 -7
  727. package/dist/lib/schemas-data/3.2/core/format-id.json +1 -1
  728. package/dist/lib/schemas-data/3.2/core/format-option-ref.json +1 -1
  729. package/dist/lib/schemas-data/3.2/core/format-shape-vocabulary.json +1 -1
  730. package/dist/lib/schemas-data/3.2/core/format.json +45 -45
  731. package/dist/lib/schemas-data/3.2/core/frequency-cap-constraints.json +8 -8
  732. package/dist/lib/schemas-data/3.2/core/frequency-cap-duration-unit.json +1 -1
  733. package/dist/lib/schemas-data/3.2/core/frequency-cap-impression-constraints.json +2 -2
  734. package/dist/lib/schemas-data/3.2/core/frequency-cap-interval-constraints.json +3 -3
  735. package/dist/lib/schemas-data/3.2/core/frequency-cap-requirements.json +6 -6
  736. package/dist/lib/schemas-data/3.2/core/frequency-cap.json +4 -4
  737. package/dist/lib/schemas-data/3.2/core/generation-credential.json +3 -3
  738. package/dist/lib/schemas-data/3.2/core/geo-breakdown-support.json +3 -3
  739. package/dist/lib/schemas-data/3.2/core/geo-delivery-metrics.json +6 -6
  740. package/dist/lib/schemas-data/3.2/core/geo-metro.json +2 -2
  741. package/dist/lib/schemas-data/3.2/core/geo-place-area.json +4 -4
  742. package/dist/lib/schemas-data/3.2/core/geo-place-catalog-capability.json +2 -2
  743. package/dist/lib/schemas-data/3.2/core/geo-place-catalog-entry.json +3 -3
  744. package/dist/lib/schemas-data/3.2/core/geo-place-requirement.json +3 -3
  745. package/dist/lib/schemas-data/3.2/core/geo-place-resolver.json +1 -1
  746. package/dist/lib/schemas-data/3.2/core/geo-place-support.json +3 -3
  747. package/dist/lib/schemas-data/3.2/core/geo-place-system.json +1 -1
  748. package/dist/lib/schemas-data/3.2/core/geo-place-type.json +1 -1
  749. package/dist/lib/schemas-data/3.2/core/geo-region-requirement.json +1 -1
  750. package/dist/lib/schemas-data/3.2/core/geo-region-support.json +2 -2
  751. package/dist/lib/schemas-data/3.2/core/get-geo-place-resolution-request.json +3 -3
  752. package/dist/lib/schemas-data/3.2/core/get-geo-place-resolution-response.json +4 -4
  753. package/dist/lib/schemas-data/3.2/core/hotel-item.json +4 -4
  754. package/dist/lib/schemas-data/3.2/core/iana-timezone.json +1 -1
  755. package/dist/lib/schemas-data/3.2/core/identifier.json +2 -2
  756. package/dist/lib/schemas-data/3.2/core/impairment.json +3 -3
  757. package/dist/lib/schemas-data/3.2/core/indicator-bearing.json +4 -4
  758. package/dist/lib/schemas-data/3.2/core/indicator-scope.json +1 -1
  759. package/dist/lib/schemas-data/3.2/core/indicator.json +4 -4
  760. package/dist/lib/schemas-data/3.2/core/indicators-changed-webhook.json +3 -3
  761. package/dist/lib/schemas-data/3.2/core/industry-identifier.json +2 -2
  762. package/dist/lib/schemas-data/3.2/core/insertion-order.json +1 -1
  763. package/dist/lib/schemas-data/3.2/core/installment-deadlines.json +2 -2
  764. package/dist/lib/schemas-data/3.2/core/installment-delivery-metrics.json +3 -3
  765. package/dist/lib/schemas-data/3.2/core/installment-property-delivery-metrics.json +5 -5
  766. package/dist/lib/schemas-data/3.2/core/installment-ref.json +2 -2
  767. package/dist/lib/schemas-data/3.2/core/installment.json +10 -10
  768. package/dist/lib/schemas-data/3.2/core/inventory-list-application.json +1 -1
  769. package/dist/lib/schemas-data/3.2/core/job-item.json +3 -3
  770. package/dist/lib/schemas-data/3.2/core/keyword-delivery-metrics.json +3 -3
  771. package/dist/lib/schemas-data/3.2/core/keyword-target.json +2 -2
  772. package/dist/lib/schemas-data/3.2/core/limited-series.json +1 -1
  773. package/dist/lib/schemas-data/3.2/core/locale-tag.json +1 -1
  774. package/dist/lib/schemas-data/3.2/core/localized-creative-asset.json +3 -3
  775. package/dist/lib/schemas-data/3.2/core/macro-bearing-url.json +1 -1
  776. package/dist/lib/schemas-data/3.2/core/macro-declaration.json +10 -10
  777. package/dist/lib/schemas-data/3.2/core/macro-encoding.json +1 -1
  778. package/dist/lib/schemas-data/3.2/core/macro-resolution-capability.json +8 -8
  779. package/dist/lib/schemas-data/3.2/core/macro-resolution-result.json +10 -10
  780. package/dist/lib/schemas-data/3.2/core/macro-translation-target.json +7 -7
  781. package/dist/lib/schemas-data/3.2/core/material-deadline.json +1 -1
  782. package/dist/lib/schemas-data/3.2/core/mcp-webhook-payload.json +6 -6
  783. package/dist/lib/schemas-data/3.2/core/measurement-readiness.json +5 -5
  784. package/dist/lib/schemas-data/3.2/core/measurement-terms.json +3 -3
  785. package/dist/lib/schemas-data/3.2/core/measurement-window.json +1 -1
  786. package/dist/lib/schemas-data/3.2/core/media-buy-available-action-id.json +2 -2
  787. package/dist/lib/schemas-data/3.2/core/media-buy-available-action.json +7 -7
  788. package/dist/lib/schemas-data/3.2/core/media-buy-change-term-id.json +1 -1
  789. package/dist/lib/schemas-data/3.2/core/media-buy-features.json +2 -2
  790. package/dist/lib/schemas-data/3.2/core/media-buy-frequency-cap-capability.json +3 -3
  791. package/dist/lib/schemas-data/3.2/core/media-buy-frequency-cap-requirement.json +3 -3
  792. package/dist/lib/schemas-data/3.2/core/media-buy-frequency-cap-support.json +3 -3
  793. package/dist/lib/schemas-data/3.2/core/media-buy-frequency-cap.json +2 -2
  794. package/dist/lib/schemas-data/3.2/core/media-buy-legacy-terms-ref.json +1 -1
  795. package/dist/lib/schemas-data/3.2/core/media-buy-support-requirements.json +2 -2
  796. package/dist/lib/schemas-data/3.2/core/media-buy-support.json +3 -3
  797. package/dist/lib/schemas-data/3.2/core/media-buy.json +14 -14
  798. package/dist/lib/schemas-data/3.2/core/missing-metric.json +14 -14
  799. package/dist/lib/schemas-data/3.2/core/negative-keyword.json +2 -2
  800. package/dist/lib/schemas-data/3.2/core/notification-config.json +3 -3
  801. package/dist/lib/schemas-data/3.2/core/offering-asset-group.json +16 -16
  802. package/dist/lib/schemas-data/3.2/core/offering.json +5 -5
  803. package/dist/lib/schemas-data/3.2/core/operator-identity.json +2 -2
  804. package/dist/lib/schemas-data/3.2/core/operator-unit.json +1 -1
  805. package/dist/lib/schemas-data/3.2/core/opportunity-context.json +2 -2
  806. package/dist/lib/schemas-data/3.2/core/optimization-goal.json +9 -9
  807. package/dist/lib/schemas-data/3.2/core/outcome-measurement.json +2 -2
  808. package/dist/lib/schemas-data/3.2/core/outcome-target-cost-per.json +2 -2
  809. package/dist/lib/schemas-data/3.2/core/overlay.json +1 -1
  810. package/dist/lib/schemas-data/3.2/core/package-delivery-metric-value.json +2 -2
  811. package/dist/lib/schemas-data/3.2/core/package-format-snapshot.json +5 -5
  812. package/dist/lib/schemas-data/3.2/core/package-signal-targeting-group.json +2 -2
  813. package/dist/lib/schemas-data/3.2/core/package-signal-targeting-groups.json +2 -2
  814. package/dist/lib/schemas-data/3.2/core/package-signal-targeting.json +3 -3
  815. package/dist/lib/schemas-data/3.2/core/package-targeting-resolution.json +3 -3
  816. package/dist/lib/schemas-data/3.2/core/package.json +23 -23
  817. package/dist/lib/schemas-data/3.2/core/pagination-request.json +1 -1
  818. package/dist/lib/schemas-data/3.2/core/pagination-response.json +1 -1
  819. package/dist/lib/schemas-data/3.2/core/performance-feedback-assertion.json +8 -8
  820. package/dist/lib/schemas-data/3.2/core/performance-feedback-metric.json +14 -14
  821. package/dist/lib/schemas-data/3.2/core/performance-feedback.json +17 -17
  822. package/dist/lib/schemas-data/3.2/core/performance-standard.json +4 -4
  823. package/dist/lib/schemas-data/3.2/core/placement-definition.json +15 -15
  824. package/dist/lib/schemas-data/3.2/core/placement-delivery-metrics.json +3 -3
  825. package/dist/lib/schemas-data/3.2/core/placement-evidence.json +1 -1
  826. package/dist/lib/schemas-data/3.2/core/placement-identity.json +2 -2
  827. package/dist/lib/schemas-data/3.2/core/placement-presentation.json +1 -1
  828. package/dist/lib/schemas-data/3.2/core/placement-property-delivery-metrics.json +5 -5
  829. package/dist/lib/schemas-data/3.2/core/placement-ref.json +1 -1
  830. package/dist/lib/schemas-data/3.2/core/placement-selection.json +5 -5
  831. package/dist/lib/schemas-data/3.2/core/placement.json +10 -10
  832. package/dist/lib/schemas-data/3.2/core/planned-delivery.json +8 -8
  833. package/dist/lib/schemas-data/3.2/core/platform-extension-ref.json +1 -1
  834. package/dist/lib/schemas-data/3.2/core/positive-postal-area-support.json +2 -2
  835. package/dist/lib/schemas-data/3.2/core/postal-area-support.json +2 -2
  836. package/dist/lib/schemas-data/3.2/core/postal-area.json +4 -4
  837. package/dist/lib/schemas-data/3.2/core/postal-country-system.json +2 -2
  838. package/dist/lib/schemas-data/3.2/core/presentation-ref.json +1 -1
  839. package/dist/lib/schemas-data/3.2/core/preview-provider.json +1 -1
  840. package/dist/lib/schemas-data/3.2/core/preview-renderer-metadata.json +1 -1
  841. package/dist/lib/schemas-data/3.2/core/price.json +1 -1
  842. package/dist/lib/schemas-data/3.2/core/pricing-option.json +11 -11
  843. package/dist/lib/schemas-data/3.2/core/principal-changed-webhook.json +2 -2
  844. package/dist/lib/schemas-data/3.2/core/principal-declarations-state.json +3 -3
  845. package/dist/lib/schemas-data/3.2/core/principal-declarations.json +2 -2
  846. package/dist/lib/schemas-data/3.2/core/principal-state.json +4 -4
  847. package/dist/lib/schemas-data/3.2/core/product-allocation.json +5 -5
  848. package/dist/lib/schemas-data/3.2/core/product-allowed-action.json +6 -6
  849. package/dist/lib/schemas-data/3.2/core/product-audience-evidence-requirements.json +13 -13
  850. package/dist/lib/schemas-data/3.2/core/product-card-reference-asset.json +5 -5
  851. package/dist/lib/schemas-data/3.2/core/product-change-map.json +1 -1
  852. package/dist/lib/schemas-data/3.2/core/product-execution-requirement.json +7 -7
  853. package/dist/lib/schemas-data/3.2/core/product-filters.json +36 -36
  854. package/dist/lib/schemas-data/3.2/core/product-format-declaration.json +22 -22
  855. package/dist/lib/schemas-data/3.2/core/product-identity.json +1 -1
  856. package/dist/lib/schemas-data/3.2/core/product-offer-filters.json +26 -26
  857. package/dist/lib/schemas-data/3.2/core/product-signal-targeting-option.json +3 -3
  858. package/dist/lib/schemas-data/3.2/core/product-targeting-resolution.json +3 -3
  859. package/dist/lib/schemas-data/3.2/core/product.json +54 -54
  860. package/dist/lib/schemas-data/3.2/core/property-delivery-metrics.json +4 -4
  861. package/dist/lib/schemas-data/3.2/core/property-id.json +1 -1
  862. package/dist/lib/schemas-data/3.2/core/property-list-ref.json +1 -1
  863. package/dist/lib/schemas-data/3.2/core/property-ref.json +2 -2
  864. package/dist/lib/schemas-data/3.2/core/property-tag.json +1 -1
  865. package/dist/lib/schemas-data/3.2/core/property.json +6 -6
  866. package/dist/lib/schemas-data/3.2/core/proposal.json +9 -9
  867. package/dist/lib/schemas-data/3.2/core/protocol-envelope.json +5 -5
  868. package/dist/lib/schemas-data/3.2/core/provenance.json +9 -9
  869. package/dist/lib/schemas-data/3.2/core/publisher-property-selector.json +3 -3
  870. package/dist/lib/schemas-data/3.2/core/push-notification-config.json +2 -2
  871. package/dist/lib/schemas-data/3.2/core/real-estate-item.json +4 -4
  872. package/dist/lib/schemas-data/3.2/core/reference-asset.json +1 -1
  873. package/dist/lib/schemas-data/3.2/core/reference-renderer.json +1 -1
  874. package/dist/lib/schemas-data/3.2/core/registry-event.json +15 -15
  875. package/dist/lib/schemas-data/3.2/core/registry-feed-response.json +2 -2
  876. package/dist/lib/schemas-data/3.2/core/reporting-adjustment-receipt.json +1 -1
  877. package/dist/lib/schemas-data/3.2/core/reporting-adjustment.json +2 -2
  878. package/dist/lib/schemas-data/3.2/core/reporting-canonical-content-digest.json +1 -1
  879. package/dist/lib/schemas-data/3.2/core/reporting-canonicalization-contract.json +1 -1
  880. package/dist/lib/schemas-data/3.2/core/reporting-capabilities.json +12 -12
  881. package/dist/lib/schemas-data/3.2/core/reporting-consumer-status.json +1 -1
  882. package/dist/lib/schemas-data/3.2/core/reporting-control-total.json +1 -1
  883. package/dist/lib/schemas-data/3.2/core/reporting-coverage.json +1 -1
  884. package/dist/lib/schemas-data/3.2/core/reporting-dataset-share-destination.json +1 -1
  885. package/dist/lib/schemas-data/3.2/core/reporting-delivery-capabilities.json +3 -3
  886. package/dist/lib/schemas-data/3.2/core/reporting-delivery-config-state.json +4 -4
  887. package/dist/lib/schemas-data/3.2/core/reporting-delivery-config.json +7 -7
  888. package/dist/lib/schemas-data/3.2/core/reporting-delivery-method.json +4 -4
  889. package/dist/lib/schemas-data/3.2/core/reporting-delivery-offering-id.json +1 -1
  890. package/dist/lib/schemas-data/3.2/core/reporting-delivery-offering.json +8 -8
  891. package/dist/lib/schemas-data/3.2/core/reporting-delivery-ready-webhook.json +3 -3
  892. package/dist/lib/schemas-data/3.2/core/reporting-file-compression.json +1 -1
  893. package/dist/lib/schemas-data/3.2/core/reporting-file-entry.json +3 -3
  894. package/dist/lib/schemas-data/3.2/core/reporting-file-manifest.json +4 -4
  895. package/dist/lib/schemas-data/3.2/core/reporting-file-object-ref.json +1 -1
  896. package/dist/lib/schemas-data/3.2/core/reporting-ledger-changed-webhook.json +3 -3
  897. package/dist/lib/schemas-data/3.2/core/reporting-materialization.json +4 -4
  898. package/dist/lib/schemas-data/3.2/core/reporting-native-version-ref.json +1 -1
  899. package/dist/lib/schemas-data/3.2/core/reporting-obligation.json +10 -10
  900. package/dist/lib/schemas-data/3.2/core/reporting-receipt.json +5 -5
  901. package/dist/lib/schemas-data/3.2/core/reporting-reconciliation-mode.json +1 -1
  902. package/dist/lib/schemas-data/3.2/core/reporting-reliability-statistics.json +1 -1
  903. package/dist/lib/schemas-data/3.2/core/reporting-report-definition.json +1 -1
  904. package/dist/lib/schemas-data/3.2/core/reporting-resource.json +2 -2
  905. package/dist/lib/schemas-data/3.2/core/reporting-revision.json +6 -6
  906. package/dist/lib/schemas-data/3.2/core/reporting-schedule-offering.json +2 -2
  907. package/dist/lib/schemas-data/3.2/core/reporting-schedule.json +1 -1
  908. package/dist/lib/schemas-data/3.2/core/reporting-status-changed-webhook.json +5 -5
  909. package/dist/lib/schemas-data/3.2/core/reporting-status-issue.json +59 -5
  910. package/dist/lib/schemas-data/3.2/core/reporting-verification-profile-set.json +1 -1
  911. package/dist/lib/schemas-data/3.2/core/reporting-verification-profile.json +1 -1
  912. package/dist/lib/schemas-data/3.2/core/reporting-verification.json +7 -7
  913. package/dist/lib/schemas-data/3.2/core/reporting-webhook.json +3 -3
  914. package/dist/lib/schemas-data/3.2/core/reporting-write-destination.json +1 -1
  915. package/dist/lib/schemas-data/3.2/core/representation-destination.json +5 -5
  916. package/dist/lib/schemas-data/3.2/core/representation-rejection.json +1 -1
  917. package/dist/lib/schemas-data/3.2/core/representation-selection.json +5 -5
  918. package/dist/lib/schemas-data/3.2/core/requirements/asset-requirements.json +13 -13
  919. package/dist/lib/schemas-data/3.2/core/requirements/audio-asset-requirements.json +1 -1
  920. package/dist/lib/schemas-data/3.2/core/requirements/catalog-field-binding.json +4 -4
  921. package/dist/lib/schemas-data/3.2/core/requirements/catalog-requirements.json +5 -5
  922. package/dist/lib/schemas-data/3.2/core/requirements/css-asset-requirements.json +1 -1
  923. package/dist/lib/schemas-data/3.2/core/requirements/daast-asset-requirements.json +3 -3
  924. package/dist/lib/schemas-data/3.2/core/requirements/html-asset-requirements.json +1 -1
  925. package/dist/lib/schemas-data/3.2/core/requirements/image-asset-requirements.json +2 -2
  926. package/dist/lib/schemas-data/3.2/core/requirements/javascript-asset-requirements.json +1 -1
  927. package/dist/lib/schemas-data/3.2/core/requirements/markdown-asset-requirements.json +1 -1
  928. package/dist/lib/schemas-data/3.2/core/requirements/offering-asset-constraint.json +4 -4
  929. package/dist/lib/schemas-data/3.2/core/requirements/text-asset-requirements.json +1 -1
  930. package/dist/lib/schemas-data/3.2/core/requirements/url-asset-requirements.json +1 -1
  931. package/dist/lib/schemas-data/3.2/core/requirements/vast-asset-requirements.json +4 -4
  932. package/dist/lib/schemas-data/3.2/core/requirements/video-asset-requirements.json +6 -6
  933. package/dist/lib/schemas-data/3.2/core/requirements/webhook-asset-requirements.json +1 -1
  934. package/dist/lib/schemas-data/3.2/core/response-payload-jws-envelope.json +1 -1
  935. package/dist/lib/schemas-data/3.2/core/response.json +1 -1
  936. package/dist/lib/schemas-data/3.2/core/rights-attestation-evaluation.json +5 -5
  937. package/dist/lib/schemas-data/3.2/core/rights-constraint.json +7 -7
  938. package/dist/lib/schemas-data/3.2/core/seller-agent-ref.json +1 -1
  939. package/dist/lib/schemas-data/3.2/core/signal-coverage-forecast.json +5 -5
  940. package/dist/lib/schemas-data/3.2/core/signal-definition-enrichment.json +5 -5
  941. package/dist/lib/schemas-data/3.2/core/signal-definition.json +8 -8
  942. package/dist/lib/schemas-data/3.2/core/signal-filters.json +3 -3
  943. package/dist/lib/schemas-data/3.2/core/signal-id.json +1 -1
  944. package/dist/lib/schemas-data/3.2/core/signal-listing.json +6 -6
  945. package/dist/lib/schemas-data/3.2/core/signal-modeling-disclosure.json +1 -1
  946. package/dist/lib/schemas-data/3.2/core/signal-pricing-option.json +2 -2
  947. package/dist/lib/schemas-data/3.2/core/signal-pricing.json +6 -6
  948. package/dist/lib/schemas-data/3.2/core/signal-ref.json +1 -1
  949. package/dist/lib/schemas-data/3.2/core/signal-selection-group-rule.json +1 -1
  950. package/dist/lib/schemas-data/3.2/core/signal-targeting-expression.json +4 -4
  951. package/dist/lib/schemas-data/3.2/core/signal-targeting-rules.json +2 -2
  952. package/dist/lib/schemas-data/3.2/core/signal-targeting.json +7 -7
  953. package/dist/lib/schemas-data/3.2/core/sla-window.json +1 -1
  954. package/dist/lib/schemas-data/3.2/core/special.json +2 -2
  955. package/dist/lib/schemas-data/3.2/core/spot-reporting-capability.json +2 -2
  956. package/dist/lib/schemas-data/3.2/core/start-timing.json +1 -1
  957. package/dist/lib/schemas-data/3.2/core/store-item.json +3 -3
  958. package/dist/lib/schemas-data/3.2/core/talent.json +2 -2
  959. package/dist/lib/schemas-data/3.2/core/targeting-input.json +40 -40
  960. package/dist/lib/schemas-data/3.2/core/targeting-modification.json +3 -3
  961. package/dist/lib/schemas-data/3.2/core/targeting-overlay-requirements.json +15 -15
  962. package/dist/lib/schemas-data/3.2/core/targeting-overlay-support.json +25 -25
  963. package/dist/lib/schemas-data/3.2/core/targeting-unknown-age-eligibility-constraint.json +1 -1
  964. package/dist/lib/schemas-data/3.2/core/targeting-verified-age-basis-constraint.json +1 -1
  965. package/dist/lib/schemas-data/3.2/core/targeting.json +34 -34
  966. package/dist/lib/schemas-data/3.2/core/tasks-get-request.json +5 -5
  967. package/dist/lib/schemas-data/3.2/core/tasks-get-response.json +10 -10
  968. package/dist/lib/schemas-data/3.2/core/tasks-list-request.json +13 -13
  969. package/dist/lib/schemas-data/3.2/core/tasks-list-response.json +8 -8
  970. package/dist/lib/schemas-data/3.2/core/tracker-execution-contract.json +2 -2
  971. package/dist/lib/schemas-data/3.2/core/tracker-execution-selector.json +18 -18
  972. package/dist/lib/schemas-data/3.2/core/transformer-param.json +1 -1
  973. package/dist/lib/schemas-data/3.2/core/transformer.json +6 -6
  974. package/dist/lib/schemas-data/3.2/core/truncation-sentinel.json +1 -1
  975. package/dist/lib/schemas-data/3.2/core/user-match.json +3 -3
  976. package/dist/lib/schemas-data/3.2/core/vast-media-file-requirements.json +2 -2
  977. package/dist/lib/schemas-data/3.2/core/vast-tracker-constraints.json +2 -2
  978. package/dist/lib/schemas-data/3.2/core/vehicle-item.json +4 -4
  979. package/dist/lib/schemas-data/3.2/core/vendor-metric-id.json +1 -1
  980. package/dist/lib/schemas-data/3.2/core/vendor-metric-optimization-supported-metric.json +3 -3
  981. package/dist/lib/schemas-data/3.2/core/vendor-metric-optimization.json +2 -2
  982. package/dist/lib/schemas-data/3.2/core/vendor-metric-value.json +9 -9
  983. package/dist/lib/schemas-data/3.2/core/vendor-pricing-option.json +3 -3
  984. package/dist/lib/schemas-data/3.2/core/verification-token-claims.json +1 -1
  985. package/dist/lib/schemas-data/3.2/core/version-envelope.json +2 -2
  986. package/dist/lib/schemas-data/3.2/core/warning-resource.json +1 -1
  987. package/dist/lib/schemas-data/3.2/core/warning.json +4 -4
  988. package/dist/lib/schemas-data/3.2/core/webhook-activity-record.json +3 -3
  989. package/dist/lib/schemas-data/3.2/core/webhook-challenge-response.json +1 -1
  990. package/dist/lib/schemas-data/3.2/core/webhook-challenge.json +2 -2
  991. package/dist/lib/schemas-data/3.2/core/wholesale-feed-event.json +20 -20
  992. package/dist/lib/schemas-data/3.2/core/wholesale-feed-webhook.json +3 -3
  993. package/dist/lib/schemas-data/3.2/core/x-entity-types.json +1 -1
  994. package/dist/lib/schemas-data/3.2/creative/asset-types/index.json +6 -6
  995. package/dist/lib/schemas-data/3.2/creative/audit-observation.json +2 -2
  996. package/dist/lib/schemas-data/3.2/creative/creative-assignment-changed-webhook.json +2 -2
  997. package/dist/lib/schemas-data/3.2/creative/creative-feature-result.json +2 -2
  998. package/dist/lib/schemas-data/3.2/creative/creative-purged-webhook.json +3 -3
  999. package/dist/lib/schemas-data/3.2/creative/creative-status-changed-webhook.json +5 -5
  1000. package/dist/lib/schemas-data/3.2/creative/get-creative-delivery-request.json +6 -6
  1001. package/dist/lib/schemas-data/3.2/creative/get-creative-delivery-response.json +11 -11
  1002. package/dist/lib/schemas-data/3.2/creative/get-creative-features-async-response-submitted.json +3 -3
  1003. package/dist/lib/schemas-data/3.2/creative/get-creative-features-request.json +7 -7
  1004. package/dist/lib/schemas-data/3.2/creative/get-creative-features-response.json +9 -9
  1005. package/dist/lib/schemas-data/3.2/creative/get-creative-features-terminal-success.json +6 -6
  1006. package/dist/lib/schemas-data/3.2/creative/list-creative-formats-request.json +13 -13
  1007. package/dist/lib/schemas-data/3.2/creative/list-creative-formats-response.json +9 -9
  1008. package/dist/lib/schemas-data/3.2/creative/list-creatives-request.json +9 -9
  1009. package/dist/lib/schemas-data/3.2/creative/list-creatives-response.json +34 -34
  1010. package/dist/lib/schemas-data/3.2/creative/list-transformers-request.json +9 -9
  1011. package/dist/lib/schemas-data/3.2/creative/list-transformers-response.json +8 -8
  1012. package/dist/lib/schemas-data/3.2/creative/preview-creative-request.json +13 -13
  1013. package/dist/lib/schemas-data/3.2/creative/preview-creative-response.json +18 -18
  1014. package/dist/lib/schemas-data/3.2/creative/preview-render.json +4 -4
  1015. package/dist/lib/schemas-data/3.2/creative/sync-creatives-async-response-input-required.json +3 -3
  1016. package/dist/lib/schemas-data/3.2/creative/sync-creatives-async-response-submitted.json +4 -4
  1017. package/dist/lib/schemas-data/3.2/creative/sync-creatives-async-response-working.json +3 -3
  1018. package/dist/lib/schemas-data/3.2/creative/sync-creatives-request.json +10 -10
  1019. package/dist/lib/schemas-data/3.2/creative/sync-creatives-response.json +18 -18
  1020. package/dist/lib/schemas-data/3.2/creative/validate-input-request.json +4 -4
  1021. package/dist/lib/schemas-data/3.2/creative/validate-input-response.json +4 -4
  1022. package/dist/lib/schemas-data/3.2/creative/validate-input-result.json +2 -2
  1023. package/dist/lib/schemas-data/3.2/creative/video-brief.json +1 -1
  1024. package/dist/lib/schemas-data/3.2/enums/account-currency-mode.json +1 -1
  1025. package/dist/lib/schemas-data/3.2/enums/account-scope.json +1 -1
  1026. package/dist/lib/schemas-data/3.2/enums/account-status.json +1 -1
  1027. package/dist/lib/schemas-data/3.2/enums/action-not-allowed-reason.json +1 -1
  1028. package/dist/lib/schemas-data/3.2/enums/action-source.json +1 -1
  1029. package/dist/lib/schemas-data/3.2/enums/activation-method.json +1 -1
  1030. package/dist/lib/schemas-data/3.2/enums/adcp-protocol.json +1 -1
  1031. package/dist/lib/schemas-data/3.2/enums/adjustment-kind.json +1 -1
  1032. package/dist/lib/schemas-data/3.2/enums/advertiser-industry.json +1 -1
  1033. package/dist/lib/schemas-data/3.2/enums/age-determination-basis.json +1 -1
  1034. package/dist/lib/schemas-data/3.2/enums/age-verification-method.json +1 -1
  1035. package/dist/lib/schemas-data/3.2/enums/assessment-status.json +1 -1
  1036. package/dist/lib/schemas-data/3.2/enums/asset-content-type.json +1 -1
  1037. package/dist/lib/schemas-data/3.2/enums/attestation-claim.json +1 -1
  1038. package/dist/lib/schemas-data/3.2/enums/attribution-methodology.json +1 -1
  1039. package/dist/lib/schemas-data/3.2/enums/attribution-model.json +1 -1
  1040. package/dist/lib/schemas-data/3.2/enums/audience-evidence-methodology.json +1 -1
  1041. package/dist/lib/schemas-data/3.2/enums/audience-resolution-method.json +1 -1
  1042. package/dist/lib/schemas-data/3.2/enums/audience-source.json +1 -1
  1043. package/dist/lib/schemas-data/3.2/enums/audience-status.json +1 -1
  1044. package/dist/lib/schemas-data/3.2/enums/audience-subject-type.json +1 -1
  1045. package/dist/lib/schemas-data/3.2/enums/audio-channel-layout.json +1 -1
  1046. package/dist/lib/schemas-data/3.2/enums/audio-distribution-type.json +1 -1
  1047. package/dist/lib/schemas-data/3.2/enums/auth-scheme.json +1 -1
  1048. package/dist/lib/schemas-data/3.2/enums/availability-status.json +1 -1
  1049. package/dist/lib/schemas-data/3.2/enums/available-metric.json +1 -1
  1050. package/dist/lib/schemas-data/3.2/enums/billing-party.json +1 -1
  1051. package/dist/lib/schemas-data/3.2/enums/binary-verdict.json +1 -1
  1052. package/dist/lib/schemas-data/3.2/enums/brand-agent-type.json +1 -1
  1053. package/dist/lib/schemas-data/3.2/enums/browser-family.json +1 -1
  1054. package/dist/lib/schemas-data/3.2/enums/c2pa-watermark-action.json +1 -1
  1055. package/dist/lib/schemas-data/3.2/enums/canceled-by.json +1 -1
  1056. package/dist/lib/schemas-data/3.2/enums/canonical-media-buy-action-mode.json +1 -1
  1057. package/dist/lib/schemas-data/3.2/enums/canonical-media-buy-action.json +1 -1
  1058. package/dist/lib/schemas-data/3.2/enums/catalog-action.json +1 -1
  1059. package/dist/lib/schemas-data/3.2/enums/catalog-item-status.json +1 -1
  1060. package/dist/lib/schemas-data/3.2/enums/catalog-type.json +1 -1
  1061. package/dist/lib/schemas-data/3.2/enums/channels.json +1 -1
  1062. package/dist/lib/schemas-data/3.2/enums/cloud-storage-protocol.json +1 -1
  1063. package/dist/lib/schemas-data/3.2/enums/co-branding-requirement.json +1 -1
  1064. package/dist/lib/schemas-data/3.2/enums/collection-cadence.json +1 -1
  1065. package/dist/lib/schemas-data/3.2/enums/collection-kind.json +1 -1
  1066. package/dist/lib/schemas-data/3.2/enums/collection-relationship.json +1 -1
  1067. package/dist/lib/schemas-data/3.2/enums/collection-status.json +1 -1
  1068. package/dist/lib/schemas-data/3.2/enums/completion-source.json +1 -1
  1069. package/dist/lib/schemas-data/3.2/enums/consent-basis.json +1 -1
  1070. package/dist/lib/schemas-data/3.2/enums/content-id-type.json +1 -1
  1071. package/dist/lib/schemas-data/3.2/enums/content-rating-system.json +1 -1
  1072. package/dist/lib/schemas-data/3.2/enums/creative-action.json +1 -1
  1073. package/dist/lib/schemas-data/3.2/enums/creative-agent-capability.json +1 -1
  1074. package/dist/lib/schemas-data/3.2/enums/creative-approval-status.json +1 -1
  1075. package/dist/lib/schemas-data/3.2/enums/creative-event-reason-code.json +1 -1
  1076. package/dist/lib/schemas-data/3.2/enums/creative-identifier-type.json +1 -1
  1077. package/dist/lib/schemas-data/3.2/enums/creative-quality.json +1 -1
  1078. package/dist/lib/schemas-data/3.2/enums/creative-selection-strategy.json +1 -1
  1079. package/dist/lib/schemas-data/3.2/enums/creative-sort-field.json +1 -1
  1080. package/dist/lib/schemas-data/3.2/enums/creative-status.json +1 -1
  1081. package/dist/lib/schemas-data/3.2/enums/ctv-ad-experience.json +1 -1
  1082. package/dist/lib/schemas-data/3.2/enums/daast-tracking-event.json +1 -1
  1083. package/dist/lib/schemas-data/3.2/enums/daast-version.json +1 -1
  1084. package/dist/lib/schemas-data/3.2/enums/day-of-week.json +1 -1
  1085. package/dist/lib/schemas-data/3.2/enums/daypart-timezone-mode.json +1 -1
  1086. package/dist/lib/schemas-data/3.2/enums/delegation-authority.json +1 -1
  1087. package/dist/lib/schemas-data/3.2/enums/delivery-recipient-cloud.json +1 -1
  1088. package/dist/lib/schemas-data/3.2/enums/delivery-status.json +1 -1
  1089. package/dist/lib/schemas-data/3.2/enums/delivery-type.json +1 -1
  1090. package/dist/lib/schemas-data/3.2/enums/demographic-system.json +1 -1
  1091. package/dist/lib/schemas-data/3.2/enums/derivative-type.json +1 -1
  1092. package/dist/lib/schemas-data/3.2/enums/device-platform.json +1 -1
  1093. package/dist/lib/schemas-data/3.2/enums/device-type.json +1 -1
  1094. package/dist/lib/schemas-data/3.2/enums/digital-source-type.json +1 -1
  1095. package/dist/lib/schemas-data/3.2/enums/dimension-unit.json +1 -1
  1096. package/dist/lib/schemas-data/3.2/enums/disclosure-persistence.json +1 -1
  1097. package/dist/lib/schemas-data/3.2/enums/disclosure-position.json +1 -1
  1098. package/dist/lib/schemas-data/3.2/enums/distance-unit.json +1 -1
  1099. package/dist/lib/schemas-data/3.2/enums/distribution-identifier-type.json +1 -1
  1100. package/dist/lib/schemas-data/3.2/enums/dooh-motion-type.json +1 -1
  1101. package/dist/lib/schemas-data/3.2/enums/embedded-provenance-method.json +1 -1
  1102. package/dist/lib/schemas-data/3.2/enums/error-code.json +1 -1
  1103. package/dist/lib/schemas-data/3.2/enums/error-scope.json +1 -1
  1104. package/dist/lib/schemas-data/3.2/enums/escalation-severity.json +1 -1
  1105. package/dist/lib/schemas-data/3.2/enums/event-type.json +1 -1
  1106. package/dist/lib/schemas-data/3.2/enums/exclusivity.json +1 -1
  1107. package/dist/lib/schemas-data/3.2/enums/feature-check-status.json +1 -1
  1108. package/dist/lib/schemas-data/3.2/enums/feed-format.json +1 -1
  1109. package/dist/lib/schemas-data/3.2/enums/feedback-source.json +1 -1
  1110. package/dist/lib/schemas-data/3.2/enums/forecast-method.json +1 -1
  1111. package/dist/lib/schemas-data/3.2/enums/forecast-range-unit.json +1 -1
  1112. package/dist/lib/schemas-data/3.2/enums/forecastable-metric.json +1 -1
  1113. package/dist/lib/schemas-data/3.2/enums/format-id-parameter.json +1 -1
  1114. package/dist/lib/schemas-data/3.2/enums/frame-rate-type.json +1 -1
  1115. package/dist/lib/schemas-data/3.2/enums/frequency-cap-control-mode.json +1 -1
  1116. package/dist/lib/schemas-data/3.2/enums/frequency-cap-mutable-field.json +1 -1
  1117. package/dist/lib/schemas-data/3.2/enums/frequency-cap-scope.json +1 -1
  1118. package/dist/lib/schemas-data/3.2/enums/genre-taxonomy.json +1 -1
  1119. package/dist/lib/schemas-data/3.2/enums/geo-level.json +1 -1
  1120. package/dist/lib/schemas-data/3.2/enums/gop-type.json +1 -1
  1121. package/dist/lib/schemas-data/3.2/enums/governance-decision.json +1 -1
  1122. package/dist/lib/schemas-data/3.2/enums/governance-domain.json +1 -1
  1123. package/dist/lib/schemas-data/3.2/enums/governance-mode.json +1 -1
  1124. package/dist/lib/schemas-data/3.2/enums/governance-phase.json +1 -1
  1125. package/dist/lib/schemas-data/3.2/enums/history-entry-type.json +1 -1
  1126. package/dist/lib/schemas-data/3.2/enums/http-method.json +1 -1
  1127. package/dist/lib/schemas-data/3.2/enums/identifier-types.json +1 -1
  1128. package/dist/lib/schemas-data/3.2/enums/impairment-offline-state.json +1 -1
  1129. package/dist/lib/schemas-data/3.2/enums/impairment-reason-code.json +1 -1
  1130. package/dist/lib/schemas-data/3.2/enums/indicator-type.json +1 -1
  1131. package/dist/lib/schemas-data/3.2/enums/installment-status.json +1 -1
  1132. package/dist/lib/schemas-data/3.2/enums/javascript-module-type.json +1 -1
  1133. package/dist/lib/schemas-data/3.2/enums/landing-page-requirement.json +1 -1
  1134. package/dist/lib/schemas-data/3.2/enums/legacy-postal-system.json +1 -1
  1135. package/dist/lib/schemas-data/3.2/enums/lift-dimension.json +1 -1
  1136. package/dist/lib/schemas-data/3.2/enums/logo-slot.json +1 -1
  1137. package/dist/lib/schemas-data/3.2/enums/macro-dialect.json +1 -1
  1138. package/dist/lib/schemas-data/3.2/enums/macro-mapping-status.json +1 -1
  1139. package/dist/lib/schemas-data/3.2/enums/macro-processing-operation.json +1 -1
  1140. package/dist/lib/schemas-data/3.2/enums/macro-resolution-reason.json +1 -1
  1141. package/dist/lib/schemas-data/3.2/enums/macro-resolver.json +1 -1
  1142. package/dist/lib/schemas-data/3.2/enums/macro-value-context.json +1 -1
  1143. package/dist/lib/schemas-data/3.2/enums/makegood-remedy.json +1 -1
  1144. package/dist/lib/schemas-data/3.2/enums/markdown-flavor.json +1 -1
  1145. package/dist/lib/schemas-data/3.2/enums/match-id-type.json +1 -1
  1146. package/dist/lib/schemas-data/3.2/enums/match-type.json +1 -1
  1147. package/dist/lib/schemas-data/3.2/enums/media-buy-action-mode.json +1 -1
  1148. package/dist/lib/schemas-data/3.2/enums/media-buy-frequency-cap-control-mode.json +1 -1
  1149. package/dist/lib/schemas-data/3.2/enums/media-buy-health.json +1 -1
  1150. package/dist/lib/schemas-data/3.2/enums/media-buy-status.json +1 -1
  1151. package/dist/lib/schemas-data/3.2/enums/media-buy-valid-action.json +1 -1
  1152. package/dist/lib/schemas-data/3.2/enums/metric-scope.json +1 -1
  1153. package/dist/lib/schemas-data/3.2/enums/metric-type.json +1 -1
  1154. package/dist/lib/schemas-data/3.2/enums/metro-system.json +1 -1
  1155. package/dist/lib/schemas-data/3.2/enums/moov-atom-position.json +1 -1
  1156. package/dist/lib/schemas-data/3.2/enums/motion-level.json +1 -1
  1157. package/dist/lib/schemas-data/3.2/enums/notification-type.json +1 -1
  1158. package/dist/lib/schemas-data/3.2/enums/offering-availability-status.json +1 -1
  1159. package/dist/lib/schemas-data/3.2/enums/outcome-target-cost-strength.json +1 -1
  1160. package/dist/lib/schemas-data/3.2/enums/outcome-type.json +1 -1
  1161. package/dist/lib/schemas-data/3.2/enums/pacing.json +1 -1
  1162. package/dist/lib/schemas-data/3.2/enums/payment-terms.json +1 -1
  1163. package/dist/lib/schemas-data/3.2/enums/performance-baseline.json +1 -1
  1164. package/dist/lib/schemas-data/3.2/enums/performance-standard-metric.json +1 -1
  1165. package/dist/lib/schemas-data/3.2/enums/pixel-tracking-event.json +1 -1
  1166. package/dist/lib/schemas-data/3.2/enums/policy-category.json +1 -1
  1167. package/dist/lib/schemas-data/3.2/enums/policy-enforcement.json +1 -1
  1168. package/dist/lib/schemas-data/3.2/enums/postal-system.json +1 -1
  1169. package/dist/lib/schemas-data/3.2/enums/preview-output-format.json +1 -1
  1170. package/dist/lib/schemas-data/3.2/enums/pricing-model.json +1 -1
  1171. package/dist/lib/schemas-data/3.2/enums/pricing-structure.json +1 -1
  1172. package/dist/lib/schemas-data/3.2/enums/principal-kind.json +1 -1
  1173. package/dist/lib/schemas-data/3.2/enums/production-quality.json +1 -1
  1174. package/dist/lib/schemas-data/3.2/enums/property-type.json +1 -1
  1175. package/dist/lib/schemas-data/3.2/enums/proposal-decline-reason.json +1 -1
  1176. package/dist/lib/schemas-data/3.2/enums/proposal-refinement-reason.json +1 -1
  1177. package/dist/lib/schemas-data/3.2/enums/proposal-status.json +1 -1
  1178. package/dist/lib/schemas-data/3.2/enums/publisher-identifier-types.json +1 -1
  1179. package/dist/lib/schemas-data/3.2/enums/purchase-type.json +1 -1
  1180. package/dist/lib/schemas-data/3.2/enums/reach-aggregation.json +1 -1
  1181. package/dist/lib/schemas-data/3.2/enums/reach-unit.json +1 -1
  1182. package/dist/lib/schemas-data/3.2/enums/reporting-destination-setup-state.json +1 -1
  1183. package/dist/lib/schemas-data/3.2/enums/reporting-finality.json +1 -1
  1184. package/dist/lib/schemas-data/3.2/enums/reporting-frequency.json +1 -1
  1185. package/dist/lib/schemas-data/3.2/enums/reporting-health.json +1 -1
  1186. package/dist/lib/schemas-data/3.2/enums/representation-selection-strategy.json +1 -1
  1187. package/dist/lib/schemas-data/3.2/enums/request-signing-error-code.json +1 -1
  1188. package/dist/lib/schemas-data/3.2/enums/response-type.json +1 -1
  1189. package/dist/lib/schemas-data/3.2/enums/restricted-attribute.json +1 -1
  1190. package/dist/lib/schemas-data/3.2/enums/right-type.json +1 -1
  1191. package/dist/lib/schemas-data/3.2/enums/right-use.json +1 -1
  1192. package/dist/lib/schemas-data/3.2/enums/rights-billing-period.json +1 -1
  1193. package/dist/lib/schemas-data/3.2/enums/scan-type.json +1 -1
  1194. package/dist/lib/schemas-data/3.2/enums/seller-policy-decline-reason.json +1 -1
  1195. package/dist/lib/schemas-data/3.2/enums/si-session-status.json +1 -1
  1196. package/dist/lib/schemas-data/3.2/enums/signal-catalog-type.json +1 -1
  1197. package/dist/lib/schemas-data/3.2/enums/signal-source.json +1 -1
  1198. package/dist/lib/schemas-data/3.2/enums/signal-value-type.json +1 -1
  1199. package/dist/lib/schemas-data/3.2/enums/snapshot-unavailable-reason.json +1 -1
  1200. package/dist/lib/schemas-data/3.2/enums/social-placement-surface.json +1 -1
  1201. package/dist/lib/schemas-data/3.2/enums/sort-direction.json +1 -1
  1202. package/dist/lib/schemas-data/3.2/enums/sort-metric.json +1 -1
  1203. package/dist/lib/schemas-data/3.2/enums/special-category.json +1 -1
  1204. package/dist/lib/schemas-data/3.2/enums/specialism.json +1 -1
  1205. package/dist/lib/schemas-data/3.2/enums/sponsored-placement-type.json +1 -1
  1206. package/dist/lib/schemas-data/3.2/enums/talent-role.json +1 -1
  1207. package/dist/lib/schemas-data/3.2/enums/task-status.json +1 -1
  1208. package/dist/lib/schemas-data/3.2/enums/task-type.json +1 -1
  1209. package/dist/lib/schemas-data/3.2/enums/tracker-execution-actor.json +1 -1
  1210. package/dist/lib/schemas-data/3.2/enums/tracker-firing-path.json +1 -1
  1211. package/dist/lib/schemas-data/3.2/enums/transport-mode.json +1 -1
  1212. package/dist/lib/schemas-data/3.2/enums/travel-time-unit.json +1 -1
  1213. package/dist/lib/schemas-data/3.2/enums/uid-type.json +1 -1
  1214. package/dist/lib/schemas-data/3.2/enums/universal-macro.json +1 -1
  1215. package/dist/lib/schemas-data/3.2/enums/update-frequency.json +1 -1
  1216. package/dist/lib/schemas-data/3.2/enums/url-asset-type.json +1 -1
  1217. package/dist/lib/schemas-data/3.2/enums/validation-mode.json +1 -1
  1218. package/dist/lib/schemas-data/3.2/enums/vast-media-delivery-method.json +1 -1
  1219. package/dist/lib/schemas-data/3.2/enums/vast-tracking-event.json +1 -1
  1220. package/dist/lib/schemas-data/3.2/enums/vast-version.json +1 -1
  1221. package/dist/lib/schemas-data/3.2/enums/vendor-relationship.json +1 -1
  1222. package/dist/lib/schemas-data/3.2/enums/video-placement-type.json +1 -1
  1223. package/dist/lib/schemas-data/3.2/enums/view-threshold-basis.json +1 -1
  1224. package/dist/lib/schemas-data/3.2/enums/viewability-standard.json +1 -1
  1225. package/dist/lib/schemas-data/3.2/enums/warning-code.json +1 -1
  1226. package/dist/lib/schemas-data/3.2/enums/watermark-media-type.json +1 -1
  1227. package/dist/lib/schemas-data/3.2/enums/wcag-level.json +1 -1
  1228. package/dist/lib/schemas-data/3.2/enums/webhook-response-type.json +1 -1
  1229. package/dist/lib/schemas-data/3.2/enums/webhook-security-method.json +1 -1
  1230. package/dist/lib/schemas-data/3.2/error-details/accessibility-violation.json +1 -1
  1231. package/dist/lib/schemas-data/3.2/error-details/account-moved.json +2 -2
  1232. package/dist/lib/schemas-data/3.2/error-details/account-setup-required.json +1 -1
  1233. package/dist/lib/schemas-data/3.2/error-details/action-not-allowed.json +5 -5
  1234. package/dist/lib/schemas-data/3.2/error-details/agent-permission-denied.json +1 -1
  1235. package/dist/lib/schemas-data/3.2/error-details/audience-too-small.json +1 -1
  1236. package/dist/lib/schemas-data/3.2/error-details/authorization-required.json +3 -3
  1237. package/dist/lib/schemas-data/3.2/error-details/billing-not-permitted-for-agent.json +3 -3
  1238. package/dist/lib/schemas-data/3.2/error-details/billing-not-supported.json +2 -2
  1239. package/dist/lib/schemas-data/3.2/error-details/budget-too-low.json +1 -1
  1240. package/dist/lib/schemas-data/3.2/error-details/conflict.json +1 -1
  1241. package/dist/lib/schemas-data/3.2/error-details/creative-rejected.json +1 -1
  1242. package/dist/lib/schemas-data/3.2/error-details/creative-representation-unresolved.json +2 -2
  1243. package/dist/lib/schemas-data/3.2/error-details/creative-revision-content-mismatch.json +2 -2
  1244. package/dist/lib/schemas-data/3.2/error-details/execution-requirement-unmet.json +2 -2
  1245. package/dist/lib/schemas-data/3.2/error-details/governance-agent-not-accepted.json +2 -2
  1246. package/dist/lib/schemas-data/3.2/error-details/macro-resolution-failed.json +2 -2
  1247. package/dist/lib/schemas-data/3.2/error-details/policy-violation.json +1 -1
  1248. package/dist/lib/schemas-data/3.2/error-details/rate-limited.json +1 -1
  1249. package/dist/lib/schemas-data/3.2/error-details/requote-required.json +3 -3
  1250. package/dist/lib/schemas-data/3.2/error-details/stale-response.json +1 -1
  1251. package/dist/lib/schemas-data/3.2/error-details/unsupported-refinement-dimension.json +1 -1
  1252. package/dist/lib/schemas-data/3.2/error-details/vast-version-mismatch.json +6 -6
  1253. package/dist/lib/schemas-data/3.2/error-details/vendor-error-codes.json +1 -1
  1254. package/dist/lib/schemas-data/3.2/error-details/version-unsupported.json +2 -2
  1255. package/dist/lib/schemas-data/3.2/extensions/extension-meta.json +1 -1
  1256. package/dist/lib/schemas-data/3.2/extensions/index.json +2 -2
  1257. package/dist/lib/schemas-data/3.2/formats/canonical/_base.json +5 -5
  1258. package/dist/lib/schemas-data/3.2/formats/canonical/agent_placement.json +2 -2
  1259. package/dist/lib/schemas-data/3.2/formats/canonical/audio_daast.json +4 -4
  1260. package/dist/lib/schemas-data/3.2/formats/canonical/audio_hosted.json +2 -2
  1261. package/dist/lib/schemas-data/3.2/formats/canonical/audio_vast.json +5 -5
  1262. package/dist/lib/schemas-data/3.2/formats/canonical/coordinated_placements.json +18 -18
  1263. package/dist/lib/schemas-data/3.2/formats/canonical/display_tag.json +2 -2
  1264. package/dist/lib/schemas-data/3.2/formats/canonical/html5.json +2 -2
  1265. package/dist/lib/schemas-data/3.2/formats/canonical/image.json +5 -5
  1266. package/dist/lib/schemas-data/3.2/formats/canonical/image_carousel.json +2 -2
  1267. package/dist/lib/schemas-data/3.2/formats/canonical/native_in_feed.json +5 -5
  1268. package/dist/lib/schemas-data/3.2/formats/canonical/responsive_creative.json +2 -2
  1269. package/dist/lib/schemas-data/3.2/formats/canonical/seller_rendered_stateful_display.json +3 -3
  1270. package/dist/lib/schemas-data/3.2/formats/canonical/sponsored_placement.json +4 -4
  1271. package/dist/lib/schemas-data/3.2/formats/canonical/video_hosted.json +3 -3
  1272. package/dist/lib/schemas-data/3.2/formats/canonical/video_vast.json +8 -8
  1273. package/dist/lib/schemas-data/3.2/governance/accepted-governance-agents.json +1 -1
  1274. package/dist/lib/schemas-data/3.2/governance/attribute-definition.json +1 -1
  1275. package/dist/lib/schemas-data/3.2/governance/audience-constraints.json +3 -3
  1276. package/dist/lib/schemas-data/3.2/governance/check-governance-request.json +10 -10
  1277. package/dist/lib/schemas-data/3.2/governance/check-governance-response.json +8 -8
  1278. package/dist/lib/schemas-data/3.2/governance/get-plan-audit-logs-request.json +5 -5
  1279. package/dist/lib/schemas-data/3.2/governance/get-plan-audit-logs-response.json +14 -14
  1280. package/dist/lib/schemas-data/3.2/governance/policy-category-definition.json +2 -2
  1281. package/dist/lib/schemas-data/3.2/governance/policy-entry.json +7 -7
  1282. package/dist/lib/schemas-data/3.2/governance/policy-ref.json +1 -1
  1283. package/dist/lib/schemas-data/3.2/governance/report-plan-adjustment-request.json +4 -4
  1284. package/dist/lib/schemas-data/3.2/governance/report-plan-adjustment-response.json +4 -4
  1285. package/dist/lib/schemas-data/3.2/governance/report-plan-outcome-request.json +8 -8
  1286. package/dist/lib/schemas-data/3.2/governance/report-plan-outcome-response.json +5 -5
  1287. package/dist/lib/schemas-data/3.2/governance/reported-outcome-error.json +1 -1
  1288. package/dist/lib/schemas-data/3.2/governance/sync-plans-request.json +14 -14
  1289. package/dist/lib/schemas-data/3.2/governance/sync-plans-response.json +6 -6
  1290. package/dist/lib/schemas-data/3.2/index.json +639 -639
  1291. package/dist/lib/schemas-data/3.2/manifest.json +3 -3
  1292. package/dist/lib/schemas-data/3.2/manifest.schema.json +1 -1
  1293. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/get-account-financials-request.json +31 -31
  1294. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/list-account-changes-request.json +56 -36
  1295. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/list-accounts-request.json +31 -31
  1296. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/report-usage-request.json +31 -31
  1297. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/sync-accounts-request.json +94 -94
  1298. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/sync-governance-request.json +30 -30
  1299. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/acquire-rights-request.json +37 -37
  1300. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/get-brand-identity-request.json +5 -5
  1301. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/get-rights-request.json +29 -29
  1302. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/search-brands-request.json +26 -26
  1303. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/update-rights-request.json +33 -33
  1304. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/verify-brand-claim-request.json +4 -4
  1305. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/verify-brand-claims-request.json +4 -4
  1306. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/collection/create-collection-list-request.json +47 -47
  1307. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/collection/delete-collection-list-request.json +30 -30
  1308. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/collection/get-collection-list-request.json +30 -30
  1309. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/collection/list-collection-lists-request.json +31 -31
  1310. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/collection/update-collection-list-request.json +47 -47
  1311. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/compliance/comply-test-controller-request.json +1265 -1211
  1312. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/calibrate-content-request.json +33 -33
  1313. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/create-content-standards-request.json +56 -56
  1314. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/get-content-standards-request.json +5 -5
  1315. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/get-media-buy-artifacts-request.json +30 -30
  1316. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/list-content-standards-request.json +7 -7
  1317. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/update-content-standards-request.json +56 -56
  1318. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/validate-content-delivery-request.json +33 -33
  1319. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/get-creative-delivery-request.json +31 -31
  1320. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/get-creative-features-request.json +257 -257
  1321. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/list-creatives-request.json +46 -46
  1322. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/list-transformers-request.json +33 -33
  1323. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/preview-creative-request.json +255 -255
  1324. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/sync-creatives-request.json +270 -270
  1325. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/validate-input-request.json +251 -251
  1326. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/governance/check-governance-request.json +377 -377
  1327. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/governance/get-plan-audit-logs-request.json +6 -6
  1328. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/governance/report-plan-adjustment-request.json +5 -5
  1329. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/governance/report-plan-outcome-request.json +87 -87
  1330. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/governance/sync-plans-request.json +63 -63
  1331. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/accept-proposal-request.json +22 -22
  1332. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/build-creative-request.json +447 -447
  1333. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/buy-products-request.json +279 -279
  1334. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/control-media-buy-request.json +211 -211
  1335. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/create-media-buy-request.json +509 -509
  1336. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/decline-proposals-request.json +13 -13
  1337. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/get-media-buy-delivery-request.json +48 -48
  1338. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/get-media-buys-request.json +33 -33
  1339. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/get-products-request.json +337 -337
  1340. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/get-reporting-status-request.json +58 -58
  1341. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/list-creative-formats-request.json +35 -35
  1342. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/list-products-request.json +324 -324
  1343. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/log-event-request.json +23 -23
  1344. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/provide-performance-feedback-request.json +66 -66
  1345. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/refine-proposals-request.json +325 -325
  1346. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/request-proposals-request.json +326 -326
  1347. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/sync-audiences-request.json +38 -38
  1348. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/sync-catalogs-request.json +51 -51
  1349. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/sync-event-sources-request.json +34 -34
  1350. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/sync-reporting-receipts-request.json +23 -23
  1351. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/sync-reporting-status-request.json +13 -13
  1352. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/update-media-buy-request.json +519 -519
  1353. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-request.json +30 -30
  1354. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/account/list-accounts-request.json +30 -30
  1355. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/account/report-usage-request.json +30 -30
  1356. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-request.json +93 -93
  1357. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/account/sync-governance-request.json +29 -29
  1358. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-request.json +45 -45
  1359. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-request.json +269 -269
  1360. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/manifest.json +1 -1
  1361. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-request.json +21 -21
  1362. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-request.json +278 -278
  1363. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-request.json +210 -210
  1364. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-request.json +12 -12
  1365. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-request.json +47 -47
  1366. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-request.json +32 -32
  1367. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/get-reporting-status-request.json +57 -57
  1368. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-request.json +323 -323
  1369. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-request.json +22 -22
  1370. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-request.json +65 -65
  1371. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-request.json +324 -324
  1372. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-request.json +325 -325
  1373. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-request.json +37 -37
  1374. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-request.json +50 -50
  1375. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-request.json +33 -33
  1376. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/sync-reporting-receipts-request.json +22 -22
  1377. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/sync-reporting-status-request.json +12 -12
  1378. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-request.json +4 -4
  1379. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/protocol/get-principal-request.json +4 -4
  1380. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-request.json +29 -29
  1381. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-request.json +34 -34
  1382. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/protocol/sync-principal-request.json +27 -27
  1383. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/create-property-list-request.json +47 -47
  1384. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/delete-property-list-request.json +30 -30
  1385. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/get-property-list-request.json +30 -30
  1386. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/list-property-lists-request.json +31 -31
  1387. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/update-property-list-request.json +47 -47
  1388. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/validate-property-delivery-request.json +36 -36
  1389. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/get-adcp-capabilities-request.json +5 -5
  1390. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/get-principal-request.json +5 -5
  1391. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/get-task-status-request.json +30 -30
  1392. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/list-tasks-request.json +35 -35
  1393. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/sync-agent-notification-configs-request.json +11 -11
  1394. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/sync-principal-request.json +28 -28
  1395. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/signals/activate-signal-request.json +31 -31
  1396. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/signals/get-signals-request.json +41 -41
  1397. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/sponsored-intelligence/si-get-offering-request.json +5 -5
  1398. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/sponsored-intelligence/si-initiate-session-request.json +37 -37
  1399. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/sponsored-intelligence/si-send-message-request.json +35 -35
  1400. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/sponsored-intelligence/si-terminate-session-request.json +5 -5
  1401. package/dist/lib/schemas-data/3.2/media-buy/accept-proposal-async-response-input-required.json +2 -2
  1402. package/dist/lib/schemas-data/3.2/media-buy/accept-proposal-async-response-submitted.json +2 -2
  1403. package/dist/lib/schemas-data/3.2/media-buy/accept-proposal-async-response-working.json +2 -2
  1404. package/dist/lib/schemas-data/3.2/media-buy/accept-proposal-request.json +14 -9
  1405. package/dist/lib/schemas-data/3.2/media-buy/accept-proposal-response.json +2 -2
  1406. package/dist/lib/schemas-data/3.2/media-buy/acceptance-context.json +3 -3
  1407. package/dist/lib/schemas-data/3.2/media-buy/acceptance-policy-catalog.json +4 -4
  1408. package/dist/lib/schemas-data/3.2/media-buy/acceptance-policy-profile-ref.json +1 -1
  1409. package/dist/lib/schemas-data/3.2/media-buy/acceptance-policy-profile.json +3 -3
  1410. package/dist/lib/schemas-data/3.2/media-buy/acceptance-policy-requirement.json +3 -3
  1411. package/dist/lib/schemas-data/3.2/media-buy/acceptance-policy-rule.json +3 -3
  1412. package/dist/lib/schemas-data/3.2/media-buy/build-creative-async-response-input-required.json +4 -4
  1413. package/dist/lib/schemas-data/3.2/media-buy/build-creative-async-response-submitted.json +4 -4
  1414. package/dist/lib/schemas-data/3.2/media-buy/build-creative-async-response-working.json +3 -3
  1415. package/dist/lib/schemas-data/3.2/media-buy/build-creative-request.json +19 -19
  1416. package/dist/lib/schemas-data/3.2/media-buy/build-creative-response.json +35 -35
  1417. package/dist/lib/schemas-data/3.2/media-buy/buy-products-async-response-input-required.json +2 -2
  1418. package/dist/lib/schemas-data/3.2/media-buy/buy-products-async-response-submitted.json +2 -2
  1419. package/dist/lib/schemas-data/3.2/media-buy/buy-products-async-response-working.json +2 -2
  1420. package/dist/lib/schemas-data/3.2/media-buy/buy-products-request.json +21 -18
  1421. package/dist/lib/schemas-data/3.2/media-buy/buy-products-response.json +2 -2
  1422. package/dist/lib/schemas-data/3.2/media-buy/change-term-constraints.json +4 -4
  1423. package/dist/lib/schemas-data/3.2/media-buy/change-term.json +6 -6
  1424. package/dist/lib/schemas-data/3.2/media-buy/commercial-terms.json +12 -12
  1425. package/dist/lib/schemas-data/3.2/media-buy/control-media-buy-async-response-input-required.json +2 -2
  1426. package/dist/lib/schemas-data/3.2/media-buy/control-media-buy-async-response-submitted.json +2 -2
  1427. package/dist/lib/schemas-data/3.2/media-buy/control-media-buy-async-response-working.json +2 -2
  1428. package/dist/lib/schemas-data/3.2/media-buy/control-media-buy-request.json +16 -13
  1429. package/dist/lib/schemas-data/3.2/media-buy/control-media-buy-response.json +12 -12
  1430. package/dist/lib/schemas-data/3.2/media-buy/create-media-buy-async-response-input-required.json +4 -4
  1431. package/dist/lib/schemas-data/3.2/media-buy/create-media-buy-async-response-submitted.json +4 -4
  1432. package/dist/lib/schemas-data/3.2/media-buy/create-media-buy-async-response-working.json +3 -3
  1433. package/dist/lib/schemas-data/3.2/media-buy/create-media-buy-request.json +19 -19
  1434. package/dist/lib/schemas-data/3.2/media-buy/create-media-buy-response.json +23 -23
  1435. package/dist/lib/schemas-data/3.2/media-buy/decline-proposals-async-response-input-required.json +2 -2
  1436. package/dist/lib/schemas-data/3.2/media-buy/decline-proposals-async-response-submitted.json +2 -2
  1437. package/dist/lib/schemas-data/3.2/media-buy/decline-proposals-async-response-working.json +2 -2
  1438. package/dist/lib/schemas-data/3.2/media-buy/decline-proposals-request.json +12 -7
  1439. package/dist/lib/schemas-data/3.2/media-buy/decline-proposals-response.json +5 -5
  1440. package/dist/lib/schemas-data/3.2/media-buy/get-media-buy-delivery-request.json +47 -47
  1441. package/dist/lib/schemas-data/3.2/media-buy/get-media-buy-delivery-response.json +81 -81
  1442. package/dist/lib/schemas-data/3.2/media-buy/get-media-buys-request.json +9 -9
  1443. package/dist/lib/schemas-data/3.2/media-buy/get-media-buys-response.json +52 -52
  1444. package/dist/lib/schemas-data/3.2/media-buy/get-products-async-response-input-required.json +4 -4
  1445. package/dist/lib/schemas-data/3.2/media-buy/get-products-async-response-submitted.json +4 -4
  1446. package/dist/lib/schemas-data/3.2/media-buy/get-products-async-response-working.json +3 -3
  1447. package/dist/lib/schemas-data/3.2/media-buy/get-products-rejected.json +5 -5
  1448. package/dist/lib/schemas-data/3.2/media-buy/get-products-request.json +19 -19
  1449. package/dist/lib/schemas-data/3.2/media-buy/get-products-response.json +13 -13
  1450. package/dist/lib/schemas-data/3.2/media-buy/get-products-targeting-resolution.json +3 -3
  1451. package/dist/lib/schemas-data/3.2/media-buy/get-reporting-status-request.json +10 -10
  1452. package/dist/lib/schemas-data/3.2/media-buy/get-reporting-status-response.json +27 -27
  1453. package/dist/lib/schemas-data/3.2/media-buy/legacy-purchase-continuation-input.json +2 -2
  1454. package/dist/lib/schemas-data/3.2/media-buy/list-creative-formats-request.json +14 -14
  1455. package/dist/lib/schemas-data/3.2/media-buy/list-creative-formats-response.json +9 -9
  1456. package/dist/lib/schemas-data/3.2/media-buy/list-products-request.json +12 -9
  1457. package/dist/lib/schemas-data/3.2/media-buy/list-products-response.json +5 -5
  1458. package/dist/lib/schemas-data/3.2/media-buy/log-event-request.json +5 -5
  1459. package/dist/lib/schemas-data/3.2/media-buy/log-event-response.json +8 -8
  1460. package/dist/lib/schemas-data/3.2/media-buy/media-buy-commitment-response.json +13 -13
  1461. package/dist/lib/schemas-data/3.2/media-buy/media-buy-delivery-webhook-result.json +11 -11
  1462. package/dist/lib/schemas-data/3.2/media-buy/outcome-target.json +4 -4
  1463. package/dist/lib/schemas-data/3.2/media-buy/package-control.json +9 -9
  1464. package/dist/lib/schemas-data/3.2/media-buy/package-request.json +31 -31
  1465. package/dist/lib/schemas-data/3.2/media-buy/package-update.json +14 -14
  1466. package/dist/lib/schemas-data/3.2/media-buy/product-discovery-criteria.json +9 -9
  1467. package/dist/lib/schemas-data/3.2/media-buy/product-fields.json +1 -1
  1468. package/dist/lib/schemas-data/3.2/media-buy/product-purchase-input.json +22 -22
  1469. package/dist/lib/schemas-data/3.2/media-buy/product-purchase.json +13 -13
  1470. package/dist/lib/schemas-data/3.2/media-buy/product-refinement.json +1 -1
  1471. package/dist/lib/schemas-data/3.2/media-buy/proposal-budget-constraint.json +1 -1
  1472. package/dist/lib/schemas-data/3.2/media-buy/proposal-decline.json +2 -2
  1473. package/dist/lib/schemas-data/3.2/media-buy/proposal-refinement.json +4 -4
  1474. package/dist/lib/schemas-data/3.2/media-buy/provide-performance-feedback-request.json +5 -5
  1475. package/dist/lib/schemas-data/3.2/media-buy/provide-performance-feedback-response.json +8 -8
  1476. package/dist/lib/schemas-data/3.2/media-buy/refine-proposals-async-response-input-required.json +2 -2
  1477. package/dist/lib/schemas-data/3.2/media-buy/refine-proposals-async-response-submitted.json +2 -2
  1478. package/dist/lib/schemas-data/3.2/media-buy/refine-proposals-async-response-working.json +2 -2
  1479. package/dist/lib/schemas-data/3.2/media-buy/refine-proposals-request.json +11 -6
  1480. package/dist/lib/schemas-data/3.2/media-buy/refine-proposals-response.json +12 -12
  1481. package/dist/lib/schemas-data/3.2/media-buy/request-proposals-async-response-input-required.json +2 -2
  1482. package/dist/lib/schemas-data/3.2/media-buy/request-proposals-async-response-submitted.json +2 -2
  1483. package/dist/lib/schemas-data/3.2/media-buy/request-proposals-async-response-working.json +2 -2
  1484. package/dist/lib/schemas-data/3.2/media-buy/request-proposals-request.json +12 -9
  1485. package/dist/lib/schemas-data/3.2/media-buy/request-proposals-response.json +10 -10
  1486. package/dist/lib/schemas-data/3.2/media-buy/sync-audiences-request.json +9 -9
  1487. package/dist/lib/schemas-data/3.2/media-buy/sync-audiences-response.json +15 -15
  1488. package/dist/lib/schemas-data/3.2/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  1489. package/dist/lib/schemas-data/3.2/media-buy/sync-catalogs-async-response-submitted.json +4 -4
  1490. package/dist/lib/schemas-data/3.2/media-buy/sync-catalogs-async-response-working.json +3 -3
  1491. package/dist/lib/schemas-data/3.2/media-buy/sync-catalogs-request.json +10 -10
  1492. package/dist/lib/schemas-data/3.2/media-buy/sync-catalogs-response.json +20 -20
  1493. package/dist/lib/schemas-data/3.2/media-buy/sync-event-sources-request.json +8 -8
  1494. package/dist/lib/schemas-data/3.2/media-buy/sync-event-sources-response.json +14 -14
  1495. package/dist/lib/schemas-data/3.2/media-buy/sync-reporting-receipts-request.json +9 -9
  1496. package/dist/lib/schemas-data/3.2/media-buy/sync-reporting-receipts-response.json +10 -10
  1497. package/dist/lib/schemas-data/3.2/media-buy/sync-reporting-status-request.json +12 -7
  1498. package/dist/lib/schemas-data/3.2/media-buy/sync-reporting-status-response.json +8 -8
  1499. package/dist/lib/schemas-data/3.2/media-buy/update-media-buy-async-response-input-required.json +3 -3
  1500. package/dist/lib/schemas-data/3.2/media-buy/update-media-buy-async-response-submitted.json +4 -4
  1501. package/dist/lib/schemas-data/3.2/media-buy/update-media-buy-async-response-working.json +3 -3
  1502. package/dist/lib/schemas-data/3.2/media-buy/update-media-buy-request.json +15 -15
  1503. package/dist/lib/schemas-data/3.2/media-buy/update-media-buy-response.json +21 -21
  1504. package/dist/lib/schemas-data/3.2/pricing-options/cpa-option.json +4 -4
  1505. package/dist/lib/schemas-data/3.2/pricing-options/cpc-option.json +4 -4
  1506. package/dist/lib/schemas-data/3.2/pricing-options/cpcv-option.json +4 -4
  1507. package/dist/lib/schemas-data/3.2/pricing-options/cpm-option.json +4 -4
  1508. package/dist/lib/schemas-data/3.2/pricing-options/cpp-option.json +5 -5
  1509. package/dist/lib/schemas-data/3.2/pricing-options/cpv-option.json +4 -4
  1510. package/dist/lib/schemas-data/3.2/pricing-options/flat-rate-option.json +4 -4
  1511. package/dist/lib/schemas-data/3.2/pricing-options/price-breakdown.json +2 -2
  1512. package/dist/lib/schemas-data/3.2/pricing-options/price-guidance.json +1 -1
  1513. package/dist/lib/schemas-data/3.2/pricing-options/revenue-share-option.json +2 -2
  1514. package/dist/lib/schemas-data/3.2/pricing-options/time-option.json +4 -4
  1515. package/dist/lib/schemas-data/3.2/pricing-options/vcpm-option.json +4 -4
  1516. package/dist/lib/schemas-data/3.2/property/authorization-result.json +1 -1
  1517. package/dist/lib/schemas-data/3.2/property/base-property-source.json +4 -4
  1518. package/dist/lib/schemas-data/3.2/property/create-property-list-request.json +8 -8
  1519. package/dist/lib/schemas-data/3.2/property/create-property-list-response.json +6 -6
  1520. package/dist/lib/schemas-data/3.2/property/delete-property-list-request.json +5 -5
  1521. package/dist/lib/schemas-data/3.2/property/delete-property-list-response.json +5 -5
  1522. package/dist/lib/schemas-data/3.2/property/delivery-record.json +3 -3
  1523. package/dist/lib/schemas-data/3.2/property/get-property-list-request.json +5 -5
  1524. package/dist/lib/schemas-data/3.2/property/get-property-list-response.json +9 -9
  1525. package/dist/lib/schemas-data/3.2/property/list-property-lists-request.json +6 -6
  1526. package/dist/lib/schemas-data/3.2/property/list-property-lists-response.json +7 -7
  1527. package/dist/lib/schemas-data/3.2/property/property-error.json +2 -2
  1528. package/dist/lib/schemas-data/3.2/property/property-feature-definition.json +2 -2
  1529. package/dist/lib/schemas-data/3.2/property/property-feature-result.json +4 -4
  1530. package/dist/lib/schemas-data/3.2/property/property-feature-value.json +2 -2
  1531. package/dist/lib/schemas-data/3.2/property/property-feature.json +1 -1
  1532. package/dist/lib/schemas-data/3.2/property/property-list-changed-webhook.json +2 -2
  1533. package/dist/lib/schemas-data/3.2/property/property-list-filters.json +5 -5
  1534. package/dist/lib/schemas-data/3.2/property/property-list.json +6 -6
  1535. package/dist/lib/schemas-data/3.2/property/update-property-list-request.json +8 -8
  1536. package/dist/lib/schemas-data/3.2/property/update-property-list-response.json +6 -6
  1537. package/dist/lib/schemas-data/3.2/property/validate-property-delivery-request.json +6 -6
  1538. package/dist/lib/schemas-data/3.2/property/validate-property-delivery-response.json +6 -6
  1539. package/dist/lib/schemas-data/3.2/property/validation-result.json +5 -5
  1540. package/dist/lib/schemas-data/3.2/protocol/get-adcp-capabilities-request.json +4 -4
  1541. package/dist/lib/schemas-data/3.2/protocol/get-adcp-capabilities-response.json +53 -53
  1542. package/dist/lib/schemas-data/3.2/protocol/get-principal-request.json +4 -4
  1543. package/dist/lib/schemas-data/3.2/protocol/get-principal-response.json +9 -9
  1544. package/dist/lib/schemas-data/3.2/protocol/get-task-status-request.json +5 -5
  1545. package/dist/lib/schemas-data/3.2/protocol/get-task-status-response.json +10 -10
  1546. package/dist/lib/schemas-data/3.2/protocol/list-tasks-request.json +13 -13
  1547. package/dist/lib/schemas-data/3.2/protocol/list-tasks-response.json +8 -8
  1548. package/dist/lib/schemas-data/3.2/protocol/sync-agent-notification-configs-request.json +5 -5
  1549. package/dist/lib/schemas-data/3.2/protocol/sync-agent-notification-configs-response.json +7 -7
  1550. package/dist/lib/schemas-data/3.2/protocol/sync-principal-request.json +8 -8
  1551. package/dist/lib/schemas-data/3.2/protocol/sync-principal-response.json +10 -10
  1552. package/dist/lib/schemas-data/3.2/registries/v1-canonical-mapping.json +2 -2
  1553. package/dist/lib/schemas-data/3.2/signals/activate-signal-request.json +6 -6
  1554. package/dist/lib/schemas-data/3.2/signals/activate-signal-response.json +9 -9
  1555. package/dist/lib/schemas-data/3.2/signals/get-signals-async-response-submitted.json +4 -4
  1556. package/dist/lib/schemas-data/3.2/signals/get-signals-async-response-working.json +3 -3
  1557. package/dist/lib/schemas-data/3.2/signals/get-signals-request.json +11 -11
  1558. package/dist/lib/schemas-data/3.2/signals/get-signals-response.json +17 -17
  1559. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-capabilities.json +1 -1
  1560. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-context-use.json +1 -1
  1561. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-get-offering-request.json +4 -4
  1562. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-get-offering-response.json +9 -9
  1563. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-identity.json +1 -1
  1564. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-initiate-session-request.json +7 -7
  1565. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-initiate-session-response.json +10 -10
  1566. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-send-message-request.json +5 -5
  1567. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-send-message-response.json +10 -10
  1568. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-sponsored-context-receipt.json +4 -4
  1569. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-sponsored-context.json +4 -4
  1570. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-terminate-session-request.json +4 -4
  1571. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-terminate-session-response.json +7 -7
  1572. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-ui-element.json +1 -1
  1573. package/dist/lib/schemas-data/3.2/trusted-match/available-package.json +5 -5
  1574. package/dist/lib/schemas-data/3.2/trusted-match/context-match-request.json +5 -5
  1575. package/dist/lib/schemas-data/3.2/trusted-match/context-match-response.json +4 -4
  1576. package/dist/lib/schemas-data/3.2/trusted-match/error.json +1 -1
  1577. package/dist/lib/schemas-data/3.2/trusted-match/identity-match-request.json +4 -4
  1578. package/dist/lib/schemas-data/3.2/trusted-match/identity-match-response.json +4 -4
  1579. package/dist/lib/schemas-data/3.2/trusted-match/offer-price.json +1 -1
  1580. package/dist/lib/schemas-data/3.2/trusted-match/offer.json +5 -5
  1581. package/dist/lib/schemas-data/3.2/trusted-match/provider-context-match-response.json +4 -4
  1582. package/dist/lib/schemas-data/3.2/trusted-match/provider-identity-match-response.json +4 -4
  1583. package/dist/lib/schemas-data/3.2/trusted-match/provider-registration.json +2 -2
  1584. package/dist/lib/schemas-data/3.2/trusted-match/publisher-targeting-kv-config.json +1 -1
  1585. package/dist/lib/schemas-data/3.2/trusted-match/publisher-tmpx-config.json +1 -1
  1586. package/dist/lib/schemas-data/3.2/trusted-match/tmpx-chunk.json +1 -1
  1587. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  1588. package/dist/lib/server/account-sync-contract.d.mts +14 -0
  1589. package/dist/lib/server/account-sync-contract.d.ts +14 -0
  1590. package/dist/lib/server/account-sync-contract.js +225 -0
  1591. package/dist/lib/server/account-sync-contract.mjs +197 -0
  1592. package/dist/lib/server/adcp-server.js +5 -0
  1593. package/dist/lib/server/adcp-server.mjs +10 -0
  1594. package/dist/lib/server/auth-signature.d.mts +10 -0
  1595. package/dist/lib/server/auth-signature.d.ts +10 -0
  1596. package/dist/lib/server/auth-signature.js +61 -2
  1597. package/dist/lib/server/auth-signature.mjs +65 -2
  1598. package/dist/lib/server/auth.d.mts +6 -0
  1599. package/dist/lib/server/auth.d.ts +6 -0
  1600. package/dist/lib/server/auth.js +6 -0
  1601. package/dist/lib/server/auth.mjs +6 -0
  1602. package/dist/lib/server/create-adcp-server.d.mts +19 -5
  1603. package/dist/lib/server/create-adcp-server.d.ts +19 -5
  1604. package/dist/lib/server/create-adcp-server.js +238 -19
  1605. package/dist/lib/server/create-adcp-server.mjs +240 -10
  1606. package/dist/lib/server/decisioning/account.d.mts +24 -1
  1607. package/dist/lib/server/decisioning/account.d.ts +24 -1
  1608. package/dist/lib/server/decisioning/index.d.mts +1 -1
  1609. package/dist/lib/server/decisioning/index.d.ts +1 -1
  1610. package/dist/lib/server/decisioning/runtime/from-platform.d.mts +0 -50
  1611. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +0 -50
  1612. package/dist/lib/server/decisioning/runtime/from-platform.js +61 -11
  1613. package/dist/lib/server/decisioning/runtime/from-platform.mjs +65 -12
  1614. package/dist/lib/server/index.d.mts +2 -0
  1615. package/dist/lib/server/index.d.ts +2 -0
  1616. package/dist/lib/server/index.js +12 -0
  1617. package/dist/lib/server/index.mjs +12 -0
  1618. package/dist/lib/server/notification-subscriptions/runtime.js +9 -1
  1619. package/dist/lib/server/notification-subscriptions/runtime.mjs +9 -1
  1620. package/dist/lib/server/notification-subscriptions/types.d.mts +5 -0
  1621. package/dist/lib/server/notification-subscriptions/types.d.ts +5 -0
  1622. package/dist/lib/server/principal/types.d.mts +1 -1
  1623. package/dist/lib/server/principal/types.d.ts +1 -1
  1624. package/dist/lib/server/serve.js +5 -0
  1625. package/dist/lib/server/serve.mjs +5 -0
  1626. package/dist/lib/server/webhook-delivery/recovery.d.mts +1 -0
  1627. package/dist/lib/server/webhook-delivery/recovery.d.ts +1 -0
  1628. package/dist/lib/server/webhook-delivery/recovery.js +4 -0
  1629. package/dist/lib/server/webhook-delivery/recovery.mjs +4 -0
  1630. package/dist/lib/server/webhook-emitter.d.mts +10 -0
  1631. package/dist/lib/server/webhook-emitter.d.ts +10 -0
  1632. package/dist/lib/server/webhook-emitter.js +22 -0
  1633. package/dist/lib/server/webhook-emitter.mjs +22 -0
  1634. package/dist/lib/server/wire-spec-fields.generated.d.mts +32 -32
  1635. package/dist/lib/server/wire-spec-fields.generated.d.ts +32 -32
  1636. package/dist/lib/server/wire-spec-fields.generated.js +32 -32
  1637. package/dist/lib/server/wire-spec-fields.generated.mjs +32 -32
  1638. package/dist/lib/signing/agent-context.d.mts +0 -5
  1639. package/dist/lib/signing/agent-context.d.ts +0 -5
  1640. package/dist/lib/signing/agent-context.js +9 -1
  1641. package/dist/lib/signing/agent-context.mjs +9 -1
  1642. package/dist/lib/signing/agent-fetch.js +27 -2
  1643. package/dist/lib/signing/agent-fetch.mjs +32 -2
  1644. package/dist/lib/signing/agent-resolver/canonicalize.d.mts +10 -15
  1645. package/dist/lib/signing/agent-resolver/canonicalize.d.ts +10 -15
  1646. package/dist/lib/signing/agent-resolver/canonicalize.js +17 -5
  1647. package/dist/lib/signing/agent-resolver/canonicalize.mjs +16 -5
  1648. package/dist/lib/signing/agent-resolver/index.d.mts +1 -0
  1649. package/dist/lib/signing/agent-resolver/index.d.ts +1 -0
  1650. package/dist/lib/signing/agent-resolver/index.js +5 -0
  1651. package/dist/lib/signing/agent-resolver/index.mjs +3 -0
  1652. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.mts +3 -2
  1653. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.ts +3 -2
  1654. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.js +30 -3
  1655. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.mjs +30 -3
  1656. package/dist/lib/signing/agent-resolver/strict-json.d.mts +2 -2
  1657. package/dist/lib/signing/agent-resolver/strict-json.d.ts +2 -2
  1658. package/dist/lib/signing/agent-resolver/strict-json.js +5 -3
  1659. package/dist/lib/signing/agent-resolver/strict-json.mjs +5 -3
  1660. package/dist/lib/signing/brand-jwks.d.mts +2 -2
  1661. package/dist/lib/signing/brand-jwks.d.ts +2 -2
  1662. package/dist/lib/signing/brand-jwks.js +4 -4
  1663. package/dist/lib/signing/brand-jwks.mjs +4 -4
  1664. package/dist/lib/signing/client.d.mts +1 -0
  1665. package/dist/lib/signing/client.d.ts +1 -0
  1666. package/dist/lib/signing/client.js +5 -0
  1667. package/dist/lib/signing/client.mjs +3 -0
  1668. package/dist/lib/signing/jwks-https.d.mts +1 -1
  1669. package/dist/lib/signing/jwks-https.d.ts +1 -1
  1670. package/dist/lib/signing/jwks-https.js +1 -1
  1671. package/dist/lib/signing/jwks-https.mjs +1 -1
  1672. package/dist/lib/signing/jwks.d.mts +11 -3
  1673. package/dist/lib/signing/jwks.d.ts +11 -3
  1674. package/dist/lib/signing/jwks.js +1 -1
  1675. package/dist/lib/signing/jwks.mjs +1 -1
  1676. package/dist/lib/signing/parser.d.mts +1 -1
  1677. package/dist/lib/signing/parser.d.ts +1 -1
  1678. package/dist/lib/signing/parser.js +5 -3
  1679. package/dist/lib/signing/parser.mjs +6 -4
  1680. package/dist/lib/signing/revocation.d.mts +4 -1
  1681. package/dist/lib/signing/revocation.d.ts +4 -1
  1682. package/dist/lib/signing/revocation.js +33 -3
  1683. package/dist/lib/signing/revocation.mjs +31 -2
  1684. package/dist/lib/signing/server.d.mts +1 -1
  1685. package/dist/lib/signing/server.d.ts +1 -1
  1686. package/dist/lib/signing/server.js +4 -0
  1687. package/dist/lib/signing/server.mjs +4 -0
  1688. package/dist/lib/signing/types.d.mts +3 -0
  1689. package/dist/lib/signing/types.d.ts +3 -0
  1690. package/dist/lib/signing/verifier.js +8 -0
  1691. package/dist/lib/signing/verifier.mjs +9 -0
  1692. package/dist/lib/signing/web-bot-auth.d.mts +117 -0
  1693. package/dist/lib/signing/web-bot-auth.d.ts +117 -0
  1694. package/dist/lib/signing/web-bot-auth.js +660 -0
  1695. package/dist/lib/signing/web-bot-auth.mjs +624 -0
  1696. package/dist/lib/testing/client.d.mts +1 -4
  1697. package/dist/lib/testing/client.d.ts +1 -4
  1698. package/dist/lib/testing/client.js +141 -20
  1699. package/dist/lib/testing/client.mjs +137 -19
  1700. package/dist/lib/testing/compliance/comply.js +29 -10
  1701. package/dist/lib/testing/compliance/comply.mjs +37 -11
  1702. package/dist/lib/testing/storyboard/account-sync-contract.d.mts +3 -0
  1703. package/dist/lib/testing/storyboard/account-sync-contract.d.ts +3 -0
  1704. package/dist/lib/testing/storyboard/account-sync-contract.js +79 -0
  1705. package/dist/lib/testing/storyboard/account-sync-contract.mjs +55 -0
  1706. package/dist/lib/testing/storyboard/default-invariants.js +2 -0
  1707. package/dist/lib/testing/storyboard/default-invariants.mjs +2 -0
  1708. package/dist/lib/testing/storyboard/request-signing/builder.js +111 -12
  1709. package/dist/lib/testing/storyboard/request-signing/builder.mjs +112 -13
  1710. package/dist/lib/testing/storyboard/request-signing/grader.js +37 -7
  1711. package/dist/lib/testing/storyboard/request-signing/grader.mjs +37 -7
  1712. package/dist/lib/testing/storyboard/runner.js +23 -8
  1713. package/dist/lib/testing/storyboard/runner.mjs +24 -8
  1714. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  1715. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  1716. package/dist/lib/types/adcp.d.mts +4 -0
  1717. package/dist/lib/types/adcp.d.ts +4 -0
  1718. package/dist/lib/types/comply-test-controller.d.ts +1 -1
  1719. package/dist/lib/types/core.generated.d.mts +23 -15
  1720. package/dist/lib/types/core.generated.d.ts +23 -15
  1721. package/dist/lib/types/create-media-buy.d.ts +12 -4
  1722. package/dist/lib/types/get-media-buys.d.ts +11 -3
  1723. package/dist/lib/types/get-reporting-status.d.ts +11 -3
  1724. package/dist/lib/types/inline-enums.generated.d.mts +1 -1
  1725. package/dist/lib/types/inline-enums.generated.d.ts +1 -1
  1726. package/dist/lib/types/inline-enums.generated.js +1 -1
  1727. package/dist/lib/types/inline-enums.generated.mjs +1 -1
  1728. package/dist/lib/types/list-account-changes.d.ts +2 -6
  1729. package/dist/lib/types/list-accounts.d.ts +11 -3
  1730. package/dist/lib/types/list-creatives.d.ts +11 -3
  1731. package/dist/lib/types/manifest.generated.d.mts +3 -3
  1732. package/dist/lib/types/manifest.generated.d.ts +3 -3
  1733. package/dist/lib/types/per-tool-index.json +1 -1
  1734. package/dist/lib/types/schemas.generated.d.ts +186 -50
  1735. package/dist/lib/types/schemas.generated.js +52 -30
  1736. package/dist/lib/types/schemas.generated.mjs +52 -30
  1737. package/dist/lib/types/search-brands.d.ts +1 -1
  1738. package/dist/lib/types/sync-accounts.d.ts +11 -3
  1739. package/dist/lib/types/sync-creatives.d.ts +11 -3
  1740. package/dist/lib/types/tools.generated.d.mts +13 -9
  1741. package/dist/lib/types/tools.generated.d.ts +13 -9
  1742. package/dist/lib/types/update-media-buy.d.ts +1 -1
  1743. package/dist/lib/types/verify-brand-claim.d.ts +1 -1
  1744. package/dist/lib/utils/capabilities.d.mts +3 -0
  1745. package/dist/lib/utils/capabilities.d.ts +3 -0
  1746. package/dist/lib/utils/capabilities.js +8 -0
  1747. package/dist/lib/utils/capabilities.mjs +8 -0
  1748. package/dist/lib/utils/reporting-status-response.js +10 -0
  1749. package/dist/lib/utils/reporting-status-response.mjs +10 -0
  1750. package/dist/lib/v2/projection/creative-delivery.d.mts +5 -9
  1751. package/dist/lib/v2/projection/creative-delivery.d.ts +5 -9
  1752. package/dist/lib/v2/projection/creative-delivery.js +26 -10
  1753. package/dist/lib/v2/projection/creative-delivery.mjs +26 -10
  1754. package/dist/lib/v2/projection/index.d.mts +1 -1
  1755. package/dist/lib/v2/projection/index.d.ts +1 -1
  1756. package/dist/lib/v2/projection/legacy-routes.d.mts +65 -5
  1757. package/dist/lib/v2/projection/legacy-routes.d.ts +65 -5
  1758. package/dist/lib/v2/projection/legacy-routes.js +88 -5
  1759. package/dist/lib/v2/projection/legacy-routes.mjs +84 -5
  1760. package/dist/lib/validation/schema-loader.d.mts +2 -0
  1761. package/dist/lib/validation/schema-loader.d.ts +2 -0
  1762. package/dist/lib/validation/schema-loader.js +43 -4
  1763. package/dist/lib/validation/schema-loader.mjs +39 -3
  1764. package/dist/lib/validation/sync-creatives.d.mts +6 -3
  1765. package/dist/lib/validation/sync-creatives.d.ts +6 -3
  1766. package/dist/lib/version.d.mts +7 -7
  1767. package/dist/lib/version.d.ts +7 -7
  1768. package/dist/lib/version.js +7 -6
  1769. package/dist/lib/version.mjs +7 -6
  1770. package/docs/TYPE-SUMMARY.md +2 -2
  1771. package/docs/guides/CONFORMANCE.md +1 -1
  1772. package/docs/guides/DISCOVERY-CACHE-AND-SESSION-REUSE.md +4 -0
  1773. package/docs/guides/FIRST-CALL-TO-A-SELLER.md +66 -7
  1774. package/docs/guides/REPORTING-LEDGER-CUTOVER.md +1 -1
  1775. package/docs/guides/REPORTING-LEDGER.md +313 -33
  1776. package/docs/guides/REPORTING-OPERATIONS.md +229 -7
  1777. package/docs/guides/REPORTING-STABILITY.md +76 -0
  1778. package/docs/guides/account-resolution.md +101 -0
  1779. package/docs/llms.txt +5 -4
  1780. package/docs/migration-12-to-13.md +16 -0
  1781. package/docs/migration-14.x-rc-worksheet.md +8 -8
  1782. package/docs/migration-agent-identity-3.3.md +355 -0
  1783. package/docs/migration-agent-resolution-3.3.md +5 -0
  1784. package/docs/migration-reporting-row-storage-alignment.md +137 -0
  1785. package/examples/storyboards/account-sync-contract.yaml +57 -0
  1786. package/package.json +18 -3
  1787. package/compliance/cache/3.2.3/domains/creative/index.yaml +0 -367
  1788. package/compliance/cache/3.2.3/domains/creative/scenarios/billing_out_of_band.yaml +0 -178
  1789. package/compliance/cache/3.2.3/domains/creative/scenarios/canonical_supported_formats.yaml +0 -232
  1790. package/compliance/cache/3.2.3/domains/creative/scenarios/creative_features_idempotency.yaml +0 -672
  1791. package/compliance/cache/3.2.3/domains/creative/scenarios/creative_revision_identity.yaml +0 -217
  1792. package/compliance/cache/3.2.3/domains/creative/scenarios/evaluator_auth.yaml +0 -586
  1793. package/compliance/cache/3.2.3/domains/creative/scenarios/list_creatives_filter_behavior.yaml +0 -130
  1794. package/compliance/cache/3.2.3/domains/creative/scenarios/native_in_feed.yaml +0 -554
  1795. package/compliance/cache/3.2.3/domains/creative/scenarios/native_localization.yaml +0 -390
  1796. package/compliance/cache/3.2.3/domains/governance/index.yaml +0 -705
  1797. package/compliance/cache/3.2.3/domains/governance/scenarios/property_list_change_webhook_signing.yaml +0 -162
  1798. package/compliance/cache/3.2.3/domains/media-buy/index.yaml +0 -862
  1799. package/compliance/cache/3.2.3/domains/media-buy/scenarios/advanced_delivery_reporting.yaml +0 -266
  1800. package/compliance/cache/3.2.3/domains/media-buy/scenarios/audience_activation_discovery.yaml +0 -273
  1801. package/compliance/cache/3.2.3/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -385
  1802. package/compliance/cache/3.2.3/domains/media-buy/scenarios/availability_windows.yaml +0 -443
  1803. package/compliance/cache/3.2.3/domains/media-buy/scenarios/available_actions.yaml +0 -689
  1804. package/compliance/cache/3.2.3/domains/media-buy/scenarios/bidding_cost_binding.yaml +0 -152
  1805. package/compliance/cache/3.2.3/domains/media-buy/scenarios/bidding_policy_placement.yaml +0 -299
  1806. package/compliance/cache/3.2.3/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -360
  1807. package/compliance/cache/3.2.3/domains/media-buy/scenarios/canonical_formats.yaml +0 -1288
  1808. package/compliance/cache/3.2.3/domains/media-buy/scenarios/catalog_item_availability_updates.yaml +0 -935
  1809. package/compliance/cache/3.2.3/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -269
  1810. package/compliance/cache/3.2.3/domains/media-buy/scenarios/collection_selection.yaml +0 -472
  1811. package/compliance/cache/3.2.3/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -348
  1812. package/compliance/cache/3.2.3/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -265
  1813. package/compliance/cache/3.2.3/domains/media-buy/scenarios/create_media_buy_async_lifecycle.yaml +0 -430
  1814. package/compliance/cache/3.2.3/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -460
  1815. package/compliance/cache/3.2.3/domains/media-buy/scenarios/creative_reception.yaml +0 -249
  1816. package/compliance/cache/3.2.3/domains/media-buy/scenarios/cross_path_targeting_provenance.yaml +0 -443
  1817. package/compliance/cache/3.2.3/domains/media-buy/scenarios/delivery_reporting.yaml +0 -407
  1818. package/compliance/cache/3.2.3/domains/media-buy/scenarios/demographic_targeting.yaml +0 -651
  1819. package/compliance/cache/3.2.3/domains/media-buy/scenarios/dependency_impairment.yaml +0 -747
  1820. package/compliance/cache/3.2.3/domains/media-buy/scenarios/dependency_impairment_audience.yaml +0 -350
  1821. package/compliance/cache/3.2.3/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -1004
  1822. package/compliance/cache/3.2.3/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -404
  1823. package/compliance/cache/3.2.3/domains/media-buy/scenarios/external_audience_source_binding.yaml +0 -330
  1824. package/compliance/cache/3.2.3/domains/media-buy/scenarios/frequency_cap_capability_updates.yaml +0 -327
  1825. package/compliance/cache/3.2.3/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -314
  1826. package/compliance/cache/3.2.3/domains/media-buy/scenarios/geo_place_targeting.yaml +0 -1047
  1827. package/compliance/cache/3.2.3/domains/media-buy/scenarios/geo_region_all_values_support.yaml +0 -143
  1828. package/compliance/cache/3.2.3/domains/media-buy/scenarios/geo_region_exclusion_support.yaml +0 -225
  1829. package/compliance/cache/3.2.3/domains/media-buy/scenarios/geo_region_targeting.yaml +0 -999
  1830. package/compliance/cache/3.2.3/domains/media-buy/scenarios/get_products_async.yaml +0 -550
  1831. package/compliance/cache/3.2.3/domains/media-buy/scenarios/get_products_rejected.yaml +0 -190
  1832. package/compliance/cache/3.2.3/domains/media-buy/scenarios/governance_approved.yaml +0 -446
  1833. package/compliance/cache/3.2.3/domains/media-buy/scenarios/governance_conditions.yaml +0 -551
  1834. package/compliance/cache/3.2.3/domains/media-buy/scenarios/governance_denied.yaml +0 -397
  1835. package/compliance/cache/3.2.3/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -599
  1836. package/compliance/cache/3.2.3/domains/media-buy/scenarios/invalid_transitions.yaml +0 -326
  1837. package/compliance/cache/3.2.3/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -170
  1838. package/compliance/cache/3.2.3/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -303
  1839. package/compliance/cache/3.2.3/domains/media-buy/scenarios/measurement_accountability.yaml +0 -270
  1840. package/compliance/cache/3.2.3/domains/media-buy/scenarios/measurement_terms_accepted.yaml +0 -170
  1841. package/compliance/cache/3.2.3/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -168
  1842. package/compliance/cache/3.2.3/domains/media-buy/scenarios/media_buy_frequency_cap_readback.yaml +0 -330
  1843. package/compliance/cache/3.2.3/domains/media-buy/scenarios/media_buy_frequency_cap_updates.yaml +0 -432
  1844. package/compliance/cache/3.2.3/domains/media-buy/scenarios/metric_container_subsumption.yaml +0 -363
  1845. package/compliance/cache/3.2.3/domains/media-buy/scenarios/outcome_target.yaml +0 -514
  1846. package/compliance/cache/3.2.3/domains/media-buy/scenarios/outcome_target_list_products_inert.yaml +0 -93
  1847. package/compliance/cache/3.2.3/domains/media-buy/scenarios/owner_sold_channel_carriage.yaml +0 -386
  1848. package/compliance/cache/3.2.3/domains/media-buy/scenarios/package_automatic_bidding.yaml +0 -152
  1849. package/compliance/cache/3.2.3/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -128
  1850. package/compliance/cache/3.2.3/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -341
  1851. package/compliance/cache/3.2.3/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -503
  1852. package/compliance/cache/3.2.3/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -438
  1853. package/compliance/cache/3.2.3/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -480
  1854. package/compliance/cache/3.2.3/domains/media-buy/scenarios/portfolio_routing_scope.yaml +0 -167
  1855. package/compliance/cache/3.2.3/domains/media-buy/scenarios/pricing_currency_filter.yaml +0 -194
  1856. package/compliance/cache/3.2.3/domains/media-buy/scenarios/product_coverage_filters.yaml +0 -146
  1857. package/compliance/cache/3.2.3/domains/media-buy/scenarios/product_filter_behavior.yaml +0 -204
  1858. package/compliance/cache/3.2.3/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -405
  1859. package/compliance/cache/3.2.3/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -358
  1860. package/compliance/cache/3.2.3/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -546
  1861. package/compliance/cache/3.2.3/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -320
  1862. package/compliance/cache/3.2.3/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -827
  1863. package/compliance/cache/3.2.3/domains/media-buy/scenarios/read_filter_behavior.yaml +0 -300
  1864. package/compliance/cache/3.2.3/domains/media-buy/scenarios/revenue_share_pricing.yaml +0 -346
  1865. package/compliance/cache/3.2.3/domains/media-buy/scenarios/seller_optimized_budget.yaml +0 -1217
  1866. package/compliance/cache/3.2.3/domains/media-buy/scenarios/seller_optimized_min_spend_target_exceeds_package_cap.yaml +0 -175
  1867. package/compliance/cache/3.2.3/domains/media-buy/scenarios/seller_optimized_proposal_package_pacing.yaml +0 -297
  1868. package/compliance/cache/3.2.3/domains/media-buy/scenarios/targeting_aware_discovery.yaml +0 -1698
  1869. package/compliance/cache/3.2.3/domains/media-buy/scenarios/total_budget_redistribution.yaml +0 -196
  1870. package/compliance/cache/3.2.3/domains/media-buy/scenarios/typed_proposal_negotiation.yaml +0 -771
  1871. package/compliance/cache/3.2.3/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -388
  1872. package/compliance/cache/3.2.3/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -311
  1873. package/compliance/cache/3.2.3/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -589
  1874. package/compliance/cache/3.2.3/domains/media-buy/state-machine.yaml +0 -565
  1875. package/compliance/cache/3.2.3/domains/signals/index.yaml +0 -174
  1876. package/compliance/cache/3.2.3/domains/signals/scenarios/get_signals_async.yaml +0 -455
  1877. package/compliance/cache/3.2.3/index.json +0 -508
  1878. package/compliance/cache/3.2.3/protocols/creative/index.yaml +0 -367
  1879. package/compliance/cache/3.2.3/protocols/creative/scenarios/billing_out_of_band.yaml +0 -178
  1880. package/compliance/cache/3.2.3/protocols/creative/scenarios/canonical_supported_formats.yaml +0 -232
  1881. package/compliance/cache/3.2.3/protocols/creative/scenarios/creative_features_idempotency.yaml +0 -672
  1882. package/compliance/cache/3.2.3/protocols/creative/scenarios/creative_revision_identity.yaml +0 -217
  1883. package/compliance/cache/3.2.3/protocols/creative/scenarios/evaluator_auth.yaml +0 -586
  1884. package/compliance/cache/3.2.3/protocols/creative/scenarios/list_creatives_filter_behavior.yaml +0 -130
  1885. package/compliance/cache/3.2.3/protocols/creative/scenarios/native_in_feed.yaml +0 -554
  1886. package/compliance/cache/3.2.3/protocols/creative/scenarios/native_localization.yaml +0 -390
  1887. package/compliance/cache/3.2.3/protocols/governance/index.yaml +0 -705
  1888. package/compliance/cache/3.2.3/protocols/governance/scenarios/property_list_change_webhook_signing.yaml +0 -162
  1889. package/compliance/cache/3.2.3/protocols/media-buy/index.yaml +0 -862
  1890. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/advanced_delivery_reporting.yaml +0 -266
  1891. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/audience_activation_discovery.yaml +0 -273
  1892. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -385
  1893. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/availability_windows.yaml +0 -443
  1894. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/available_actions.yaml +0 -689
  1895. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/bidding_cost_binding.yaml +0 -152
  1896. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/bidding_policy_placement.yaml +0 -299
  1897. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -360
  1898. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/canonical_formats.yaml +0 -1288
  1899. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/catalog_item_availability_updates.yaml +0 -935
  1900. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -269
  1901. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/collection_selection.yaml +0 -472
  1902. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -348
  1903. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -265
  1904. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/create_media_buy_async_lifecycle.yaml +0 -430
  1905. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -460
  1906. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/creative_reception.yaml +0 -249
  1907. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/cross_path_targeting_provenance.yaml +0 -443
  1908. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -407
  1909. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/demographic_targeting.yaml +0 -651
  1910. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -747
  1911. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +0 -350
  1912. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -1004
  1913. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -404
  1914. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/external_audience_source_binding.yaml +0 -330
  1915. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/frequency_cap_capability_updates.yaml +0 -327
  1916. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -314
  1917. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/geo_place_targeting.yaml +0 -1047
  1918. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/geo_region_all_values_support.yaml +0 -143
  1919. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/geo_region_exclusion_support.yaml +0 -225
  1920. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/geo_region_targeting.yaml +0 -999
  1921. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/get_products_async.yaml +0 -550
  1922. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/get_products_rejected.yaml +0 -190
  1923. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/governance_approved.yaml +0 -446
  1924. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/governance_conditions.yaml +0 -551
  1925. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/governance_denied.yaml +0 -397
  1926. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -599
  1927. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -326
  1928. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -170
  1929. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -303
  1930. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -270
  1931. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/measurement_terms_accepted.yaml +0 -170
  1932. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -168
  1933. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/media_buy_frequency_cap_readback.yaml +0 -330
  1934. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/media_buy_frequency_cap_updates.yaml +0 -432
  1935. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/metric_container_subsumption.yaml +0 -363
  1936. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/outcome_target.yaml +0 -514
  1937. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/outcome_target_list_products_inert.yaml +0 -93
  1938. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/owner_sold_channel_carriage.yaml +0 -386
  1939. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/package_automatic_bidding.yaml +0 -152
  1940. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -128
  1941. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -341
  1942. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -503
  1943. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -438
  1944. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -480
  1945. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/portfolio_routing_scope.yaml +0 -167
  1946. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/pricing_currency_filter.yaml +0 -194
  1947. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/product_coverage_filters.yaml +0 -146
  1948. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/product_filter_behavior.yaml +0 -204
  1949. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -405
  1950. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -358
  1951. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -546
  1952. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -320
  1953. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -827
  1954. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/read_filter_behavior.yaml +0 -300
  1955. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/revenue_share_pricing.yaml +0 -346
  1956. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/seller_optimized_budget.yaml +0 -1217
  1957. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/seller_optimized_min_spend_target_exceeds_package_cap.yaml +0 -175
  1958. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/seller_optimized_proposal_package_pacing.yaml +0 -297
  1959. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/targeting_aware_discovery.yaml +0 -1698
  1960. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/total_budget_redistribution.yaml +0 -196
  1961. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/typed_proposal_negotiation.yaml +0 -771
  1962. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -388
  1963. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -311
  1964. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -589
  1965. package/compliance/cache/3.2.3/protocols/media-buy/state-machine.yaml +0 -565
  1966. package/compliance/cache/3.2.3/protocols/signals/index.yaml +0 -174
  1967. package/compliance/cache/3.2.3/protocols/signals/scenarios/get_signals_async.yaml +0 -455
  1968. package/compliance/cache/3.2.3/specialisms/audience-sync/index.yaml +0 -351
  1969. package/compliance/cache/3.2.3/specialisms/brand-rights/index.yaml +0 -433
  1970. package/compliance/cache/3.2.3/specialisms/brand-rights/scenarios/update_rights_lifecycle.yaml +0 -161
  1971. package/compliance/cache/3.2.3/specialisms/collection-lists/index.yaml +0 -409
  1972. package/compliance/cache/3.2.3/specialisms/content-standards/index.yaml +0 -722
  1973. package/compliance/cache/3.2.3/specialisms/creative-ad-server/index.yaml +0 -422
  1974. package/compliance/cache/3.2.3/specialisms/creative-generative/generative-seller.yaml +0 -698
  1975. package/compliance/cache/3.2.3/specialisms/creative-generative/index.yaml +0 -739
  1976. package/compliance/cache/3.2.3/specialisms/creative-template/index.yaml +0 -437
  1977. package/compliance/cache/3.2.3/specialisms/creative-transformers/index.yaml +0 -472
  1978. package/compliance/cache/3.2.3/specialisms/governance-delivery-monitor/index.yaml +0 -1371
  1979. package/compliance/cache/3.2.3/specialisms/governance-spend-authority/denied.yaml +0 -248
  1980. package/compliance/cache/3.2.3/specialisms/governance-spend-authority/index.yaml +0 -480
  1981. package/compliance/cache/3.2.3/specialisms/property-lists/index.yaml +0 -541
  1982. package/compliance/cache/3.2.3/specialisms/sales-broadcast-tv/index.yaml +0 -679
  1983. package/compliance/cache/3.2.3/specialisms/sales-dooh/index.yaml +0 -736
  1984. package/compliance/cache/3.2.3/specialisms/sales-guaranteed/index.yaml +0 -711
  1985. package/compliance/cache/3.2.3/specialisms/sales-non-guaranteed/index.yaml +0 -654
  1986. package/compliance/cache/3.2.3/specialisms/signal-marketplace/index.yaml +0 -468
  1987. package/compliance/cache/3.2.3/specialisms/signal-owned/index.yaml +0 -232
  1988. package/compliance/cache/3.2.3/test-vectors/request-signing/README.md +0 -292
  1989. package/compliance/cache/3.2.3/test-vectors/request-signing/canonicalization.json +0 -286
  1990. package/compliance/cache/3.2.3/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -32
  1991. package/compliance/cache/3.2.3/universal/billing-gate-dispatch.yaml +0 -571
  1992. package/compliance/cache/3.2.3/universal/collection-lists-pagination-integrity.yaml +0 -338
  1993. package/compliance/cache/3.2.3/universal/content-standards-pagination-integrity.yaml +0 -358
  1994. package/compliance/cache/3.2.3/universal/deterministic-testing.yaml +0 -1468
  1995. package/compliance/cache/3.2.3/universal/error-compliance-signals.yaml +0 -414
  1996. package/compliance/cache/3.2.3/universal/error-compliance.yaml +0 -574
  1997. package/compliance/cache/3.2.3/universal/get-signals-pagination-integrity.yaml +0 -238
  1998. package/compliance/cache/3.2.3/universal/idempotency.yaml +0 -915
  1999. package/compliance/cache/3.2.3/universal/property-lists-pagination-integrity.yaml +0 -339
  2000. package/compliance/cache/3.2.3/universal/read-tool-idempotency.yaml +0 -342
  2001. package/compliance/cache/3.2.3/universal/schema-validation-signals.yaml +0 -209
  2002. package/compliance/cache/3.2.3/universal/schema-validation.yaml +0 -439
  2003. package/compliance/cache/3.2.3/universal/signed-requests.yaml +0 -221
  2004. package/compliance/cache/3.2.3/universal/stale-response-advisory.yaml +0 -317
  2005. package/compliance/cache/3.2.3/universal/storyboard-schema.yaml +0 -2745
  2006. package/compliance/cache/3.2.3/universal/webhook-emission.yaml +0 -943
  2007. package/compliance/cache/3.2.3/universal/wholesale-feed-products-scope-isolation.yaml +0 -153
  2008. package/compliance/cache/3.2.3/universal/wholesale-feed-products.yaml +0 -182
  2009. package/compliance/cache/3.2.3/universal/wholesale-feed-signals-scope-isolation.yaml +0 -151
  2010. package/compliance/cache/3.2.3/universal/wholesale-feed-signals.yaml +0 -177
  2011. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/brand/index.yaml +0 -0
  2012. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  2013. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/brand/scenarios/signed_response_envelope_vectors.yaml +0 -0
  2014. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/brand/scenarios/single_side_trust_extension.yaml +0 -0
  2015. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/creative/scenarios/asset_type_filtering.yaml +0 -0
  2016. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  2017. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/creative/scenarios/policy_backed_rejections.yaml +0 -0
  2018. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/governance/scenarios/failed_outcome_audit_persistence.yaml +0 -0
  2019. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/acceptance_policy_discovery.yaml +0 -0
  2020. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/account_change_feed.yaml +0 -0
  2021. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/account_timezone_buyer_selected.yaml +0 -0
  2022. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/account_timezone_seller_assigned.yaml +0 -0
  2023. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/account_timezone_seller_fixed.yaml +0 -0
  2024. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/budget_cap_timezone_account.yaml +0 -0
  2025. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/budget_cap_timezone_fixed.yaml +0 -0
  2026. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/budget_cap_timezone_override.yaml +0 -0
  2027. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/budget_cap_timezone_override_rejected.yaml +0 -0
  2028. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/change_rights_state_projection.yaml +0 -0
  2029. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/compact_direct_buy_lifecycle.yaml +0 -0
  2030. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/compact_product_lifecycle.yaml +0 -0
  2031. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/declined_proposal_execution.yaml +0 -0
  2032. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/declined_proposal_refinement.yaml +0 -0
  2033. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/expired_proposal_execution.yaml +0 -0
  2034. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/governance_agent_binding_acceptance.yaml +0 -0
  2035. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  2036. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
  2037. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  2038. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  2039. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  2040. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/refine_frequency_cap_negotiation.yaml +0 -0
  2041. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  2042. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/sponsored-intelligence/index.yaml +0 -0
  2043. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  2044. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/brand/index.yaml +0 -0
  2045. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  2046. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/brand/scenarios/signed_response_envelope_vectors.yaml +0 -0
  2047. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -0
  2048. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/creative/scenarios/asset_type_filtering.yaml +0 -0
  2049. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  2050. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/creative/scenarios/policy_backed_rejections.yaml +0 -0
  2051. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/governance/scenarios/failed_outcome_audit_persistence.yaml +0 -0
  2052. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/acceptance_policy_discovery.yaml +0 -0
  2053. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/account_change_feed.yaml +0 -0
  2054. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/account_timezone_buyer_selected.yaml +0 -0
  2055. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/account_timezone_seller_assigned.yaml +0 -0
  2056. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/account_timezone_seller_fixed.yaml +0 -0
  2057. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/budget_cap_timezone_account.yaml +0 -0
  2058. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/budget_cap_timezone_fixed.yaml +0 -0
  2059. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/budget_cap_timezone_override.yaml +0 -0
  2060. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/budget_cap_timezone_override_rejected.yaml +0 -0
  2061. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/change_rights_state_projection.yaml +0 -0
  2062. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/compact_direct_buy_lifecycle.yaml +0 -0
  2063. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/compact_product_lifecycle.yaml +0 -0
  2064. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/declined_proposal_execution.yaml +0 -0
  2065. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/declined_proposal_refinement.yaml +0 -0
  2066. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/expired_proposal_execution.yaml +0 -0
  2067. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/governance_agent_binding_acceptance.yaml +0 -0
  2068. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  2069. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
  2070. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  2071. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  2072. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  2073. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/refine_frequency_cap_negotiation.yaml +0 -0
  2074. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  2075. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/sponsored-intelligence/index.yaml +0 -0
  2076. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  2077. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/brand-rights/scenarios/governance_approved.yaml +0 -0
  2078. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  2079. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/buyer-activation/index.yaml +0 -0
  2080. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/buyer-discovery/index.yaml +0 -0
  2081. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/buyer-monitoring/index.yaml +0 -0
  2082. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/buyer-negotiation/index.yaml +0 -0
  2083. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/buyer-recovery/index.yaml +0 -0
  2084. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/creative-transformers/scenarios/governance_approved.yaml +0 -0
  2085. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/creative-transformers/scenarios/governance_denied.yaml +0 -0
  2086. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/governance-aware-seller/index.yaml +0 -0
  2087. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -0
  2088. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/orchestrator-multi-agent/index.yaml +0 -0
  2089. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-catalog-driven/index.yaml +0 -0
  2090. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-exchange/index.yaml +0 -0
  2091. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-proposal-mode/index.yaml +0 -0
  2092. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-retail-media/index.yaml +0 -0
  2093. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-social/index.yaml +0 -0
  2094. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-streaming-tv/index.yaml +0 -0
  2095. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/signal-marketplace/scenarios/governance_approved.yaml +0 -0
  2096. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  2097. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sponsored-intelligence/index.yaml +0 -0
  2098. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/acme-outdoor-live.yaml +0 -0
  2099. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/acme-outdoor.yaml +0 -0
  2100. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/billing-gate-runner.yaml +0 -0
  2101. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/bistro-oranje.yaml +0 -0
  2102. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/distributed-brand-runner.yaml +0 -0
  2103. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/hosted-grader.yaml +0 -0
  2104. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/nova-motors.yaml +0 -0
  2105. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/oauth-setup-runner.yaml +0 -0
  2106. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/osei-natural.yaml +0 -0
  2107. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/parallel-dispatch-runner.yaml +0 -0
  2108. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/rate-limit-trip-runner.yaml +0 -0
  2109. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/signed-requests-runner.yaml +0 -0
  2110. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/signed-responses-runner.yaml +0 -0
  2111. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/single-side-trust-runner.yaml +0 -0
  2112. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/substitution-observer-runner.yaml +0 -0
  2113. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/summit-foods.yaml +0 -0
  2114. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/trusted-match-router-runner.yaml +0 -0
  2115. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/webhook-receiver-runner.yaml +0 -0
  2116. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/attestations/README.md +0 -0
  2117. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/attestations/vectors.json +0 -0
  2118. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/audience-evidence/README.md +0 -0
  2119. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/audience-evidence/vectors.json +0 -0
  2120. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/brand-response-signing/brand-authorization-cross-check.json +0 -0
  2121. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/catalog-macro-substitution.json +0 -0
  2122. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/creative-representation-resolution.json +0 -0
  2123. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/creative-representation-resolution.schema.json +0 -0
  2124. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/error-recovery/README.md +0 -0
  2125. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/error-recovery/vectors.json +0 -0
  2126. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/governance-authorization.json +0 -0
  2127. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/governance-runtime-attestations/README.md +0 -0
  2128. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/governance-runtime-attestations/vectors.json +0 -0
  2129. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/macro-processing.json +0 -0
  2130. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/macro-processing.schema.json +0 -0
  2131. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/oauth-setup/vectors.json +0 -0
  2132. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  2133. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/002-full-plan.json +0 -0
  2134. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  2135. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  2136. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  2137. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  2138. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  2139. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  2140. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  2141. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  2142. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  2143. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/products-only-brief-compatibility/README.md +0 -0
  2144. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/products-only-brief-compatibility/vectors.json +0 -0
  2145. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/relationship-scoped-indicators.json +0 -0
  2146. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/README.md +0 -0
  2147. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/adjustment.json +0 -0
  2148. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/canonicalization.json +0 -0
  2149. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/coverage-aggregation.json +0 -0
  2150. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/manifest.json +0 -0
  2151. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/materialization.json +0 -0
  2152. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/obligation.json +0 -0
  2153. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/accepted-recorded-response.json +0 -0
  2154. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/accepted-request.json +0 -0
  2155. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/accepted-unchanged-response.json +0 -0
  2156. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/adjustment-accepted-recorded-response.json +0 -0
  2157. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/adjustment-accepted-request.json +0 -0
  2158. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/rejected-recorded-response.json +0 -0
  2159. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/rejected-request.json +0 -0
  2160. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/report-definition.json +0 -0
  2161. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/revision.json +0 -0
  2162. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/row-schema.json +0 -0
  2163. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/rows.jsonl +0 -0
  2164. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/scenario-index.json +0 -0
  2165. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/scenario-index.schema.json +0 -0
  2166. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-summary/complete-summary.json +0 -0
  2167. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/001-unsigned-sendmessage-required.json +0 -0
  2168. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/002-unsigned-message-send-v0-3-required.json +0 -0
  2169. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/003-unsigned-sendstreamingmessage-required.json +0 -0
  2170. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/004-duplicate-invocation-datapart.json +0 -0
  2171. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/005-signed-duplicate-invocation-datapart.json +0 -0
  2172. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/006-missing-skill.json +0 -0
  2173. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/007-protocol-method-required-covers-sendmessage.json +0 -0
  2174. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/008-no-extension-header.json +0 -0
  2175. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/009-extra-non-invocation-datapart.json +0 -0
  2176. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/010-filepart-present.json +0 -0
  2177. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/011-part-with-text-and-data.json +0 -0
  2178. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/012-non-object-data.json +0 -0
  2179. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/013-v0-3-kind-mismatch.json +0 -0
  2180. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/014-duplicate-skill-key.json +0 -0
  2181. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/015-non-string-skill.json +0 -0
  2182. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/016-text-only-message.json +0 -0
  2183. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/017-unsigned-message-stream-v0-3-required.json +0 -0
  2184. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/018-unresolvable-with-lone-signature-header.json +0 -0
  2185. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/019-raw-part-present.json +0 -0
  2186. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/020-case-variant-member-name.json +0 -0
  2187. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/021-escaped-duplicate-skill-key.json +0 -0
  2188. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/022-unsigned-http-json-message-send-required.json +0 -0
  2189. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/023-batch-body.json +0 -0
  2190. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/024-duplicate-method-key.json +0 -0
  2191. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/025-missing-method.json +0 -0
  2192. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/026-empty-skill.json +0 -0
  2193. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/001-signed-sendmessage-create-media-buy.json +0 -0
  2194. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/002-signed-message-send-v0-3-create-media-buy.json +0 -0
  2195. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/003-unsigned-sendmessage-get-products-not-required.json +0 -0
  2196. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/004-unsigned-decoy-text-and-metadata.json +0 -0
  2197. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/005-unsigned-alias-skill-not-in-lists.json +0 -0
  2198. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/006-unsigned-message-send-v0-3-legacy-parameters.json +0 -0
  2199. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/007-unsigned-method-case-variant.json +0 -0
  2200. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/body-integrity-policy.json +0 -0
  2201. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/keys.json +0 -0
  2202. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  2203. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  2204. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  2205. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  2206. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  2207. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  2208. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  2209. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  2210. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  2211. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  2212. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  2213. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  2214. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  2215. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  2216. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  2217. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  2218. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  2219. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  2220. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  2221. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  2222. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  2223. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  2224. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  2225. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  2226. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  2227. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  2228. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -0
  2229. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  2230. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  2231. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  2232. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  2233. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  2234. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  2235. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  2236. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  2237. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  2238. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  2239. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  2240. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  2241. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/001-base64url-sf-binary.json +0 -0
  2242. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/002-multiple-trailing-dots.json +0 -0
  2243. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/002-wrong-tag.json +0 -0
  2244. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/003-expired-signature.json +0 -0
  2245. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/004-window-too-long.json +0 -0
  2246. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/005-alg-not-allowed.json +0 -0
  2247. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/006-missing-covered-component.json +0 -0
  2248. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/007-missing-content-digest.json +0 -0
  2249. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/008-unknown-keyid.json +0 -0
  2250. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/009-key-ops-missing-verify.json +0 -0
  2251. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/010-content-digest-mismatch.json +0 -0
  2252. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/012-missing-expires-param.json +0 -0
  2253. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/013-expires-le-created.json +0 -0
  2254. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/014-missing-nonce-param.json +0 -0
  2255. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/015-signature-invalid.json +0 -0
  2256. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/016-replayed-nonce.json +0 -0
  2257. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/017-key-revoked.json +0 -0
  2258. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/020-rate-abuse.json +0 -0
  2259. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/025-jwk-alg-crv-mismatch.json +0 -0
  2260. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/001-post-with-content-digest.json +0 -0
  2261. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/003-es256-post.json +0 -0
  2262. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/004-multiple-signature-labels.json +0 -0
  2263. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/005-default-port-stripped.json +0 -0
  2264. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/006-dot-segment-path.json +0 -0
  2265. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/007-query-byte-preserved.json +0 -0
  2266. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/008-percent-encoded-path.json +0 -0
  2267. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  2268. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/010-percent-encoded-slash-preserved.json +0 -0
  2269. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/011-ipv6-authority.json +0 -0
  2270. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  2271. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/protocol-method-names.json +0 -0
  2272. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/rights-attestations/README.md +0 -0
  2273. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/rights-attestations/vectors.json +0 -0
  2274. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/supply-path/README.md +0 -0
  2275. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/supply-path/vectors.json +0 -0
  2276. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/tracker-execution-contracts.json +0 -0
  2277. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/tracker-execution-contracts.schema.json +0 -0
  2278. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/trusted-match-context-merge/README.md +0 -0
  2279. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/trusted-match-context-merge/vectors.json +0 -0
  2280. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/universal-macro-translation.json +0 -0
  2281. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/universal-macro-translation.schema.json +0 -0
  2282. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-receiver-envelope.json +0 -0
  2283. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/README.md +0 -0
  2284. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/keys.json +0 -0
  2285. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  2286. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  2287. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  2288. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  2289. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  2290. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  2291. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  2292. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  2293. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  2294. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  2295. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  2296. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  2297. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  2298. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  2299. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  2300. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  2301. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  2302. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  2303. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  2304. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  2305. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  2306. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  2307. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  2308. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  2309. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  2310. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  2311. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  2312. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  2313. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/008-request-signing-key-reuse.json +0 -0
  2314. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/account-identity-reconciliation.yaml +0 -0
  2315. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/agent-notification-configs.yaml +0 -0
  2316. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/buyer-fixture-publisher.yaml +0 -0
  2317. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/buyer-orchestrator-track.yaml +0 -0
  2318. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/canonical-format-validate-input.yaml +0 -0
  2319. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/capability-discovery.yaml +0 -0
  2320. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/comply-controller-mode-gate.yaml +0 -0
  2321. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/ctv-experience-validate-input.yaml +0 -0
  2322. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/fictional-entities.yaml +0 -0
  2323. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  2324. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/get-products-pagination-integrity.yaml +0 -0
  2325. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/governance.yaml +0 -0
  2326. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/notification-config-event-scope.yaml +0 -0
  2327. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/notification-config-lifecycle.yaml +0 -0
  2328. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/notification-config-rejections.yaml +0 -0
  2329. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/oauth-setup.yaml +0 -0
  2330. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/pagination-integrity-creative-formats.yaml +0 -0
  2331. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/pagination-integrity-list-accounts.yaml +0 -0
  2332. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/pagination-integrity.yaml +0 -0
  2333. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/premium-display-canonical-validation.yaml +0 -0
  2334. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/principal.yaml +0 -0
  2335. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/reliable-reporting-managed-delivery.yaml +0 -0
  2336. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/reliable-reporting-reconciled-billing.yaml +0 -0
  2337. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/reporting-consumer-status.yaml +0 -0
  2338. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/reporting-core-declaration.yaml +0 -0
  2339. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/reporting-core.yaml +0 -0
  2340. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/runner-output-contract.yaml +0 -0
  2341. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/security.yaml +0 -0
  2342. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/trusted-match-publisher-authentication.yaml +0 -0
  2343. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/v3-envelope-integrity.yaml +0 -0
  2344. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/version-negotiation.yaml +0 -0
  2345. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/webhook-receiver-envelope.yaml +0 -0
  2346. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/wholesale-feed-bulk-webhooks.yaml +0 -0
  2347. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/wholesale-feed-product-webhooks.yaml +0 -0
  2348. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/wholesale-feed-signal-webhooks.yaml +0 -0
@@ -0,0 +1,2749 @@
1
+ # Storyboard Definition Schema
2
+ #
3
+ # Storyboards are narrative test workflows that walk agent builders through
4
+ # the sequence of calls their agent will receive, with context at each step.
5
+ #
6
+ # Each storyboard targets a specific agent interaction model and
7
+ # describes the flow from a caller's perspective.
8
+
9
+ # --- Schema definition ---
10
+
11
+ # A storyboard file must conform to this structure:
12
+ #
13
+ # id: string (unique identifier, e.g., "creative_template")
14
+ # version: string (semver, e.g., "1.0.0")
15
+ # title: string (human-readable title)
16
+ # category: string — matches the storyboard's `id` top-level segment.
17
+ #
18
+ # For *specialism* storyboards, this is the snake_case form of an entry in
19
+ # /schemas/enums/specialism.json (the wire-protocol enum declared by agents
20
+ # on `get_adcp_capabilities.specialisms[]`). The protocol enum is
21
+ # authoritative — when adding a new specialism storyboard, add the kebab-case
22
+ # form to specialism.json first. The current specialism categories
23
+ # (snake_case form) are:
24
+ #
25
+ # Sales: sales_guaranteed | sales_non_guaranteed | sales_proposal_mode
26
+ # | sales_catalog_driven | sales_broadcast_tv | sales_social
27
+ # Creative: creative_ad_server | creative_generative | creative_template
28
+ # Governance: content_standards | property_lists | collection_lists
29
+ # | governance_aware_seller | governance_delivery_monitor
30
+ # | governance_spend_authority
31
+ # Signals: signal_marketplace | signal_owned
32
+ # Brand: brand_rights
33
+ # Audiences: audience_sync
34
+ # Buyer: buyer_discovery | buyer_activation | buyer_negotiation
35
+ # | buyer_monitoring | buyer_recovery
36
+ # Orchestrator: orchestrator_multi_agent
37
+ #
38
+ # For *universal / domain-level* storyboards, the category is descriptive
39
+ # only (not on the wire). Examples in current use: capability_discovery,
40
+ # schema_validation, error_compliance, security_baseline, si_baseline,
41
+ # media_buy_seller, media_buy_governance_escalation, signed_requests,
42
+ # idempotency, webhook_emission, deterministic_testing,
43
+ # runner_output_contract, v3_envelope_integrity. New universal storyboards
44
+ # pick a descriptive snake_case identifier; see existing files under
45
+ # static/compliance/source/universal/ and protocols/ for the conventions.
46
+ #
47
+ # Scenario variants use <category>/<variant> form, e.g.
48
+ # governance_spend_authority/denied, creative_generative/seller,
49
+ # brand_rights/governance_denied, media_buy_seller/provenance_enforcement.
50
+ # summary: string (one-line description for listings)
51
+ # track: enum (optional — compliance track this storyboard contributes to:
52
+ # core | products | media_buy | media_buy_buyer | creative | reporting | governance |
53
+ # campaign_governance | signals | si | audiences | error_handling | brand | security)
54
+ # required_tools: string[] (optional — tool names the storyboard uses; empty for protocol-level tests.
55
+ # Lenient any-of: missing all listed tools triggers a coverage-gap skip
56
+ # (skip_result.reason: missing_tool at step scope). See `required_any_of_tools`
57
+ # below for the strict per-family load-time gate that grades requirement_unmet.)
58
+ # required_any_of_tools: array of OR-family objects (optional — declarative one-of-N
59
+ # tool-advertisement gate. Each entry is { tools: string[], rationale?: string };
60
+ # at least one tool in each family MUST be advertised by the agent under test.
61
+ # Multiple entries are AND-combined: every family must be satisfied independently.
62
+ # Distinct from `required_tools` (which is the lenient any-of for storyboard
63
+ # applicability — missing all listed tools triggers a coverage-gap skip).
64
+ # See the dedicated `required_any_of_tools` block below for full semantics.
65
+ # narrative: string (paragraph explaining the overall flow)
66
+ #
67
+ # requires_scenarios: string[] (optional — scenario IDs from storyboards/scenarios/ that must pass alongside this storyboard.
68
+ # Scenarios are small, focused behavior tests (e.g., "media_buy_seller/accepts_governance").
69
+ # The compliance engine resolves and runs them alongside the main storyboard.
70
+ #
71
+ # Flag flow across `requires_scenarios`:
72
+ # A `branch_set` flag contributed in a step of storyboard X is
73
+ # considered asserted if EITHER (a) a step in X's own phases asserts
74
+ # it via `assert_contribution` with `check: any_of, allowed_values:
75
+ # [<flag>]`, OR (b) a scenario Y listed in `X.requires_scenarios`
76
+ # asserts it via the same check. The `orphan_contribution` lint
77
+ # honors this flow.
78
+ #
79
+ # Reverse flow (a contribution in scenario Y asserted in parent X)
80
+ # is NOT supported — scenarios MUST be internally self-grading.
81
+ # The restriction preserves standalone lintability of scenarios
82
+ # and prevents cycles in the composition graph. Scenarios that
83
+ # contribute a flag without asserting it in their own phases will
84
+ # surface as `orphan_contribution` when linted standalone.
85
+ #
86
+ # Scenario IDs in `requires_scenarios` MUST match the referenced
87
+ # file's top-level `id:` exactly, and the referenced scenario file
88
+ # MUST exist in the source tree at build time. Duplicate IDs
89
+ # across files are a build-time error.)
90
+ #
91
+ # default_agent: string (optional — logical agent key used by multi-agent
92
+ # storyboard runners to route steps that do not have a unique specialism
93
+ # claimant in the runtime agents map. Resolved by the runner against the
94
+ # `agents` option passed to `runStoryboard({ agents: { sales: …, governance: …, … } })`.
95
+ #
96
+ # Key shape: free-form non-empty string, matched verbatim against the
97
+ # runtime `agents` map's keys. The spec does NOT constrain the key to the
98
+ # specialism enum (`sales`, `signals`, `governance`, `creative`, `brand`)
99
+ # because production multi-agent topologies legitimately fan out per-property
100
+ # (`nyt_sales`, `wsj_sales`), per-region (`sales_eu`, `sales_us`), or
101
+ # per-brand-rights-holder. Authors choose the convention that matches their
102
+ # operator's CI invocation; portability across operators is the author's
103
+ # concern, not the spec's.
104
+ #
105
+ # When to set it. Storyboards that exercise cross-domain tools — e.g.,
106
+ # `sync_creatives`, `list_creative_formats` — do not name a single specialism
107
+ # the runner can match. The author has the most context for which logical
108
+ # tenant should receive these calls (usually "wherever the seller is":
109
+ # `sales`). Encoding `default_agent: sales` once in the YAML beats
110
+ # re-asserting it on every CI invocation. (Note: `comply_test_controller`
111
+ # is routed via `prerequisites.controller_seeding`, not this field — the
112
+ # controller is a back-channel, not a specialism claimant.)
113
+ #
114
+ # Resolution order (runner contract — see adcp-client#1066, adcp-client#1355):
115
+ # 1. Step-level `agent:` override (if declared on the step).
116
+ # 2. Specialism-claimant match against the runtime agents map (matched
117
+ # via each agent's `get_adcp_capabilities.supported_protocols`):
118
+ # - Exactly one agent claims the step's task's specialism → route there.
119
+ # - Zero claimants → fall through to slot 3.
120
+ # - Two or more claimants → runner MUST grade the step `unrouted_step`
121
+ # rather than picking arbitrarily. Multi-claim is an operator-config
122
+ # error; the storyboard cannot disambiguate it. Slot 3/4 do NOT
123
+ # rescue this case — silently picking one would mask the misconfig.
124
+ # 3. Storyboard-level `default_agent` (THIS field) resolved against the
125
+ # runtime agents map. When the field is set but the key is absent from
126
+ # the map, the runner MUST grade the step `default_agent_unresolved`
127
+ # and MUST NOT fall through to slot 4 — silent fallback would invisibly
128
+ # override the storyboard author's encoded intent. Slot 4 fires only
129
+ # when the storyboard does NOT declare this field.
130
+ # 4. Run-options `default_agent` passed to `runStoryboard({ default_agent })`.
131
+ # Same key-resolution rule as slot 3: set-but-unmatched grades
132
+ # `default_agent_unresolved`; unset falls through to slot 5.
133
+ # 5. Fail-fast — runner raises `unrouted_step` and grades the step failed.
134
+ #
135
+ # Single-agent runs ignore this field entirely — there is no map to resolve
136
+ # against, every step routes to the only configured agent. Authors SHOULD
137
+ # still declare it for clarity; multi-agent runners treat it as advisory and
138
+ # single-agent runners as a no-op.
139
+ #
140
+ # Validation. The `<key>` MUST be a non-empty string. Validation that the
141
+ # key resolves to a configured tenant is a runtime concern (per the slot 3
142
+ # rule above), not a schema concern — the same storyboard runs against
143
+ # different topologies.)
144
+ #
145
+ # Applicability order: storyboard-level `requires_capability` and
146
+ # `requires_all_capabilities` predicates MUST be evaluated before the runner
147
+ # evaluates `requires`. When any capability predicate is not satisfied, the
148
+ # runner emits `not_applicable` and MUST NOT report a missing runtime
149
+ # requirement. Only an agent that selected the storyboard by satisfying every
150
+ # authored capability predicate can receive `requirement_unmet`. This keeps
151
+ # optional capability storyboards out of the coverage totals of agents that
152
+ # never claimed the capability.
153
+ #
154
+ # requires: string[] (optional — storyboard-level runtime requirement gate.
155
+ # Known values: controller | seeded_state | real_wire | webhook_receiver | multi_agent |
156
+ # trusted_match_publisher_auth_runner (forward-compat:
157
+ # unrecognized values are NOT schema violations — runners emit
158
+ # requirement_unmet at runtime; see Forward compatibility below).
159
+ # Default when absent: [real_wire] — untagged storyboards run unchanged.
160
+ # minItems: 1 — runners MUST fail-load on requires: [] (empty array) because
161
+ # no distinct semantic exists between the empty set and omitting the field;
162
+ # the error message SHOULD read "use requires: [real_wire] for the default
163
+ # behavior, or omit the field entirely."
164
+ #
165
+ # Values and availability:
166
+ #
167
+ # controller — gate on agent advertising comply_test_controller.
168
+ # Available when the agent's get_adcp_capabilities response
169
+ # includes comply_test_controller in its tool list. When
170
+ # unmet, the runner MUST emit skip_result.reason:
171
+ # requirement_unmet with detail naming "controller".
172
+ # Orthogonal to prerequisites.controller_seeding: the two
173
+ # fields are independent. controller_seeding is an execution-
174
+ # phase instruction ("inject a fixtures phase before the main
175
+ # phases run"); requires: [controller] is a load-phase gate
176
+ # ("skip the whole storyboard if the capability is absent").
177
+ # Storyboards may declare both: the gate fires first, and
178
+ # controller_seeding takes effect only if the gate passes.
179
+ # A storyboard that declares prerequisites.controller_seeding:
180
+ # true MUST also declare requires: [controller] (enforced by
181
+ # tests/lint-storyboard-controller-requires.test.cjs). The
182
+ # gate coalesces what would otherwise be a
183
+ # missing_test_controller grade on every seeded step into a
184
+ # single whole-storyboard requirement_unmet skip at load
185
+ # time. Whether a given class of seller is expected to
186
+ # implement comply_test_controller is a separate policy
187
+ # question — see docs/building/by-layer/L3/comply-test-controller.mdx.
188
+ # Mid-run transient loss: if the load-phase gate passes
189
+ # (the agent advertised comply_test_controller at load
190
+ # time) but the tool becomes unavailable mid-run, the
191
+ # runner MUST grade the affected step missing_test_controller
192
+ # per the existing per-step path, NOT a retroactive
193
+ # requirement_unmet at storyboard scope.
194
+ #
195
+ # seeded_state — gate on operator asserting out-of-band state provisioning.
196
+ # Available when the operator declares (e.g., via a CLI flag
197
+ # or runner option) that prerequisite state has been seeded
198
+ # externally before the run. When unmet, the runner MUST emit
199
+ # skip_result.reason: requirement_unmet with detail naming
200
+ # "seeded_state". Scenarios fail naturally on the first
201
+ # stateful step if state is not actually present.
202
+ # ANTI-GAMING: trust signals (verified-live badges, Tier-2
203
+ # production scores) MUST NOT consume requires: [seeded_state]
204
+ # pass results without independent verification. The field
205
+ # widens the graded set; it does not attest the state.
206
+ # This is an operator-governance norm; the runner cannot
207
+ # enforce it on behalf of downstream certification dashboards.
208
+ #
209
+ # real_wire — reserved for a future --mock-only execution mode. Current
210
+ # behavior: no runtime effect (gate is always met). Authors
211
+ # SHOULD omit this value rather than listing it explicitly,
212
+ # since the default when the field is absent is semantically
213
+ # equivalent to [real_wire] today (this equivalence holds
214
+ # only while --mock-only is not active; the --mock-only
215
+ # inversion may break it — see below).
216
+ # IMPORTANT: the future --mock-only semantics INVERT the
217
+ # skip direction compared to other values — this value will
218
+ # cause a storyboard to skip when --mock-only is active (i.e.,
219
+ # skip-when-mocked, pass-when-live), opposite to the
220
+ # skip-when-absent logic of controller and seeded_state.
221
+ # Whether the default-when-absent (omitting `requires`)
222
+ # also triggers the skip under --mock-only is to be defined
223
+ # when --mock-only ships; until then, authors MUST NOT rely
224
+ # on any particular behavior for omitted vs. explicit
225
+ # real_wire under a mock-only runner.
226
+ # Composing real_wire with other values (e.g., requires:
227
+ # [controller, real_wire]) is syntactically valid but the
228
+ # combined behavior under --mock-only is unspecified; authors
229
+ # SHOULD NOT mix real_wire with other values until --mock-only
230
+ # semantics are defined.
231
+ # Harnesses that consume this value MUST account for the
232
+ # skip-direction inversion when --mock-only support lands.
233
+ #
234
+ # webhook_receiver
235
+ # — gate on the runner hosting a webhook receiver for this run.
236
+ # Available when the runner is configured with the webhook
237
+ # receiver contract (for example
238
+ # `webhook_receiver: { mode: "loopback_mock" }` or an
239
+ # operator-supplied proxy URL). When unmet, the runner MUST
240
+ # emit skip_result.reason: requirement_unmet with detail
241
+ # naming "webhook_receiver" rather than sending unresolved
242
+ # `{{runner.webhook_url:...}}` placeholders to the agent.
243
+ # This value may be declared explicitly on storyboards such
244
+ # as webhook-emission; runners may also infer it from
245
+ # webhook URL substitutions in sample_request payloads.
246
+ #
247
+ # multi_agent — gate on the runner being configured with every logical
248
+ # agent key required by this storyboard's `default_agent`
249
+ # and step-level `agent:` declarations. Available when the
250
+ # runner receives an `agents` map containing at least two
251
+ # logical agents and all authored route keys used by the
252
+ # storyboard resolve against that map. When unmet, the
253
+ # runner MUST emit skip_result.reason: requirement_unmet
254
+ # with detail naming "multi_agent" rather than failing a
255
+ # routed step with default_agent_unresolved or unrouted_step.
256
+ # Storyboards SHOULD declare this when the scenario's setup
257
+ # and execution require distinct logical tenants, such as a
258
+ # seller agent plus a governance agent.
259
+ #
260
+ # trusted_match_publisher_auth_runner
261
+ # — gate on runner-owned, credential-profile-neutral Trusted
262
+ # Match publisher-authentication probes. Available when the
263
+ # runner has exact HTTPS `contextEndpoint` and
264
+ # `identityEndpoint` values for the publisher-facing ingress,
265
+ # plus an operator adapter exposing
266
+ # `preparePublisherAuthProbe({ operation, credentialState })`.
267
+ # The adapter supplies only declarative credential headers
268
+ # and optional PEM-encoded client-certificate, private-key,
269
+ # passphrase, and CA-certificate material for `absent` and
270
+ # `invalid` credential states. It MUST NOT supply a URL,
271
+ # dispatcher, fetch implementation, method, body, response,
272
+ # SNI override, proxy, or TLS verification override. The
273
+ # runner rejects Host, content-framing, hop-by-hop, forwarding,
274
+ # routing-override, and proxy headers from the adapter and
275
+ # constructs its own HTTP client/dispatcher. The runner owns
276
+ # the POST, endpoint SSRF
277
+ # validation, redirect rejection, timeout, bounded response
278
+ # read, and output redaction. The adapter, not storyboard YAML
279
+ # or the generic AdCP `auth` override, is responsible for
280
+ # removing ambient deployment credentials or supplying a
281
+ # credential known to be invalid for that deployment. When
282
+ # unmet, the runner emits
283
+ # skip_result.reason: requirement_unmet naming
284
+ # "trusted_match_publisher_auth_runner"; it MUST NOT route
285
+ # this pseudo-task through MCP or A2A as a fallback.
286
+ #
287
+ # Forward compatibility: runners encountering a requires value they do not
288
+ # recognize MUST emit skip_result.reason: requirement_unmet (not fail-load)
289
+ # and MUST name the unrecognized value in skip_result.detail so dashboards
290
+ # can surface it. This matches runner-output-contract.yaml > requirement_unmet
291
+ # and is consistent with the forward-compat posture throughout the harness —
292
+ # an unrecognized gate is not a coverage gap (not_applicable would signal
293
+ # "agent did not claim the protocol"), it is an unmet requirement. Only
294
+ # requires: [] (empty array) is a hard fail-load — that is a schema
295
+ # constraint, not a semantic gate, and schema violations are always loader
296
+ # errors.
297
+ #
298
+ # Interaction with per-step requires_tool: the two fields are independent.
299
+ # requires gates the whole storyboard at load time; requires_tool gates
300
+ # individual steps at execution time. Both may be declared on the same
301
+ # storyboard.)
302
+ #
303
+ # requires_capability: object (optional — storyboard-level applicability gate
304
+ # evaluated against the agent's `get_adcp_capabilities` response before
305
+ # executing phases. When the predicate is not satisfied, the runner skips the
306
+ # storyboard with skip_result.reason: not_applicable and detail naming the
307
+ # predicate path and declared value.
308
+ #
309
+ # Shape:
310
+ # path: string (dot path into get_adcp_capabilities, e.g.
311
+ # "media_buy.supports_proposals" or "supported_protocols")
312
+ # equals: JSON value (optional — predicate passes when the path value is
313
+ # strictly equal to this value)
314
+ # contains: JSON value (optional — predicate passes when the path value is
315
+ # an array containing this value)
316
+ # not_contains: JSON value (optional — predicate passes when the path value
317
+ # is an array that does not contain this value; missing/non-array values
318
+ # do not satisfy the predicate)
319
+ # present: boolean (optional — predicate passes when the path exists when
320
+ # true, or is absent when false)
321
+ #
322
+ # Exactly one of equals, contains, not_contains, or present SHOULD be declared. Runners
323
+ # that support stricter validation MAY fail-load a gate with no matcher or
324
+ # multiple matchers. The same field is also legal on a phase; phase-level
325
+ # gates skip only that phase and are useful when a universal storyboard
326
+ # contains protocol-specific phase families.)
327
+ #
328
+ # requires_all_capabilities: object[] (optional — storyboard-level AND gate
329
+ # for two or more capability predicates. Each entry has the same shape and
330
+ # matcher rules as `requires_capability`. Every entry MUST pass before the
331
+ # storyboard is selected. When this field and `requires_capability` are both
332
+ # present, all predicates across both declarations MUST pass.
333
+ #
334
+ # minItems: 2 — use `requires_capability` for a single predicate. Runners MUST
335
+ # fail-load empty or single-entry arrays so an incomplete compound gate cannot
336
+ # silently widen a storyboard's applicability.
337
+ #
338
+ # Compound gates fail closed when the raw `get_adcp_capabilities` payload is
339
+ # unavailable. Tool advertisement or auto-registration MUST NOT substitute
340
+ # for an explicit capability declaration. Supported by @adcp/sdk starting in
341
+ # 14.0.0-beta.4.)
342
+ #
343
+ # required_any_of_tools: array (optional — declarative one-of-N tool-advertisement
344
+ # gate at storyboard load time. Each array entry is an OR-family object:
345
+ #
346
+ # required_any_of_tools:
347
+ # - tools: [list_accounts, sync_accounts]
348
+ # rationale: "AdCP 3.0.9 §accounts/overview"
349
+ #
350
+ # Per-entry object shape:
351
+ # tools: string[] — tool names; at least one MUST be advertised by the agent
352
+ # under test. minItems: 2 (a single-tool family collapses
353
+ # to `required_tools`; encode it there instead).
354
+ # rationale: string (optional) — human-readable spec citation surfaced in
355
+ # skip messages so dashboards can attribute the gate to
356
+ # the underlying normative requirement. Storyboard-author-
357
+ # controlled string; runners that render this value into
358
+ # LLM-facing surfaces MUST fence per
359
+ # runner-output-contract.yaml > rendered_output_fencing
360
+ # (the value flows into skip_result.detail, which is
361
+ # already on the fenced list — this is defense-in-depth
362
+ # for renderers that consume rationale directly).
363
+ #
364
+ # Multiple entries are AND-combined: every family in the array MUST be
365
+ # satisfied independently. Empty array is fail-load — omit the field entirely
366
+ # for "no requirement" (same posture as `requires`).
367
+ #
368
+ # Distinct from `required_tools`. `required_tools` is the lenient any-of for
369
+ # storyboard applicability — missing all listed tools triggers a coverage-gap
370
+ # skip. `required_any_of_tools` is the strict variant: missing the family is
371
+ # still a skip (not a fail-load — see "Runner behavior" below), but with
372
+ # distinct `detail` attribution so the skip aggregates against the spec rule
373
+ # rather than the storyboard scope. The two compose cleanly on the same
374
+ # storyboard.
375
+ #
376
+ # Distinct from `provides_state_for`. `provides_state_for` is a per-step
377
+ # substitution mechanism that waives a downstream cascade when a peer step
378
+ # establishes equivalent state at runtime. `required_any_of_tools` is a
379
+ # storyboard-load-time gate on tool *advertisement* — it fires before any
380
+ # step executes and does not interact with step-level substitution. The two
381
+ # operate on different axes (storyboard scope vs step scope; advertisement-
382
+ # time vs run-time) and may coexist on the same storyboard.
383
+ #
384
+ # Runner behavior. When an agent advertises NONE of the tools in any family,
385
+ # the runner MUST emit at storyboard scope:
386
+ #
387
+ # skip_result.reason = requirement_unmet
388
+ # skip_result.detail = "missing_required_tool_family: needs <tool_a> or <tool_b>[ or <tool_c>...] (<rationale>)"
389
+ #
390
+ # The `missing_required_tool_family:` sub-reason prefix in `detail` is the
391
+ # canonical attribution string (see runner-output-contract.yaml >
392
+ # `requirement_unmet` for the full enumeration of recognized detail
393
+ # sub-reasons and the canonical wire shape for separators when more than one
394
+ # gate fails). This matches the same `requirement_unmet`-with-detail pattern
395
+ # already used for `requires:` gates — no new top-level reason enum is added
396
+ # to `runner-output-contract.yaml`, so this field ships without bumping the
397
+ # contract version.
398
+ #
399
+ # Per-family OR semantics. A family is satisfied as soon as the agent
400
+ # advertises ANY tool in `tools[]`. The runner MUST NOT additionally require
401
+ # that the named tools are exercised by storyboard steps — this field gates
402
+ # on tool *advertisement*, not on step execution. Per-step gating remains
403
+ # the job of `requires_tool` on individual steps.
404
+ #
405
+ # Forward compatibility. Runners encountering this field on a storyboard
406
+ # they otherwise support MUST honor it. Runners that pre-date this field
407
+ # will load and execute the storyboard as if the field were absent; this
408
+ # is acceptable because the universal account-discovery rule (the first
409
+ # use case) is also enforced by the SDK's runner-level conformance gate,
410
+ # which fires independently of per-storyboard tagging. Future runners that
411
+ # migrate to per-storyboard attribution (see adcp-client#1642) consume this
412
+ # field for richer skip-cause aggregation.
413
+ #
414
+ # Composition with other gates. `required_any_of_tools` is evaluated at
415
+ # load time alongside `requires`. Either gate failing produces
416
+ # skip_result.reason: requirement_unmet at storyboard scope. Runners SHOULD
417
+ # emit a single sub-reason in `detail` when only one gate is unmet. When
418
+ # multiple gates fail, runners MAY aggregate sub-reasons per the wire shape
419
+ # pinned in runner-output-contract.yaml > `requirement_unmet`; aggregated
420
+ # `detail` strings are intended for human display and SHOULD NOT be
421
+ # parsed beyond the first sub-reason by automated consumers. Dashboards
422
+ # that need exhaustive multi-gate attribution SHOULD surface a multi-gate
423
+ # indicator separately rather than splitting `detail` themselves.)
424
+ #
425
+ # agent:
426
+ # interaction_model: enum (stateless_transform | stateful_preloaded | stateful_push | stateless_generate | media_buy_seller | media_buy_buyer | marketplace_catalog | owned_signals | si_platform | brand_rights_holder | governance_agent | tmp_router)
427
+ # Descriptive authoring metadata, not a runner selection gate: agents do not
428
+ # publish one canonical interaction_model value on the wire. Authors MUST
429
+ # express executable scope through required_tools, requires_capability,
430
+ # requires_contract, supported_protocols, or specialisms instead. Runners
431
+ # MUST resolve those declared gates before context extraction or setup.
432
+ # capabilities: string[] (legacy descriptive capability labels; bundle selection is driven by get_adcp_capabilities.supported_protocols and specialisms)
433
+ # examples: string[] (real-world examples: "Celtra", "Innovid")
434
+ #
435
+ # caller:
436
+ # role: string (who initiates the calls: "buyer_agent", "orchestrator", "dsp")
437
+ # example: string (e.g., "Scope3", "Pinnacle Agency")
438
+ #
439
+ # prerequisites:
440
+ # description: string (what must be true before running this storyboard)
441
+ # test_kit: string (reference to a test kit file, e.g., "test-kits/acme-outdoor.yaml").
442
+ # Always a single path — test kits are not composed through this field. See
443
+ # "Test kit flavors" below for the two shapes a test kit may take and how
444
+ # storyboards compose brand identity with harness coordination when they need
445
+ # both.
446
+ # controller_seeding: boolean (optional — when true, the runner auto-injects a
447
+ # fixtures phase that seeds every entry in the storyboard's top-level
448
+ # `fixtures:` block via `comply_test_controller` before the main phases run.
449
+ # Storyboards that hardcode fixture IDs in sample_request payloads SHOULD
450
+ # declare this and populate `fixtures:`. Missing `seed_*` support on the
451
+ # agent grades the storyboard `not_applicable`, not failed.)
452
+ #
453
+ # fixtures: object (optional — declarative prerequisite state the runner seeds via
454
+ # comply_test_controller before executing phases. Structure:
455
+ # fixtures:
456
+ # products:
457
+ # - product_id: "test-product"
458
+ # delivery_type: "non_guaranteed"
459
+ # pricing_options:
460
+ # - pricing_option_id: "test-pricing"
461
+ # pricing_model: "cpm"
462
+ # # Optional seller-internal calendar state for availability-window
463
+ # # scenarios. Consumed by seeding only — never emitted as a product
464
+ # # response field. Windows are half-open RFC3339 instants.
465
+ # availability:
466
+ # min_bookable_days: 3
467
+ # booked_windows:
468
+ # - start_time: "2099-09-20T00:00:00Z"
469
+ # end_time: "2099-09-27T00:00:00Z"
470
+ # accounts:
471
+ # - account_id: "acct_test"
472
+ # fixture:
473
+ # brand: { domain: "acme.example" }
474
+ # operator: "buyer.example"
475
+ # billing: "operator"
476
+ # sandbox: true
477
+ # creatives:
478
+ # - creative_id: "campaign_hero_video"
479
+ # status: "approved"
480
+ # format_kind: "video_hosted"
481
+ # plans:
482
+ # - plan_id: "gov_acme_q2_2027"
483
+ # budget: { total: 30000, currency: "USD" }
484
+ # media_buys:
485
+ # - media_buy_id: "mb_acme_q2_2026_auction"
486
+ # status: "active"
487
+ # Each top-level key maps to a seed_* scenario (accounts → seed_account,
488
+ # products → seed_product, pricing_options → seed_pricing_option,
489
+ # creatives → seed_creative, plans → seed_plan, media_buys → seed_media_buy).
490
+ # Storyboards that need an
491
+ # external measurement vendor catalog SHOULD add an explicit
492
+ # comply_test_controller step with scenario: seed_measurement_catalog. Product
493
+ # fixtures may carry `measurement_catalogs[]` entries only as a compatibility
494
+ # fallback when a storyboard needs to keep that snapshot beside the product
495
+ # contract. Foreign-key dependency DAG the runner MUST honor when auto-seeding:
496
+ #
497
+ # account ───→ product
498
+ # product ──┬─→ pricing_option
499
+ # ├─→ plan
500
+ # └─→ media_buy
501
+ # creative ────→ media_buy
502
+ # plan ────────→ media_buy
503
+ #
504
+ # Products seed before pricing_options and plans that reference them;
505
+ # products, creatives, and plans all seed before media_buys that reference
506
+ # them. See docs/building/implementation/comply-test-controller.mdx for the
507
+ # full seeding semantics and per-scenario param shapes.
508
+ #
509
+ # Storyboards SHOULD prefer the `fixtures:` block over hardcoded sample_request
510
+ # IDs whose existence the runner cannot verify.
511
+ #
512
+ # Hardcoded-literal fixtures in sample_request (e.g., product_id: "test-product"
513
+ # without a matching `fixtures:` entry) are permitted through 3.x for existing
514
+ # storyboards that pre-seed matching IDs out of band, and SHOULD migrate to the
515
+ # `fixtures:` block before 4.0. New storyboards authored after this spec edit
516
+ # MUST NOT hardcode fixture IDs without a corresponding `fixtures:` block or a
517
+ # test-kit substitution.)
518
+ #
519
+ # fixture_resolution: object (optional, introduced in 3.2 — runner-owned rules
520
+ # for satisfying fixture handles through the seller's normal AdCP surface).
521
+ #
522
+ # Identity fields in `fixtures:` are run-scoped handles. They remain the
523
+ # caller-selected literal IDs for the `seed` strategy, but a seller is not
524
+ # required to persist those literals when another explicitly enabled strategy
525
+ # resolves the handle. Keeping this block separate from `fixtures:` is
526
+ # intentional: 3.1 runners continue to seed the unchanged fixture payload and
527
+ # never forward resolution metadata to the seller.
528
+ #
529
+ # Structure:
530
+ #
531
+ # fixture_resolution:
532
+ # products:
533
+ # - handle: "sports_display_auction"
534
+ # strategies: [seed, discover]
535
+ # match:
536
+ # - path: /delivery_type
537
+ # operator: equals
538
+ # value: non_guaranteed
539
+ # - path: /channels
540
+ # operator: contains_all
541
+ # value: [display]
542
+ # - path: /format_options
543
+ # operator: any_match
544
+ # where:
545
+ # - path: /format_kind
546
+ # operator: equals
547
+ # value: image
548
+ # - path: /params/width
549
+ # operator: equals
550
+ # value: 300
551
+ # - path: /params/height
552
+ # operator: equals
553
+ # value: 250
554
+ # pricing_options:
555
+ # - product_handle: "sports_display_auction"
556
+ # handle: "cpm_auction"
557
+ # strategies: [seed, discover]
558
+ # match:
559
+ # - path: /pricing_model
560
+ # operator: equals
561
+ # value: cpm
562
+ # - path: /currency
563
+ # operator: equals
564
+ # value: USD
565
+ # - path: /floor_price
566
+ # operator: present
567
+ #
568
+ # handles and parent scope:
569
+ # - `handle` MUST equal the corresponding identity value in `fixtures:`.
570
+ # - A pricing-option entry MUST also declare `product_handle`; the pair
571
+ # `(product_handle, handle)` is its identity because pricing_option_id is
572
+ # scoped to a product and may repeat across products.
573
+ # - Two handles MUST NOT bind the same seller entity unless both resolution
574
+ # entries set `allow_reuse: true`. The default is false so a storyboard
575
+ # requiring two contrasting products does not accidentally test one row
576
+ # twice.
577
+ #
578
+ # strategies: non-empty array containing an ordered subset of:
579
+ # - seed: call the existing seed_* scenario with the authored literal ID and
580
+ # fixture exemplar.
581
+ # - discover: enumerate the normal read surface and match seller-owned
582
+ # entities. Product and pricing-option discovery uses a fully paginated
583
+ # `get_products` wholesale request, scoped to the run's resolved sandbox
584
+ # account when one exists. The request omits `brief`, filters, and `fields`
585
+ # so matching operates on the complete returned product objects.
586
+ # - construct: execute the entity-type-specific buyer lifecycle declared by
587
+ # the runner contract, then apply required force_* transitions. A runner
588
+ # MUST NOT invent a generic construct path for an entity type whose setup
589
+ # lifecycle has not been specified.
590
+ #
591
+ # Backward compatibility: when a fixture has no matching
592
+ # `fixture_resolution` entry, its effective strategies are `[seed]`. Runners
593
+ # MUST NOT infer discoverability by treating the fixture object as a generic
594
+ # subset predicate. Existing fields include illustrative values and
595
+ # adversarial multi-entity relationships for which that inference would
596
+ # weaken or change the authored test.
597
+ #
598
+ # match: non-empty array required when `strategies` includes `discover`.
599
+ # Every clause has an RFC 6901 `path` relative to the candidate entity and an
600
+ # operator from the following closed set:
601
+ # - equals: candidate value is JSON-deep-equal to `value`.
602
+ # - present: path resolves to a non-null value; `value` and `where` omitted.
603
+ # - contains_all: candidate array contains every JSON-deep-equal item in
604
+ # the `value` array; order is irrelevant.
605
+ # - any_match: candidate path is an array and at least one member satisfies
606
+ # every nested clause in non-empty `where`; `value` omitted.
607
+ # - canonical_format_satisfies: candidate format declaration at `path`
608
+ # satisfies the canonical format requirement in `value` using the same
609
+ # directional algorithm as the `canonical_format_satisfaction` check.
610
+ # Unknown operators are an authoring error, not a forward-compatible skip.
611
+ #
612
+ # strategy disposition:
613
+ # - unavailable: an unadvertised seed scenario, no qualifying discovery
614
+ # candidate, or an unavailable construct prerequisite advances to the next
615
+ # declared strategy.
616
+ # - failed: a strategy the seller advertises or begins returns a transport,
617
+ # schema, protocol, pagination, or setup failure. The fixture resolution
618
+ # fails immediately; the runner MUST NOT fall back and hide the failure.
619
+ # - resolved: the handle binds to the seller identity and is pinned for the
620
+ # full run.
621
+ # - unsatisfied: every declared strategy was unavailable. The storyboard
622
+ # grades `fixture_unsatisfied`, not passed.
623
+ #
624
+ # Discovery selection is deterministic. After excluding candidates already
625
+ # pinned to non-reusable handles, the runner sorts matches by UTF-8 bytewise
626
+ # seller identity (product_id; then product_id + U+0000 + pricing_option_id
627
+ # for pricing options) and selects the first. Response order is never the
628
+ # tie-breaker. An empty, valid result is an unavailable strategy; a malformed,
629
+ # rejected, incomplete-without-a-usable-continuation, or transport-failed
630
+ # discovery response is a conformance failure.
631
+ #
632
+ # handle substitution: after the whole fixture dependency graph resolves,
633
+ # runners replace authored handles only in request fields whose resolved JSON
634
+ # Schema carries the matching `x-entity` annotation. Replacement is exact —
635
+ # handles embedded in larger strings are not rewritten. Product pricing-option
636
+ # handles resolve against the sibling/ancestor product binding; an ambiguous
637
+ # unscoped occurrence is an authoring failure. This translation applies to
638
+ # normal task calls and comply_test_controller force/simulate calls. The agent
639
+ # never sees the authored handle when discovery or construction supplied a
640
+ # seller-issued identity.
641
+ #
642
+ # See runner-output-contract.yaml > fixture_resolution_result for evidence and
643
+ # `fixture_unsatisfied` grading. See governance decision DR-0010.
644
+ #
645
+ # --- Test kit flavors ---
646
+ #
647
+ # Files under `static/compliance/source/test-kits/` come in two shapes. The
648
+ # distinction is not enforced by a separate field today — it's identified by
649
+ # which fixture data the kit carries.
650
+ #
651
+ # Brand kit — carries a brand identity and authentication fixture. Declares:
652
+ # id string (short identifier)
653
+ # auth.api_key string (`demo-<kit>-v1` pattern; the demo Bearer the
654
+ # runner sends on positive api-key probes)
655
+ # OR
656
+ # auth.basic object (the demo HTTP Basic credential the runner sends
657
+ # on positive Basic probes). Shape is either:
658
+ # username: string
659
+ # password: string
660
+ # or:
661
+ # credentials: string
662
+ # where `credentials` is the unencoded `username:password`
663
+ # pair used to build the Authorization header.
664
+ # auth.probe_task string (the protected read the runner calls under
665
+ # `auth: none` and with random-invalid credentials)
666
+ # brand object (house + brand_id + names + logos + colors +
667
+ # fonts + tone — full brand.json payload)
668
+ # + optional products, creatives, pricing_options, destinations, etc.
669
+ #
670
+ # Today's brand kits: acme-outdoor, bistro-oranje, nova-motors, osei-natural,
671
+ # summit-foods. Used by storyboards that exercise brand-specific AdCP protocol
672
+ # flows (creative, media-buy, signals, governance, etc.).
673
+ #
674
+ # Runner contract — carries a harness coordination contract. Declares:
675
+ # id string (short identifier)
676
+ # applies_to object or list (which storyboards/specialisms consume
677
+ # this contract, e.g., `{ universal_storyboard: signed-requests }`
678
+ # or `{ specialism: sales-catalog-driven }`)
679
+ # + contract-specific fields describing how the runner should pre-configure
680
+ # the agent under test (e.g., `receiver_urls:`, `retry_replay_contract:`
681
+ # for webhook-receiver-runner; `endpoint_modes:` for signed-requests)
682
+ #
683
+ # Today's runner contracts: signed-requests-runner, substitution-observer-
684
+ # runner, webhook-receiver-runner. They carry no credentials today — the
685
+ # runner injects no auth for these storyboards because the storyboards test
686
+ # harness infrastructure (signature verification, webhook receiver
687
+ # coordination, URL substitution observability), not brand-specific AdCP
688
+ # flows. A future runner contract could legitimately carry its own test-
689
+ # coordination principal (e.g., a callback-authenticating receiver), so the
690
+ # "no credentials" property is temporal, not structural.
691
+ #
692
+ # Enforcement. `scripts/lint-storyboard-test-kits.cjs` fails the build if a
693
+ # kit under `test-kits/` declares none of `auth.api_key`, `auth.basic`, or
694
+ # `applies_to` — that's the bimodal partition this section describes. The lint
695
+ # tolerates kits that declare both a credential marker and `applies_to` (the
696
+ # future-branded-runner case above).
697
+ #
698
+ # Composition. Storyboards that need BOTH a brand identity AND a harness
699
+ # contract declare the brand kit in `prerequisites.test_kit` and opt into the
700
+ # runner contract through the `requires_contract: <runner_id>` field on
701
+ # specific assertion tasks that need it — today that's `expect_substitution_safe`
702
+ # and `expect_webhook*` (see their task definitions below for the per-task
703
+ # field shape). When the named contract is not in scope for the runner, the
704
+ # task grades as `not_applicable` rather than failing. Example:
705
+ # `specialisms/sales-catalog-driven/index.yaml` declares
706
+ # `prerequisites.test_kit: "test-kits/acme-outdoor.yaml"` and its
707
+ # `expect_substitution_safe` step carries `requires_contract:
708
+ # substitution_observer_runner`.
709
+ #
710
+ # Storyboards that test pure harness infrastructure without a specific brand
711
+ # (e.g., `universal/signed-requests.yaml`,
712
+ # `universal/webhook-emission.yaml`) point `prerequisites.test_kit` directly
713
+ # at the runner contract and fall back on `task_default:` when any
714
+ # `$test_kit.operations.<name>` reference resolves to null (see Step field
715
+ # docs).
716
+ #
717
+ # `test_kit=<path>` in the contradiction-lint fingerprint disambiguates the
718
+ # two flavors — `auth=kit_default` resolves to the kit's static credential for
719
+ # brand kits and to no-credential for runner contracts, but the two never
720
+ # collide because the `test_kit=` component separates them.
721
+ #
722
+ # Functional request signing composes differently from assertion contracts.
723
+ # A runner that implements `test-kits/signed-requests-runner.yaml >
724
+ # functional_dispatch` loads that shared signing identity at run level and
725
+ # applies it to ordinary functional task dispatch after capability discovery.
726
+ # Storyboards KEEP their brand test kit and do not add `requires_contract` to
727
+ # each signed step. This avoids duplicating the public conformance key across
728
+ # every fictional-brand kit and lets signing compose with an assertion step's
729
+ # existing webhook/substitution contract.
730
+ #
731
+ # Dispatch rules:
732
+ # 1. This path is sandbox-only. The public conformance private scalar MUST
733
+ # NOT be used when the run targets production or disables sandbox routing.
734
+ # 2. Bootstrap `get_adcp_capabilities` discovery remains unsigned so the
735
+ # runner can learn the seller's profile. For subsequent ordinary task
736
+ # calls, sign operations in `request_signing.required_for` and, when the
737
+ # contract declares `sign_supported_for: true`, operations in
738
+ # `supported_for` as well.
739
+ # Signing the supported set covers request-body-dependent MUSTs such as a
740
+ # webhook registration carrying `authentication` without hard-coding
741
+ # those predicates in the runner.
742
+ # 3. Build the complete transport request first (context substitutions,
743
+ # generated idempotency key, protocol/version envelope, and exact JSON
744
+ # bytes), then add RFC 9421 headers. Resolve `content-digest` coverage from
745
+ # the advertised `request_signing.covers_content_digest` policy.
746
+ # 4. Preserve independently configured transport authentication. A signed
747
+ # request may also carry bearer/API-key credentials; signing is not a
748
+ # replacement for the storyboard's principal selection.
749
+ # 5. Mint a fresh nonce and signature for every dispatch or retry. Never
750
+ # replay previously generated signature headers onto changed bytes.
751
+ # 6. Never fall back to unsigned dispatch after signer setup or invocation
752
+ # fails. Report a runner failure. Older runners that cannot implement the
753
+ # functional-dispatch contract use the declared `unavailable_behavior`
754
+ # compatibility disposition (`not_applicable`) rather than blaming the
755
+ # seller for `request_signature_required`.
756
+ #
757
+ # This is NOT a sandbox-mode verifier bypass. The seller processes the signed
758
+ # request through its normal RFC 9421 authentication path. `endpoint_scope:
759
+ # sandbox` scopes the deliberately public test key; it does not weaken seller
760
+ # enforcement.
761
+ #
762
+ # Future: if a storyboard ever needs to compose TWO assertion runner contracts
763
+ # simultaneously (e.g., substitution-observer + webhook-receiver), the step-
764
+ # level `requires_contract:` field will need to accept a list. Functional
765
+ # signing does not consume that slot and therefore does not trigger this case.
766
+ #
767
+ # See `docs/contributing/storyboard-authoring.md` for the author-workflow
768
+ # side of kit selection.
769
+ #
770
+ # context: object (optional — initial values seeded into the runner's context
771
+ # accumulator before any step executes. Keys become $context.<key> references
772
+ # available throughout the storyboard run. Use this field to provide
773
+ # per-storyboard defaults for values that vary by operator topology (e.g.,
774
+ # a governance agent URL the runner can override at invocation time once the
775
+ # CLI supports --context on `storyboard run`).
776
+ #
777
+ # Example:
778
+ # context:
779
+ # governance_agent_url: "https://test-agent.adcontextprotocol.org"
780
+ #
781
+ # Precedence in the context accumulator (highest to lowest):
782
+ # 1. Step `context_outputs:` captures (populated after a step passes)
783
+ # 2. THIS field (storyboard-root `context:` block, fixed at run start)
784
+ # 3. Test-kit substitutions where explicitly scoped into context
785
+ #
786
+ # Values MUST be scalars (strings, numbers, booleans — JSON scalar types).
787
+ # Object and array values are not supported here — capture structured values
788
+ # from step responses via `context_outputs:` instead.
789
+ #
790
+ # See "Context accumulator and substitution" below for the full precedence
791
+ # contract, runner substitution rules, and unresolved-substitution grading.)
792
+ #
793
+ # phases: array of Phase objects
794
+ #
795
+ # --- Phase ---
796
+ #
797
+ # id: string (unique within storyboard)
798
+ # title: string (human-readable phase title)
799
+ # narrative: string (paragraph explaining this phase from the caller's perspective)
800
+ #
801
+ # requires_capability: object (optional — same shape as the storyboard-level
802
+ # field above, but scoped to this phase. When the predicate is not satisfied,
803
+ # the runner skips the phase as not_applicable and MUST NOT treat the skipped
804
+ # phase as a prerequisite failure for independent sibling phases that declare
805
+ # `depends_on: []`.)
806
+ #
807
+ # depends_on: string[] (optional — overrides the cross-phase cascade default)
808
+ # Default semantics (field absent or undefined): "all prior phases." Every
809
+ # phase implicitly depends on every prior phase, so when ANY prior phase
810
+ # trips its stateful cascade (a stateful step fails or skips for a
811
+ # missing-state reason — see `runner-output-contract.yaml > cascade_rules.
812
+ # default_cascade`), every stateful step in this phase cascade-skips with
813
+ # `prerequisite_failed`. This default preserves the F6 round-2 pattern
814
+ # where setup phases establish state consumed by a later phase.
815
+ #
816
+ # Two override forms:
817
+ #
818
+ # - Independent phase: `depends_on: []` — explicitly declares the phase
819
+ # has no upstream dependencies and runs even if every prior phase
820
+ # tripped. Use for phases whose state derives entirely from in-phase
821
+ # steps (e.g., the phase creates its own media buy / session / account
822
+ # via a `comply_test_controller`-gated step) and that consume no
823
+ # `$context.*` value produced by an earlier phase. The
824
+ # `sole_stateful_step_exemption` in `runner-output-contract.yaml`
825
+ # addresses a related-but-narrower case at the step level; `depends_on:
826
+ # []` is the phase-level escape hatch and applies regardless of how
827
+ # many stateful steps the phase contains.
828
+ #
829
+ # - Targeted dependency: `depends_on: ['phase_id', ...]` — only the
830
+ # named phases gate this phase's cascade. Other phases tripping is
831
+ # irrelevant. Listed phase IDs MUST exist in the same storyboard and
832
+ # MUST be declared earlier in the `phases[]` array.
833
+ #
834
+ # Validation rules (enforced at storyboard load; fail at parse time):
835
+ # - Value MUST be an array of non-empty strings (or absent).
836
+ # - Self-references are rejected.
837
+ # - Forward references and unknown phase IDs are rejected.
838
+ # - Empty list is legal and means "no upstream dependencies."
839
+ #
840
+ # Authoring guidance: prefer the default. Use `[]` only when the phase
841
+ # verifiably builds its own state in-phase — read the phase's
842
+ # `context_inputs` and `$context.*` references to confirm no cross-phase
843
+ # coupling exists. Use the targeted form when a phase depends on a
844
+ # specific subset of prior phases (e.g., consumption phase depends only
845
+ # on setup phases, not on sibling consumption phases that may legitimately
846
+ # skip on different adopters).
847
+ #
848
+ # Branch-set peers are exempt from this cross-phase cascade: phases sharing a
849
+ # `branch_set.id` with `any_of` semantics do NOT cascade `prerequisite_failed`
850
+ # onto one another (they are mutually-exclusive alternatives, not a chain),
851
+ # independent of whether the dependency is the implicit default or an explicit
852
+ # `depends_on`. See `runner-output-contract.yaml >
853
+ # cascade_rules.branch_set_cascade_exemption`.
854
+ #
855
+ # References: adcp-client#1161 (field introduction); adcp-client#1711
856
+ # follow-up + adcp#4750 (deterministic_testing scope tightening that
857
+ # surfaced the documentation gap).
858
+ #
859
+ # steps: array of Step objects
860
+ #
861
+ # --- Step ---
862
+ #
863
+ # id: string (unique within phase)
864
+ # title: string (human-readable step title)
865
+ # narrative: string (what's happening and why)
866
+ # task: string (AdCP task name: list_creative_formats, preview_creative, build_creative, get_products,
867
+ # create_media_buy, sync_accounts, etc. May reference a test-kit field, e.g.
868
+ # "$test_kit.auth.probe_task", in which case `task_default` provides the fallback.)
869
+ # Runner-owned Trusted Match probes:
870
+ # `trusted_match_missing_auth_context_probe`,
871
+ # `trusted_match_invalid_auth_context_probe`,
872
+ # `trusted_match_missing_auth_identity_probe`, and
873
+ # `trusted_match_invalid_auth_identity_probe` send the step's schema-valid
874
+ # sample_request to the matching operator-supplied publisher-facing endpoint.
875
+ # TMP does not prescribe router-ingress paths; the endpoint MUST NOT be
876
+ # inferred from provider-facing `/context` and `/identity` paths. The runner
877
+ # obtains declarative credential-header/TLS configuration from
878
+ # `preparePublisherAuthProbe`, then owns the guarded HTTP request and bounded
879
+ # response read. It MUST NOT implement these tasks through the generic
880
+ # step-level `auth` override because that path is scoped to AdCP task
881
+ # transports. The result exposed to ordinary validations includes HTTP
882
+ # status, headers, and any body. These pseudo-tasks are valid only in a
883
+ # storyboard gated by
884
+ # `requires: [trusted_match_publisher_auth_runner]` and MUST NOT be
885
+ # dispatched through an AdCP task transport.
886
+ # task_default: string (optional — default task name when `task` is a test-kit reference that resolves to null)
887
+ # schema_ref: string (path to request schema, e.g., "creative/list-creative-formats-request.json" or "media-buy/get-products-request.json")
888
+ # response_schema_ref: string (path to response schema)
889
+ # doc_ref: string (path to documentation page)
890
+ # comply_scenario: string (maps to @adcp/client testing scenario, e.g., "creative_sync")
891
+ # expected: string (human-readable description of expected behavior)
892
+ # stateful: boolean (does this step depend on state from a previous step?)
893
+ #
894
+ # sample_request: object (optional — example request payload for this step)
895
+ # Placeholders: `$context.<name>` and `{{prior_step.<id>.<field>}}`. See
896
+ # the "Substitution" section below for the full semantics. For the narrow
897
+ # case where the SDK's per-task request builder discards a body field
898
+ # from `sample_request`, use `context_inputs:` (above) as the
899
+ # post-builder injection path.
900
+ #
901
+ # Creative asset expansion: an `assets` object MAY contain the reserved
902
+ # `$build_assets_from_format` key with a `$context.<name>` value. The context
903
+ # value MUST be either canonical `FormatOption.params` captured from
904
+ # `get_products` or a legacy `FormatId` resolved against formats captured from
905
+ # `list_creative_formats`. Before request-schema validation or transport, the
906
+ # runner MUST replace the entire directive-bearing `assets` object with an
907
+ # asset map keyed by each required slot's canonical `asset_group_id` or legacy
908
+ # `asset_id`. Values come from the storyboard's test kit and MUST satisfy the
909
+ # slot contract. Image slots use an `assets.images[]` fixture satisfying the
910
+ # declared dimensions; URL slots use `assets.click_url`; text slots use
911
+ # `assets.text` only through an explicit runner-maintained mapping from the
912
+ # exact declared `asset_group_id` or legacy `asset_id` to a fixture category
913
+ # (for example, `headlines`, `descriptions`, or `cta`). Runners MUST NOT infer
914
+ # text semantics from a slot-id substring or populate an unmapped slot (for
915
+ # example, `legal`, `disclaimer`, or `alt_text`) from an arbitrary fallback
916
+ # category.
917
+ #
918
+ # Asset-fixture coverage exception: when the captured format is valid but the
919
+ # runner cannot populate a required slot from the test kit — including an
920
+ # unsupported asset type, an unknown text-slot semantic, or no image fixture
921
+ # satisfying the declared dimensions — the runner MUST stop before transport
922
+ # and grade the storyboard `not_applicable` with `skip_result.reason:
923
+ # fixture_unavailable`. As soon as the referenced format context is captured,
924
+ # the runner MUST preflight every remaining `$build_assets_from_format`
925
+ # directive that uses it before executing any intervening side-effecting
926
+ # step. On this disposition, the runner MUST terminate the storyboard without
927
+ # executing its remaining phases or emitting `prerequisite_failed` cascades.
928
+ # This early whole-storyboard preflight prevents a later fixture gap from
929
+ # leaving behind state such as an active media buy. The diagnostic detail MUST
930
+ # begin with
931
+ # `creative_asset_fixture_unavailable:` and name the slot id, asset type, and
932
+ # any unsatisfied constraint. This is a runner/test-kit coverage gap, not a
933
+ # grading signal about the agent, and MUST NOT contribute to failed steps.
934
+ # A malformed directive, or missing format context caused by a prior agent
935
+ # step failing or being skipped, follows the ordinary harness-error or
936
+ # prerequisite-failure path instead; this exception MUST NOT conceal agent
937
+ # behavior that the storyboard actually observed.
938
+ # sample_response: object (optional — example expected response; also surfaces in published docs)
939
+ #
940
+ # auth: "none" | object (optional — overrides the transport's default credentials for this step)
941
+ # auth: none → strip any configured credentials before sending
942
+ # auth: { type: api_key, from_test_kit: true } → use the API key at `auth.api_key` in the test kit
943
+ # auth: { type: api_key, from_test_kit: "auth.principals.<name>.api_key" }
944
+ # → select a named principal within a multi-principal kit
945
+ # (forward-compatible shape; no kit exposes multiple
946
+ # principals today)
947
+ # auth: { type: api_key, value_strategy: random_invalid }
948
+ # → use a per-run random bogus API key (for invalid-key probes).
949
+ # Runner generates `invalid-<32 random bytes>` per run.
950
+ # auth: { type: basic, from_test_kit: "auth.basic" } → use the Basic credential at `auth.basic` in the test kit
951
+ # auth: { type: basic, value_strategy: random_invalid }
952
+ # → use a per-run random bogus Basic credential (for invalid-Basic probes).
953
+ # Runner generates random username/password bytes per run.
954
+ # auth: { type: oauth_bearer, value_strategy: random_invalid_jwt }
955
+ # → use a per-run random JWT-shaped bogus Bearer token.
956
+ # Runner generates `<base64url random>.<base64url random>.<base64url random>` per run.
957
+ #
958
+ # Positive credential checks SHOULD use the runner's normal transport auth
959
+ # and initialized protocol session rather than step-level `auth:`. In MCP
960
+ # terms: authenticate the Streamable HTTP session, call `initialize`, then
961
+ # call the protected task. `auth:` overrides are intended for negative probes
962
+ # that deliberately strip credentials or send invalid values, where a raw
963
+ # unauthenticated-session rejection is acceptable evidence of rejection.
964
+ #
965
+ # DISALLOWED: `auth: { type: ..., value: "<literal>" }` — literal credentials in
966
+ # storyboard YAML are a code smell (they bind the storyboard to a specific value,
967
+ # can't rotate without rewriting, and leak plaintext identity into source).
968
+ # `lint-storyboard-auth-shape.cjs` (rule `literal_value`) fails the build on this
969
+ # shape. Use `from_test_kit` or `value_strategy` instead. See #2720.
970
+ #
971
+ # omit_idempotency_key: boolean (optional — when true on a task step, the runner
972
+ # skips `applyIdempotencyInvariant` and signals the SDK client via
973
+ # `skipIdempotencyAutoInject` so the request reaches the agent WITHOUT an
974
+ # `idempotency_key`. Use for missing-key rejection vectors — without this flag
975
+ # the SDK may auto-inject a key and the agent never sees the missing-key path.
976
+ # Read tools leave the key optional, so omission probes SHOULD also set this
977
+ # flag to prevent current or future runner/client auto-injection from masking
978
+ # the vector. Supplying a key on a pure read does not by itself require replay.)
979
+ #
980
+ # contributes_to: string (optional — marks this step as contributing a named flag
981
+ # that a later assert_contribution step can require)
982
+ # contributes: boolean (optional — shorthand for `contributes_to: <enclosing phase's branch_set.id>`
983
+ # introduced alongside first-class `branch_set:` declarations.
984
+ # Legal only inside a phase that declares `branch_set:`; current
985
+ # SDK runners resolve `contributes: true` to the phase's branch_set.id
986
+ # and raise a storyboard-load error on `contributes: true` outside
987
+ # a branch_set phase or on a step that also declares `contributes_to`.
988
+ # Use explicit `contributes_to` when a storyboard must remain
989
+ # compatible with older runners that grade before loader
990
+ # normalization. See adcp-client#693 and
991
+ # `lint:storyboard-branch-sets` for the full rule set.)
992
+ # contributes_if: string (optional — runner-evaluated expression gating the contribution)
993
+ # Supported grammar (single form; not a general-purpose DSL):
994
+ # "prior_step.<step_id>.passed" → true if the named prior step in the same storyboard passed
995
+ # Storyboard authors should prefer expressing gating through step ordering when possible.
996
+ #
997
+ # provides_state_for: string | string[] (optional — declares that this step's pass
998
+ # establishes equivalent state for the named peer step(s) in the same phase. Used
999
+ # to rescue the cascade-skip default when one of two interchangeable stateful
1000
+ # steps is missing on the agent: e.g., explicit-mode sellers that pre-provision
1001
+ # accounts out-of-band declare `sync_accounts` as missing_tool but expose
1002
+ # `list_accounts` as the canonical alternative — declaring
1003
+ # `provides_state_for: sync_accounts` on `list_accounts` tells the runner that
1004
+ # the substitute's pass satisfies the same downstream state contract.
1005
+ #
1006
+ # Grammar parallels `contributes_to`: declared on the substitute step, names
1007
+ # the target peer(s) whose state it provides. The two fields are independent —
1008
+ # `contributes_to` flows branch-set flags into a later `assert_contribution`;
1009
+ # `provides_state_for` waives a peer's missing-tool / missing-test-controller
1010
+ # cascade so downstream stateful steps still run.
1011
+ #
1012
+ # Array semantics: `provides_state_for: [A, B]` is ALL-OF — one substitute pass
1013
+ # establishes state for both A and B simultaneously. ANY-OF semantics are not
1014
+ # supported; if a substitute only conditionally satisfies a peer, model it as
1015
+ # two separate substitute steps.
1016
+ #
1017
+ # Validation rules (enforced by lint:storyboard-provides-state-for, fail at
1018
+ # parse time):
1019
+ # - Same-phase only. The target step MUST live in the same phase as the
1020
+ # substitute step. Cross-phase substitution is rejected; a cross-phase
1021
+ # state contract belongs in `context_outputs` / `context_inputs`, not
1022
+ # this field.
1023
+ # - Target step must exist in the same phase by `id`.
1024
+ # - Target step MUST declare `stateful: true`. Stateless peers don't
1025
+ # carry a state contract to substitute for.
1026
+ # - Substitute step MUST declare `stateful: true`. A stateless step
1027
+ # cannot establish equivalent state on the agent side.
1028
+ # - Self-references (`provides_state_for: <own_id>`) are rejected.
1029
+ # - Cycles (A→B and B→A in the same phase) are rejected. The peer-graph
1030
+ # per phase MUST be acyclic.
1031
+ #
1032
+ # Runner behavior (see runner-output-contract.yaml > skip_result.reasons.peer_substituted):
1033
+ # - When the substitute step passes AND the target peer would otherwise
1034
+ # grade `missing_tool` / `missing_test_controller`, the runner MUST
1035
+ # grade the target peer with skip reason `peer_substituted` (not
1036
+ # `missing_tool`) and MUST NOT cascade `prerequisite_failed` to
1037
+ # downstream stateful steps in subsequent phases.
1038
+ # - When the substitute step itself fails or is skipped, the cascade
1039
+ # proceeds as if `provides_state_for` were absent — the substitute
1040
+ # did not establish the state it claimed.
1041
+ #
1042
+ # See adcontextprotocol/adcp#3734 (mechanism rationale) and
1043
+ # adcp-client#1130 (the cascade-skip default this field rescues).
1044
+ #
1045
+ # context_outputs: array of ContextOutput objects (optional — capture values from
1046
+ # this step's response into the runner's context accumulator so later steps can
1047
+ # reference them via $context.<name>). Each entry:
1048
+ # - name: string (the context variable to populate; MUST be unique within the
1049
+ # storyboard run)
1050
+ # path: string (JSON path against this step's response body, e.g.
1051
+ # "media_buy_id", "accounts[0].account_id", "plans[0].plan_id")
1052
+ # generate: string (alternative to `path`: mint a value at run start
1053
+ # rather than capture from a response. Supported generator names:
1054
+ # - uuid_v4 — RFC 4122 v4 UUID
1055
+ # - opaque_id — RFC 4122 v4 UUID (alias; the two names exist for
1056
+ # spec-vs-implementation framing — use uuid_v4 when
1057
+ # the threaded value will appear as a UUID on the
1058
+ # wire, opaque_id when callers treat it as an
1059
+ # opaque correlation token).
1060
+ # Exactly one of `path` or `generate` MUST be set on each entry.
1061
+ # Setting both is a storyboard-load failure. Generated values are
1062
+ # materialized once per storyboard run and stored under
1063
+ # `context.<name>` so later steps' `$context.<name>` substitutions
1064
+ # resolve to the same value. Use for deterministic correlation
1065
+ # IDs (e.g. threading task_id through force_create_media_buy_arm
1066
+ # register → create_media_buy → force_task_completion → tasks/get
1067
+ # poll) without authors copy-pasting magic strings. Requires
1068
+ # runner >= adcp-client v6.x with `generate` support (see
1069
+ # adcp-client#1006); older runners reject the field at load.
1070
+ #
1071
+ # Example — deterministic task_id threading:
1072
+ # context_outputs:
1073
+ # - name: forced_task_id
1074
+ # generate: uuid_v4
1075
+ # # Subsequent steps reference $context.forced_task_id
1076
+ # # in sample_request / context_inputs.
1077
+ #
1078
+ # Special path prefix `task_completion.<inner>`: when the immediate response
1079
+ # carries a non-terminal AdCP response (status `submitted` / `working` /
1080
+ # `input-required`, carrying a `task_id`), the runner polls the AdCP task
1081
+ # until it reaches a terminal state and resolves `<inner>` against the
1082
+ # completion result instead of the immediate response. On the AdCP v3 A2A profile,
1083
+ # this means fresh `get_task_status` invocations; MCP may use its advertised
1084
+ # AdCP polling task, including the legacy `tasks/get` alias. Use
1085
+ # for captures whose value only exists on the completion artifact — e.g.
1086
+ # the seller-assigned `media_buy_id` on an IO-signing / async-signed HITL
1087
+ # flow where `create_media_buy` returns `submitted` and the ID lands on
1088
+ # the completion artifact. Without the prefix, the literal key
1089
+ # `task_completion` is looked up on the immediate response, which fails
1090
+ # as `capture_path_not_resolvable`. Requires runner >= adcp-client v6.7;
1091
+ # older runners treat the prefix as a literal key. See adcp-client#1417
1092
+ # (rationale) and adcp-client#1426 (implementation).
1093
+ #
1094
+ # Runner behavior:
1095
+ # - Captures occur AFTER the step's validations pass. A failed step MUST NOT
1096
+ # populate the context accumulator — downstream $context.<name> references
1097
+ # resolve to an unresolved_substitution error, which grades the dependent
1098
+ # step as failed rather than the storyboard passing on fabricated state.
1099
+ # - Paths that do not resolve to a usable value in the response body (absent,
1100
+ # null, or "") are a runner-side grading failure on THIS step
1101
+ # (capture_path_not_resolvable), not on the downstream reader — the capture
1102
+ # declared a contract that the response did not meet. The capturing step
1103
+ # grades as failed; downstream steps that depended on the captured value
1104
+ # grade as skipped with reason: prerequisite_failed citing this step.
1105
+ # See runner-output-contract.yaml > validation_result for the output shape.
1106
+ # - The accumulator is storyboard-run-scoped; values do not leak across runs.
1107
+ # - Special path prefix `task_completion.<inner>`: when the immediate
1108
+ # response carries a non-terminal AdCP status (submitted/working,
1109
+ # with a task_id), the runner polls the AdCP task until it exits
1110
+ # {submitted, working}. On `completed`: resolves <inner> against the
1111
+ # `result` payload; a missing path grades this step as
1112
+ # capture_path_not_resolvable. On any other status (failed, canceled,
1113
+ # rejected, auth-required, input-required, unknown): `result` is absent;
1114
+ # the capture grades as capture_path_not_resolvable on this step;
1115
+ # downstream $context.<name> references grade as prerequisite_failed
1116
+ # citing this step. See adcp-client#1426 for the implementation.
1117
+ #
1118
+ # context_inputs: array of ContextInput objects (optional — inject captured
1119
+ # context values into the request at a specific path AFTER the per-task
1120
+ # request builder runs).
1121
+ #
1122
+ # Shape:
1123
+ # context_inputs:
1124
+ # - key: product_format_id # name populated by a prior context_outputs capture
1125
+ # inject_at: "format_ids[0]" # JSON path inside the request body
1126
+ #
1127
+ # Do NOT use `context_inputs` unless `$context.<name>` inside
1128
+ # `sample_request:` has been tried and verified not to reach the wire.
1129
+ # The default substitution path is `$context.<name>` placeholders inside
1130
+ # `sample_request:` — keep the request body honest about what the agent
1131
+ # will receive. Reasons the default is preferred:
1132
+ # - The published sample_response/sample_request pair is what seller
1133
+ # engineers read to implement against the storyboard; anything the
1134
+ # runner injects out-of-band is invisible there.
1135
+ # - `$context.<name>` produces a pointed `unresolved_substitution` failure
1136
+ # when the referenced capture is missing. `context_inputs` is
1137
+ # silently a no-op on a missing `key` (runner:
1138
+ # `if (input.key in context) setPath(...)`) — a typo in `key` or a
1139
+ # failed capture produces an empty field rather than a loud error.
1140
+ #
1141
+ # Legitimate uses:
1142
+ # - The @adcp/client per-task request builder for a given tool discards
1143
+ # body fields from `sample_request` (the runner's post-builder merge
1144
+ # only forwards envelope fields: `context`, `ext`, `idempotency_key`,
1145
+ # `push_notification_config`). The observable symptom is that the
1146
+ # agent answers with an unfiltered/default result and a round-trip
1147
+ # or substitution-observer validation grades on fabricated state.
1148
+ # `context_inputs` runs AFTER the builder, so it round-trips the
1149
+ # captured value to the wire regardless.
1150
+ # - Dependency-aware multi-instance dispatch, where the runner needs to
1151
+ # route a step to a specific replica URL derived from a prior step's
1152
+ # response (not applicable to single-instance storyboards).
1153
+ #
1154
+ # Value types are preserved. The captured value is written to `inject_at`
1155
+ # as-is — object and numeric captures are NOT stringified, matching the
1156
+ # `$context.<name>` behavior described below.
1157
+ #
1158
+ # Document every SDK-gap-workaround entry inline. The comment MUST name
1159
+ # the SDK version that carries the gap and the upstream PR that closes
1160
+ # it, so the entry can be removed when we bump past that release. See
1161
+ # `static/compliance/source/protocols/media-buy/index.yaml`
1162
+ # (`list_formats_integrity` step) for a worked example tied to
1163
+ # adcontextprotocol/adcp-client#789.
1164
+ #
1165
+ # validations: array of Validation objects (optional)
1166
+ #
1167
+ # expect_error: boolean (optional, default false — when true, the runner expects
1168
+ # the agent to return an error response for this step. Paired with `negative_path`
1169
+ # to control whether the step's `sample_request` is schema-validated.)
1170
+ #
1171
+ # negative_path: "schema_invalid" | "payload_well_formed" (optional, default "schema_invalid")
1172
+ # Disambiguates two categories of negative-path steps when `expect_error: true`:
1173
+ # - schema_invalid (default): the `sample_request` payload is intentionally malformed
1174
+ # (missing required field, wrong type, bad enum value, etc.) to verify the agent's
1175
+ # validation response. Schema validation is SKIPPED on this step.
1176
+ # - payload_well_formed: the `sample_request` payload is schema-valid but the agent
1177
+ # rejects it at runtime — wrong state-machine transition, resource not found,
1178
+ # governance denial, auth failure, temporal constraint, etc. Schema validation
1179
+ # RUNS even though the agent is expected to return an error. Shape drift on these
1180
+ # steps is caught statically.
1181
+ # Omitting `negative_path` when `expect_error: true` behaves as `schema_invalid`
1182
+ # (backwards-compatible default).
1183
+ #
1184
+ # sample_request_skip_schema: boolean (optional — explicit opt-out of schema
1185
+ # validation for a step regardless of `expect_error` / `negative_path`. Use
1186
+ # sparingly; prefer `negative_path: schema_invalid` for intentionally malformed
1187
+ # negative-path fixtures.)
1188
+ #
1189
+ # expected_arm: string (optional — names the discriminator value of the `oneOf`
1190
+ # arm this step expects the agent to return. When present, both the
1191
+ # context-output-paths and validations-paths lints restrict path resolution
1192
+ # to the matching arm only. Default behavior (no annotation) accepts a path
1193
+ # that resolves through ANY oneOf arm — the right call for "no prior info,"
1194
+ # but it lets a step capture or assert on a path that's defined on, say, the
1195
+ # Acquired arm even when the storyboard semantically expects the Rejected
1196
+ # arm. The annotation tightens that.
1197
+ #
1198
+ # Match shape: the lint walks each `oneOf` / `anyOf` branch and looks for
1199
+ # ANY property with `const: "<expected_arm>"`. The first matching branch
1200
+ # is the expected arm; subsequent path resolution restricts to it.
1201
+ #
1202
+ # Examples:
1203
+ # expected_arm: "acquired" # matches AcquireRightsAcquired (status.const = "acquired")
1204
+ # expected_arm: "rejected" # matches AcquireRightsRejected
1205
+ # expected_arm: "pending_approval" # matches AcquireRightsPendingApproval
1206
+ #
1207
+ # When `expect_error: true` is set without `expected_arm`, the lint also
1208
+ # tries to find an Error arm (one whose `required` list includes `errors`
1209
+ # and which has no `status` const) and restricts to it. This covers
1210
+ # `acquire_rights` / `creative_approval` / similar response shapes whose
1211
+ # Error arm isn't const-discriminated.
1212
+ #
1213
+ # When the named arm doesn't match any branch, the lint emits an
1214
+ # `unknown_expected_arm` violation — an authoring bug to fix at storyboard
1215
+ # author time, not at runtime.
1216
+ #
1217
+ # --- Phase (optional fields for conditional execution) ---
1218
+ #
1219
+ # optional: boolean (default false — see semantics below)
1220
+ # skip_if: string (expression — phase is skipped when the expression evaluates to true,
1221
+ # e.g., "!test_kit.auth.api_key")
1222
+ # branch_set: object (optional — first-class declaration of branch-set membership;
1223
+ # see "Branch sets" section below)
1224
+ #
1225
+ # Optional phase semantics:
1226
+ # - An `optional: true` phase always runs unless `skip_if` evaluates to true.
1227
+ # `skip_if` (e.g., "!test_kit.auth.api_key") means "skip this phase when the
1228
+ # expression is true"; without `skip_if`, the phase runs every time.
1229
+ # - Failures inside an optional phase do NOT fail the overall storyboard on
1230
+ # their own — the phase is for accumulating contributions toward a later
1231
+ # `assert_contribution` check. The final assert is what fails the storyboard
1232
+ # when no optional path succeeded.
1233
+ # - A non-optional phase that fails fails the storyboard unconditionally.
1234
+ #
1235
+ # Branch sets:
1236
+ # A branch set is a group of peer optional phases exercising mutually
1237
+ # exclusive agent behaviors for the same trigger — e.g., an operation whose
1238
+ # spec permits either an immediate success response or a pending-review
1239
+ # response depending on seller policy. A later `assert_contribution` step
1240
+ # over the set's `branch_set.id` fails the storyboard only when NO branch
1241
+ # contributed.
1242
+ #
1243
+ # Minimal example — two peer phases and the assertion that grades them:
1244
+ #
1245
+ # phases:
1246
+ # - id: immediate_success_path
1247
+ # optional: true
1248
+ # branch_set:
1249
+ # id: operation_handled
1250
+ # semantics: any_of
1251
+ # steps:
1252
+ # - id: submit_immediate_success
1253
+ # task: example_operation
1254
+ # contributes_to: operation_handled
1255
+ # # ... expect status: "accepted" ...
1256
+ #
1257
+ # - id: pending_review_path
1258
+ # optional: true
1259
+ # branch_set:
1260
+ # id: operation_handled
1261
+ # semantics: any_of
1262
+ # steps:
1263
+ # - id: submit_pending_review
1264
+ # task: example_operation
1265
+ # contributes_to: operation_handled
1266
+ # # ... expect status: "pending_review" ...
1267
+ #
1268
+ # - id: operation_enforcement
1269
+ # steps:
1270
+ # - task: assert_contribution
1271
+ # validations:
1272
+ # - check: any_of
1273
+ # allowed_values: [operation_handled]
1274
+ #
1275
+ # `@adcp/client` 5.8.0+ also accepts the boolean shorthand
1276
+ # `contributes: true` on a step inside a branch_set phase — the runner's
1277
+ # loader resolves it to the enclosing phase's `branch_set.id`. The two
1278
+ # forms are semantically identical in current SDK runners. Use explicit
1279
+ # `contributes_to: <branch_set.id>` for storyboards that need to run against
1280
+ # older graders that may inspect the field before loader normalization;
1281
+ # use `contributes: true` only when the target runner line is known to
1282
+ # support shorthand normalization. The lint enforces both forms.
1283
+ #
1284
+ # New storyboards MUST declare branch-set membership with a `branch_set:`
1285
+ # object. The implicit-detection fallback below exists only so pre-#2633
1286
+ # storyboards keep running unchanged.
1287
+ #
1288
+ # `branch_set:` field shape:
1289
+ # - id: non-empty string. MUST equal the `contributes_to` value
1290
+ # on every contributing step inside the phase and MUST
1291
+ # appear in the `assert_contribution` step's any_of
1292
+ # allowed_values.
1293
+ # - semantics: `any_of`. No other value is supported today.
1294
+ #
1295
+ # Per-step contribution signalling is REQUIRED on each contributing step —
1296
+ # the phase-level `branch_set:` declares membership but does not replace
1297
+ # the step-level flag. Runners accumulate contributions at the step level.
1298
+ # Two equivalent forms in current SDK runners:
1299
+ # - `contributes_to: <branch_set.id>` (compatibility-safe string form;
1300
+ # required outside a branch_set phase and must equal `branch_set.id`
1301
+ # inside one)
1302
+ # - `contributes: true` (shorthand inside a branch_set phase; resolves
1303
+ # to the enclosing phase's `branch_set.id` on runners that support
1304
+ # shorthand normalization)
1305
+ #
1306
+ # Authoring rules (enforced by `lint:storyboard-branch-sets`):
1307
+ # - A phase with `branch_set:` MUST set `optional: true`. A
1308
+ # non-optional phase's failure would fail the storyboard
1309
+ # unconditionally and defeat the any_of semantics.
1310
+ # - All phases in a storyboard sharing the same `branch_set.id` MUST
1311
+ # share the same `branch_set.semantics`.
1312
+ # - A storyboard with a `branch_set:` declaration MUST contain an
1313
+ # `assert_contribution` step whose `validations[].check: any_of`
1314
+ # includes the `branch_set.id` in `allowed_values`. Any
1315
+ # `contributes_to:` / `contributes: true` whose resolved flag has no
1316
+ # matching assert_contribution is flagged as `orphan_contribution` —
1317
+ # nothing grades it.
1318
+ # - Any step inside a branch-set phase that declares `contributes_to`
1319
+ # MUST use the value `<branch_set.id>`.
1320
+ # - A step MUST NOT declare both `contributes` and `contributes_to`
1321
+ # (ambiguous). `contributes: true` is legal only inside a phase
1322
+ # that declares `branch_set:`.
1323
+ # - If any phase declares `branch_set: { id: X, ... }`, every optional
1324
+ # phase in the same storyboard whose steps contribute to X MUST also
1325
+ # declare `branch_set: { id: X, ... }`. A mixed-mode storyboard (one
1326
+ # peer declared, one peer relying on implicit detection) would be
1327
+ # graded as a single-member set by a runner preferring the explicit
1328
+ # declaration.
1329
+ #
1330
+ # Runner grading:
1331
+ # Runners MUST prefer the explicit `branch_set:` declaration when
1332
+ # present and fall back to implicit detection otherwise (see below).
1333
+ # - If at least one peer branch contributed the `branch_set.id`, the
1334
+ # non-contributing branch's failing steps MUST be graded with skip
1335
+ # reason `peer_branch_taken` (see
1336
+ # runner-output-contract.yaml > skip_result.reasons.peer_branch_taken).
1337
+ # They MUST NOT surface as `failed` in the storyboard summary, and
1338
+ # MUST NOT be conflated with `not_applicable` (reserved for coverage
1339
+ # gaps — agent didn't declare the protocol).
1340
+ # - If no branch contributed, the final `assert_contribution` step
1341
+ # fails the storyboard. Individual branch step failures still grade
1342
+ # `failed` so the implementor sees what each branch observed.
1343
+ #
1344
+ # When to use a branch set:
1345
+ # Only when the AdCP spec permits multiple conformant behaviors for
1346
+ # the same trigger. If the spec mandates one behavior, write a
1347
+ # required phase — a branch set where only one branch is legal
1348
+ # weakens the test to any_of and hides regressions. Branch sets are
1349
+ # not for optional features (use `skip_if` and coverage flags) or
1350
+ # for progressive disclosure (use sequential phases).
1351
+ #
1352
+ # Authoring guidance: keep branch sets flat — two or three peer phases
1353
+ # is typical. Nested branch sets (a branch set whose member is itself a
1354
+ # branch set) are out of scope for runners. If a scenario needs deeper
1355
+ # branching, restructure into separate storyboards or a linear sequence.
1356
+ #
1357
+ # Implicit branch-set detection (DEPRECATED — pre-#2633 storyboards only):
1358
+ # When no phase in a storyboard declares `branch_set:`, runners fall
1359
+ # back to the legacy rule: a branch set is the set of `optional: true`
1360
+ # phases whose steps declare the same `contributes_to: <flag>` value
1361
+ # as a later `assert_contribution` step's
1362
+ # `validations[].check: any_of, allowed_values: [<flag>]` target.
1363
+ # Fragile against typos in `contributes_to:` — new storyboards MUST
1364
+ # use the explicit form above. This fallback exists only so
1365
+ # pre-#2633 storyboards keep running during migration.
1366
+ #
1367
+ # Cross-storyboard contradiction lint:
1368
+ # The `lint:storyboard-contradictions` script groups every step-with-
1369
+ # assertions across every storyboard by (task, canonicalized request
1370
+ # fingerprint, prior-state fingerprint, env fingerprint) and flags
1371
+ # groups whose asserted outcomes disagree in a way no conformant agent
1372
+ # can satisfy (success ↔ error, or disjoint error-code sets).
1373
+ #
1374
+ # Env fingerprint includes the storyboard's top-level `id:`, so two
1375
+ # separate storyboards exercising different controller-seeded states
1376
+ # are legitimately independent test suites and do not collide. To make
1377
+ # two different storyboards' assertions collide — e.g., to catch
1378
+ # "storyboard A assumes media_buy_id X is active, storyboard B
1379
+ # assumes it is canceled" — use matching `comply_scenario:` values or
1380
+ # shared `prerequisites.controller_seeding`.
1381
+ #
1382
+ # Branch-set peers (two optional phases in the same storyboard sharing
1383
+ # a `branch_set.id`) are exempt from contradiction flagging by design:
1384
+ # any_of semantics intentionally asserts mutually exclusive outcomes.
1385
+ #
1386
+ # Mutating-task detection: the lint's prior-state fingerprint partitions
1387
+ # steps by the ordered list of prior MUTATING tasks. A task is mutating
1388
+ # iff its request schema declares `"x-mutates-state": true` at the top
1389
+ # level. The annotation is consumed by
1390
+ # `scripts/lint-storyboard-contradictions.cjs` (which builds the
1391
+ # mutating-task set at lint time) and is the single source of truth for
1392
+ # this concern.
1393
+ #
1394
+ # Decidability rule (apply to any new task):
1395
+ # A task declares `"x-mutates-state": true` iff a conformant compliance
1396
+ # suite could write an assertion — on any later `get_*`, `list_*`, or
1397
+ # follow-up call — whose outcome depends on this request having run.
1398
+ # Equivalently: "this task changes observable server state a later
1399
+ # conformant call may assert against."
1400
+ #
1401
+ # Mutating task classes (illustrative; the decidability rule above is
1402
+ # the actual test):
1403
+ # - Writes (create/update/delete/sync/build) — resource lifecycle.
1404
+ # - State transitions (cancel, approve, reject) — status moves.
1405
+ # - Session-scoped primitives (si_initiate_session, si_send_message,
1406
+ # si_terminate_session) — session lifecycle.
1407
+ # - Reporting/audit writes (log_event, report_usage,
1408
+ # report_plan_outcome, provide_performance_feedback) — mutating
1409
+ # because `get_plan_audit_logs` and billing-summary tasks can assert
1410
+ # against their recorded outputs.
1411
+ #
1412
+ # Non-mutating task classes:
1413
+ # - Read-only tasks (get_*, list_*, check_*, validate_*, preview_*) do
1414
+ # not declare `x-mutates-state` UNLESS the read itself produces
1415
+ # observable state a later task can assert against (e.g., a view
1416
+ # counter that `get_analytics` can read) — those are mutating
1417
+ # regardless of prefix.
1418
+ # - Pure-compute tasks (no state read or write — estimates,
1419
+ # calculations) MUST NOT declare `x-mutates-state`.
1420
+ #
1421
+ # Relationship to idempotency_key (decoupled, do not unify):
1422
+ # `x-mutates-state` declares mutation semantics. `required:
1423
+ # [idempotency_key]` declares the idempotency mechanism. The sets
1424
+ # overlap ~95% but legitimately diverge for naturally-idempotent
1425
+ # mutations. Example: `comply_test_controller` declares
1426
+ # `x-mutates-state: true` but omits `idempotency_key` from `required`
1427
+ # because the `scenario` enum is the dedup boundary — replaying
1428
+ # `force_media_buy_status=active` converges to the same observable
1429
+ # state without a key. `si_terminate_session` is the same shape
1430
+ # (session_id is the dedup boundary). `scripts/build-compliance.cjs`
1431
+ # reads `idempotency_key` for its own enforcement; do not try to share
1432
+ # the two reads.
1433
+ #
1434
+ # --- Validation ---
1435
+ #
1436
+ # CANONICAL CHECK ENUM
1437
+ # --------------------
1438
+ # The authored check kinds storyboards MAY declare in `step.validations[].check`
1439
+ # live in `runner-output-contract.yaml > authored_check_kinds` (structured
1440
+ # YAML; this file is comment-only documentation). The build-time lint
1441
+ # `scripts/lint-storyboard-check-enum.cjs` reads from there; runtime
1442
+ # forward-compat (unknown kinds → not_applicable) is documented in
1443
+ # runner-output-contract.yaml > validation_result. Add new kinds to that
1444
+ # enum AND document semantics here in the same PR.
1445
+ #
1446
+ # id: string (optional stable machine-readable identifier for this validation.
1447
+ # Use when a step declares multiple validations that need a
1448
+ # durable cross-reference in runner output, dashboards, support
1449
+ # requests, or SDK adapters. The value is author-chosen and
1450
+ # stable across description/path edits; it SHOULD be unique
1451
+ # within the containing step's `validations` array. Runners
1452
+ # echo this value in `validation_result.id`; see
1453
+ # runner-output-contract.yaml > validation_result.)
1454
+ # check: string (what to validate: "response_schema", "field_present",
1455
+ # "field_pattern" (path MUST resolve to a string matching
1456
+ # `pattern`, a JavaScript regular expression source),
1457
+ # "envelope_field_present" / "envelope_field_absent" (walks
1458
+ # protocol-envelope.json instead of response_schema_ref — use for
1459
+ # top-level envelope fields like `status`, `task_status`, and
1460
+ # `response_status`),
1461
+ # "envelope_field_pattern" (same as field_pattern, but scoped to
1462
+ # protocol-envelope.json / version-envelope.json instead of
1463
+ # response_schema_ref),
1464
+ # "field_value",
1465
+ # "field_value_or_absent",
1466
+ # "field_contains" (wildcard-aware membership check; `path` may
1467
+ # use `[*]` segments and passes when any resolved value matches
1468
+ # `value` or one of `allowed_values`; object/array expectations
1469
+ # are matched as deep subsets),
1470
+ # "array_length" (asserts exact array cardinality with `value`,
1471
+ # or an inclusive range with `min` / `max`),
1472
+ # "status_code", "http_status", "http_status_in",
1473
+ # "error_code", "on_401_require_header", "resource_equals_agent_url",
1474
+ # "oauth_metadata_graph",
1475
+ # "any_of", "refs_resolve", "a2a_submitted_artifact",
1476
+ # "field_greater_than" (strict finite-number comparison against
1477
+ # a literal threshold),
1478
+ # "field_less_than" / "field_equals_context" /
1479
+ # "field_in_context_array" (compare a field on this
1480
+ # step's response against a value captured by a prior step — see
1481
+ # "Cross-step comparison" section below),
1482
+ # "upstream_traffic" (asserts side-effects via comply_test_controller's
1483
+ # query_upstream_traffic scenario — see "upstream_traffic" section below),
1484
+ # "canonical_format_satisfaction" (asserts create_media_buy package
1485
+ # selectors against prior get_products format_options[] context — see
1486
+ # "Canonical format satisfaction" section below))
1487
+ # severity: string (optional, default "required"): "required" | "advisory".
1488
+ # A "required" validation failure fails the step and contributes
1489
+ # to steps_failed; this is the default. An "advisory" failure
1490
+ # surfaces in the validation_result with passed: false but does
1491
+ # NOT fail the step — the step grades on its remaining required
1492
+ # validations. Advisory failures contribute to a distinct
1493
+ # `validations_advisory_failed` counter on run_summary so they
1494
+ # stay visible without polluting conformance verdicts.
1495
+ #
1496
+ # Use case: a storyboard declares a check whose runner support
1497
+ # is rolling out (e.g., upstream_traffic during the months
1498
+ # between the contract spec landing and the @adcp/sdk runner
1499
+ # shipping it). Authors flip severity: advisory while
1500
+ # instrumentation matures, then drop the field (or set
1501
+ # "required") once adoption is stable. Without this escape
1502
+ # valve, the choice was binary: declare the check and break
1503
+ # conformance for adopters who haven't caught up, or omit it
1504
+ # entirely and lose the validation surface during rollout.
1505
+ # Distinct from the runtime forward-compat default (unknown
1506
+ # check kinds → not_applicable): forward-compat handles
1507
+ # runner-spec version skew; severity handles author-managed
1508
+ # rollout gating.
1509
+ # expires_after_version: string (optional, only meaningful when severity:
1510
+ # advisory): semver gating runtime promotion of this advisory
1511
+ # to "required". Closes the advisory-drift problem:
1512
+ # storyboards declared with severity: advisory during an
1513
+ # adoption window get force-promoted once runners catch up,
1514
+ # so authors don't need to track every advisory entry across
1515
+ # every PR.
1516
+ #
1517
+ # Versioning anchor: the comparison is against the runner's
1518
+ # self-declared `runner_capability_version` (see
1519
+ # runner-output-contract.yaml > run_summary), NOT against
1520
+ # any specific implementation's package version. The runner
1521
+ # chooses what its capability version corresponds to —
1522
+ # @adcp/sdk semver, the AdCP spec version it implements, or
1523
+ # a runner-binary version — and declares it in run_summary.
1524
+ # Storyboard authors target the spec capability they need,
1525
+ # not a specific SDK package; runners self-report the
1526
+ # capability they offer.
1527
+ #
1528
+ # Runner behavior: at storyboard-load time the runner
1529
+ # compares its own runner_capability_version to
1530
+ # expires_after_version using semver.gte. If
1531
+ # runner_capability_version >= expires_after_version, the
1532
+ # runner MUST promote severity to "required" — advisory
1533
+ # failures then fail the step. The validation_result MUST
1534
+ # carry severity_promoted_from_advisory: true to surface the
1535
+ # promotion on rendered reports.
1536
+ #
1537
+ # Forward-compat ordering: when a storyboard declares both
1538
+ # an unknown check kind (graded `not_applicable` per #3816's
1539
+ # forward-compat clause) AND severity: advisory +
1540
+ # expires_after_version, forward-compat resolves FIRST. The
1541
+ # check grades not_applicable and severity_promoted_from_advisory
1542
+ # MUST be absent — no promotion was evaluated because no
1543
+ # grading occurred. Promotion only applies to checks the
1544
+ # runner actually grades.
1545
+ #
1546
+ # Pre-release tags: comparison uses standard semver including
1547
+ # pre-releases (RFC §11). `6.5.0-rc.3 < 6.5.0`. Authors
1548
+ # wanting "after 6.5.0 stable" write `6.5.0`; authors
1549
+ # wanting "after any 6.5.0 pre-release" write `6.5.0-0`.
1550
+ # The runner MUST use semver.gte semantics, not a custom
1551
+ # comparator. Authors targeting a specific minor without
1552
+ # regard to pre-release status SHOULD write the lowest
1553
+ # pre-release form (`X.Y.0-0`) when they want to include
1554
+ # early adopters running RC builds.
1555
+ #
1556
+ # Permanent advisories — see `permanent_advisory` field
1557
+ # below for declaring an advisory that's deliberately not
1558
+ # gated on runner version.
1559
+ #
1560
+ # Format: a semver-valid string. The build-time lint at
1561
+ # scripts/lint-storyboard-advisory-expiry.cjs MUST validate
1562
+ # the value via Node's `semver.valid()` and reject malformed
1563
+ # values; this prevents typos AND bounds the trust surface
1564
+ # on the value when it's interpolated into rendered reports.
1565
+ #
1566
+ # permanent_advisory: object (optional, only meaningful when severity:
1567
+ # advisory and expires_after_version is absent): structured
1568
+ # marker declaring this advisory is deliberately not gated
1569
+ # on runner version. Use case: experimental signals where
1570
+ # the spec authors explicitly want the advisory grade to
1571
+ # persist regardless of runner adoption.
1572
+ #
1573
+ # Shape:
1574
+ # permanent_advisory:
1575
+ # reason: "<text>"
1576
+ #
1577
+ # Replaces the earlier `# advisory-permanent: <reason>` YAML
1578
+ # comment marker (which broke under YAML round-tripping in
1579
+ # editor formatters and downstream tooling). Structured
1580
+ # field is greppable, schema-validatable, and the reason is
1581
+ # machine-readable for dashboards.
1582
+ #
1583
+ # Schema requirement: when severity: advisory is declared,
1584
+ # exactly one of `expires_after_version` or
1585
+ # `permanent_advisory` MUST be present. The build-time lint
1586
+ # surfaces violations (warning, not error — drift is a
1587
+ # judgment call).
1588
+ # path: string (JSON path to the field, e.g., "formats[0].format_id")
1589
+ # value: any (expected value — string, number, or boolean; required when check is "field_value";
1590
+ # accepted (optional) when check is "field_value_or_absent";
1591
+ # required on "field_greater_than"; accepted (optional) on
1592
+ # "field_less_than" as a literal comparand when
1593
+ # `context_key` is not set; a non-negative integer exact count for
1594
+ # "array_length" when range bounds are not used)
1595
+ # min: integer (optional inclusive lower bound for "array_length"; non-negative)
1596
+ # max: integer (optional inclusive upper bound for "array_length"; non-negative)
1597
+ # allowed_values: array (acceptable values for "field_value", "field_value_or_absent",
1598
+ # "field_contains", "http_status_in", "error_code", "any_of")
1599
+ # context_key: string (only meaningful for "field_less_than" /
1600
+ # "field_equals_context" / "field_in_context_array"
1601
+ # cross-step comparison checks — names a key populated by a prior
1602
+ # step's `context_outputs`. Required on
1603
+ # "field_equals_context" and "field_in_context_array";
1604
+ # optional on "field_less_than" (falls back to the literal `value`
1605
+ # when omitted). Ignored on every other check kind. When set and
1606
+ # the key is absent from the storyboard accumulator, the check
1607
+ # passes with a `context_key_absent` observation — see
1608
+ # "Cross-step comparison" section below.)
1609
+ # description: string (human-readable description of validation)
1610
+ #
1611
+ # field_value_or_absent check:
1612
+ # Passes when the field is absent OR present and equal to `value` / contained in
1613
+ # `allowed_values`; fails only when the field is present with a disallowed value.
1614
+ # Use for fields that the spec permits to be omitted but MUST NOT carry a wrong value
1615
+ #
1616
+ # field_greater_than check:
1617
+ # Requires the value at `path` and the literal `value` threshold to be finite
1618
+ # numbers, and passes only when the observed value is strictly greater.
1619
+ # when present (e.g., a `replayed` flag that MAY be omitted on a fresh path but MUST
1620
+ # NOT be true). Accepts both `value` (single expected value) and `allowed_values` (set
1621
+ # membership); at least one of the two MUST be provided. A `field_value_or_absent` check
1622
+ # that declares neither `value` nor `allowed_values` is a storyboard-load error; runners
1623
+ # MUST reject the storyboard before execution begins.
1624
+ # For fields that are required by the response schema, pair this check with a separate
1625
+ # `check: field_present` to avoid silently accepting absent fields that are required.
1626
+ #
1627
+ # array_length check:
1628
+ # Resolves `path` to one array and asserts its cardinality. Authors choose
1629
+ # exactly one configuration: `value: N` for an exact count, or `min: N` /
1630
+ # `max: N` for inclusive bounds (either bound may be omitted). Counts MUST be
1631
+ # non-negative integers and `min` MUST NOT exceed `max`. A missing path or a
1632
+ # non-array value fails; this check has no optional-field arm. Wildcard paths
1633
+ # are not supported. Failure output uses the array path as `json_pointer`, the
1634
+ # requested count or bounds as `expected`, and the observed cardinality as
1635
+ # `actual`. For a missing/non-array path, failure output instead uses
1636
+ # `expected: "array"` and the observed value as `actual` (null when absent).
1637
+ #
1638
+ # OAuth discovery graph — use `check: oauth_metadata_graph`:
1639
+ # Applies only to a `protected_resource_metadata` runner task. Starting from
1640
+ # the RFC 9728 document returned by that task, the runner validates the full
1641
+ # public OAuth discovery graph described by `test-kits/oauth-setup-runner.yaml`:
1642
+ # the protected-resource identifier, a non-empty `authorization_servers`
1643
+ # array, every referenced RFC 8414 document, resource equality under the
1644
+ # shared `resource_equals_agent_url` rule (scheme and host lowercased,
1645
+ # default ports elided, path case-sensitive), exact issuer string equality
1646
+ # after JSON decoding (without URL normalization),
1647
+ # conditional RFC 8414 required fields, HTTPS URL constraints, and passive
1648
+ # reachability of advertised authorization, token, and JWKS endpoints.
1649
+ #
1650
+ # The check follows EVERY authorization server named in a graph that is within
1651
+ # the runner contract's fixed limits; an oversized graph fails with
1652
+ # `oauth_graph_limit_exceeded` before unbounded traversal. A valid,
1653
+ # explicitly named authorization server on another origin is conformant;
1654
+ # origin equality with the protected resource MUST NOT be imposed. Every URL
1655
+ # is independently subject to the runner contract's SSRF, redirect, size, and
1656
+ # timeout policy before it is fetched.
1657
+ #
1658
+ # `registration_endpoint` is syntax-checked when advertised, but this check
1659
+ # MUST NOT submit an RFC 7591 registration request. Active registration has
1660
+ # credential-lifecycle and cleanup semantics and belongs to a separately
1661
+ # capability-gated future grade.
1662
+ #
1663
+ # Failure output MUST use one of the stable diagnostic codes in the test-kit
1664
+ # contract and include the offending URL/issuer/field when available. The
1665
+ # deterministic fixtures at `test-vectors/oauth-setup/vectors.json` are the
1666
+ # conformance corpus for runner implementations of this check.
1667
+ #
1668
+ # Error-shape validation — use `check: error_code`:
1669
+ # The `error_code` check is shape-agnostic. The runner resolves the code from
1670
+ # any of the transport-binding locations defined by the client detection
1671
+ # order (see docs/building/implementation/transport-errors#client-detection-order):
1672
+ # - `adcp_error.code` (MCP structuredContent, A2A artifact DataPart, JSON-RPC
1673
+ # error.data, MCP text-fallback content JSON)
1674
+ # - `errors[0].code` (task-payload errors array, top-level or under payload)
1675
+ # A storyboard SHOULD assert error shape via `check: error_code` rather than
1676
+ # `check: field_present, path: "errors"` or `path: "adcp_error"` — pinning to
1677
+ # a specific shape makes the validator flakey against conformant agents that
1678
+ # surface errors on the other layer.
1679
+ #
1680
+ # Error-code vocabulary:
1681
+ # Every code referenced in a `value:` or `allowed_values:` under `check: error_code`
1682
+ # MUST exist in the canonical enum at `static/schemas/source/enums/error-code.json`
1683
+ # (or be registered as a deprecation alias). The `lint:error-codes` script
1684
+ # enforces this at build time — references to undefined codes fail the build.
1685
+ # Sellers MAY emit vendor-specific codes outside the enum, but storyboards
1686
+ # MUST NOT assert on them (that couples the conformance suite to a specific
1687
+ # vendor's taxonomy). When a test needs to accept multiple possible codes,
1688
+ # use `allowed_values: [...]` rather than a single-code `value:` assertion.
1689
+ #
1690
+ # Canonical format satisfaction — use `check: canonical_format_satisfaction`:
1691
+ # Applies only to create_media_buy steps. The runner compares each package's
1692
+ # format selector against the target product captured from prior get_products
1693
+ # context. When multiple get_products responses exist, the runner MUST use
1694
+ # the most recent prior get_products response containing the package's
1695
+ # product_id; if no such response exists, the check fails as an authoring or
1696
+ # setup error. `value: true` means the request should be accepted; `value:
1697
+ # false` means the request should be rejected for a format-selector cause.
1698
+ #
1699
+ # The check evaluates each present selector route independently before
1700
+ # applying precedence:
1701
+ # 1. Resolve `format_option_refs[]`, normalize legacy `format_ids[]` through
1702
+ # `v1_format_ref[]` and the v1-to-canonical registry, and materialize the
1703
+ # direct `format_kind`/`params` declaration. If any option reference is
1704
+ # unresolved or any legacy ID is unprojectable, local_satisfied is false;
1705
+ # a negative step asserting this path pairs the check with an
1706
+ # `error_code: UNSUPPORTED_FEATURE` validation.
1707
+ # 2. For every resolved route, derive the target product's selected
1708
+ # `format_options[]` entries using directional product gating for fixed
1709
+ # dimensions, duration declarations, canonical params, and range
1710
+ # containment. Legacy compatibility uses the asymmetric v2-narrows-v1
1711
+ # relation from canonical-formats.mdx, not raw declaration equality.
1712
+ # 3. When multiple routes are present, their selected product-option sets
1713
+ # MUST match. Different format shapes, option sets, or incompatible
1714
+ # dimensions make local_satisfied false; a negative step asserting this
1715
+ # path pairs the check with `error_code: CONFLICTING_SELECTORS`.
1716
+ # 4. Only after every route resolves and the selected sets agree does the
1717
+ # runner apply package precedence: format_option_refs, then direct
1718
+ # format_kind/params, then format_ids.
1719
+ #
1720
+ # Negative cases only pass when the observed rejection is attributable to
1721
+ # formats, so unrelated auth or tenant failures do not mask selector bugs.
1722
+ #
1723
+ # Fields:
1724
+ # check: canonical_format_satisfaction
1725
+ # value: boolean # true = expected accepted; false = expected rejected.
1726
+ # path: string # optional; selects one package object or package array.
1727
+ # # default is the request payload's packages[] array.
1728
+ #
1729
+ # Example:
1730
+ # - check: canonical_format_satisfaction
1731
+ # value: false
1732
+ # description: "Bare image selector lacks the dimensions required by the fixed product"
1733
+ #
1734
+ # Cross-step integrity — use `check: refs_resolve`:
1735
+ # `refs_resolve` asserts every ref in a source set resolves to a member of a
1736
+ # target set, matched on declared keys. Use it when one step's response
1737
+ # contains references that MUST exist in another step's response. In 3.2,
1738
+ # prefer direct canonical declarations and use this primitive for remaining
1739
+ # cross-resource identifiers.
1740
+ # Without this primitive, broken references are silent until a later call
1741
+ # (e.g., `sync_creatives`) fails at runtime, after commitments are already
1742
+ # made.
1743
+ #
1744
+ # Fields:
1745
+ # source:
1746
+ # from: current_step | context
1747
+ # # `current_step` reads the step's task-result data;
1748
+ # # `context` reads values captured by prior steps.
1749
+ # path: <string> # supports `[*]` wildcards — see below.
1750
+ # target:
1751
+ # from: current_step | context
1752
+ # path: <string>
1753
+ # match_keys: [<key>, ...] # keys compared on each ref — e.g. [agent_url, id].
1754
+ # # A ref missing any declared key is NEVER a match
1755
+ # # (agents that drop a key don't fuzzy-match others
1756
+ # # that also dropped it).
1757
+ # scope: # optional — restrict integrity to in-scope refs.
1758
+ # key: <string> # e.g. `agent_url`.
1759
+ # equals: <string> # literal value, or `$agent_url` for the
1760
+ # # runner target URL. Keys ending in `url`
1761
+ # # get trailing-slash / case normalization
1762
+ # # on both sides before compare. Transport
1763
+ # # path canonicalization (`/mcp`, well-known
1764
+ # # A2A card path) for `$agent_url` is tracked
1765
+ # # in adcp-client#710 — until it lands, MCP
1766
+ # # agents should expect refs to fall
1767
+ # # out-of-scope when format_ids name the
1768
+ # # bare agent URL.
1769
+ # on_out_of_scope: warn | ignore | fail
1770
+ # # how refs outside `scope` are graded.
1771
+ # # default `warn`: pass the check, attach
1772
+ # # observations naming the skipped refs.
1773
+ # # `ignore`: silent. `fail`: promote to
1774
+ # # missing so reports name them.
1775
+ #
1776
+ # Path wildcards:
1777
+ # `[*]` in a `source.path` or `target.path` flattens over arrays. So
1778
+ # `products[*].format_ids[*]` walks every product and flattens every
1779
+ # `format_ids` array into a single list of refs. Runners cap terminal
1780
+ # fan-out at 10,000 values to bound malicious agent responses; paths
1781
+ # realistic for any catalog size are well under the cap.
1782
+ #
1783
+ # Grading output:
1784
+ # A failing `refs_resolve` check names the specific unresolved ref tuples
1785
+ # in `actual.missing` (projected to `match_keys`). Duplicates are collapsed
1786
+ # on the projected tuple so one broken ref across 50 products shows up
1787
+ # once — compliance reports stay readable.
1788
+ #
1789
+ # Legacy 3.x example — every named format reference resolves:
1790
+ # - check: refs_resolve
1791
+ # description: "Every deprecated format_id resolves in the compatibility catalog"
1792
+ # source:
1793
+ # from: context
1794
+ # path: "products[*].format_ids[*]"
1795
+ # target:
1796
+ # from: current_step
1797
+ # path: "formats[*].format_id"
1798
+ # match_keys: [agent_url, id]
1799
+ # scope:
1800
+ # key: agent_url
1801
+ # equals: $agent_url
1802
+ # on_out_of_scope: warn
1803
+ #
1804
+ # Cross-step comparison — use `check: field_less_than` /
1805
+ # `field_equals_context` / `field_in_context_array` /
1806
+ # `all_fields_in_context_array`:
1807
+ # These checks compare a field in THIS step's response against a value
1808
+ # captured by a PRIOR step via `context_outputs`. Without them, every existing
1809
+ # `check:` is single-step (`field_value` resolves the comparand at YAML
1810
+ # authoring time via `$context.<name>` substitution; the runtime value the
1811
+ # prior step actually returned is opaque to the validation).
1812
+ #
1813
+ # Use cases:
1814
+ # - Round-trip identity: assert that `media_buys[0].media_buy_id` on
1815
+ # `get_media_buys` equals the id returned by the earlier `create_media_buy`
1816
+ # step. Today's `field_value` + `$context.media_buy_id` substitution
1817
+ # resolves the placeholder against the request, not the response — a
1818
+ # seller could return a different id on the read and still pass.
1819
+ # - Filtered-vs-baseline: assert that a filtered `get_rights` returns a
1820
+ # strictly smaller `rights.length` than the unfiltered baseline call.
1821
+ # - Idempotency replay: assert that the replayed response's body hash
1822
+ # equals the originally captured hash (byte-for-byte cache hit).
1823
+ # - Capability membership: assert that an applied account billing value is
1824
+ # a member of the supported_billing array captured during discovery.
1825
+ #
1826
+ # Fields:
1827
+ # check: field_less_than | field_equals_context | field_in_context_array | all_fields_in_context_array
1828
+ # path: string # JSON path on this step's response.
1829
+ # context_key: string # name set by a prior step's
1830
+ # # `context_outputs[].name`. Required for
1831
+ # # `field_equals_context` and
1832
+ # # `field_in_context_array` and
1833
+ # # `all_fields_in_context_array`. Optional for
1834
+ # # `field_less_than` — when omitted, the
1835
+ # # check falls back to the literal `value`
1836
+ # # (so authors can compare against a
1837
+ # # static threshold without context).
1838
+ # value: number # Literal comparand for `field_less_than`
1839
+ # # when `context_key` is not set. Ignored on
1840
+ # # `field_equals_context` and
1841
+ # # membership checks (which always
1842
+ # # read from context).
1843
+ # description: string
1844
+ #
1845
+ # Type semantics:
1846
+ # `field_less_than` requires both operands to be finite numbers; non-numeric
1847
+ # or absent values fail the check with a type error in the validation_result.
1848
+ # `field_equals_context` deep-equals the response value against the captured
1849
+ # comparand using the same equality semantics as `field_value`.
1850
+ # `field_in_context_array` requires the captured comparand to be an array and
1851
+ # a scalar path; it passes when the response value deep-equals one member.
1852
+ # `all_fields_in_context_array` requires an array comparand and a wildcard
1853
+ # path; it passes only when EVERY resolved terminal value belongs to the
1854
+ # captured array. A path resolving no terminal values passes vacuously; pair
1855
+ # it with field_present when an empty response is not allowed. Older runners
1856
+ # that do not implement this additive check grade it not_applicable under the
1857
+ # runner forward-compatibility contract rather than producing a false failure.
1858
+ #
1859
+ # Absent context_key — context_key_absent observation:
1860
+ # When `context_key` is set but the named entry is missing from the
1861
+ # storyboard accumulator (typically because the prior capturing step was
1862
+ # legitimately skipped on a branch-set path), the check PASSES with a
1863
+ # `context_key_absent` observation rather than failing. This preserves the
1864
+ # "skipped prerequisite cascades to skip, not fail" semantics that
1865
+ # `context_outputs` already establishes for `$context.<name>` substitution.
1866
+ # A genuinely missing capture (the prior step ran but its capture path did
1867
+ # not resolve) is graded `capture_path_not_resolvable` ON THE PRIOR STEP —
1868
+ # downstream cross-step checks on a never-populated key are not the place
1869
+ # to surface that failure.
1870
+ #
1871
+ # Examples:
1872
+ # # Round-trip: get_media_buys returns the id we just created.
1873
+ # # Pair with `context_outputs` on the earlier create_media_buy step:
1874
+ # # context_outputs:
1875
+ # # - name: created_media_buy_id
1876
+ # # path: "media_buy_id"
1877
+ # - check: field_equals_context
1878
+ # path: "media_buys[0].media_buy_id"
1879
+ # context_key: "created_media_buy_id"
1880
+ # description: "get_media_buys echoes the id returned by create_media_buy"
1881
+ #
1882
+ # # Filtered call returns fewer rights than baseline.
1883
+ # # Capture the baseline length on the unfiltered step:
1884
+ # # context_outputs:
1885
+ # # - name: baseline_rights_count
1886
+ # # path: "rights.length"
1887
+ # - check: field_less_than
1888
+ # path: "rights.length"
1889
+ # context_key: "baseline_rights_count"
1890
+ # description: "Filtered rights array is smaller than unfiltered baseline"
1891
+ #
1892
+ # # Idempotency replay: replayed body deep-equals the originally-captured one.
1893
+ # # Pair with `context_outputs` on the original call:
1894
+ # # context_outputs:
1895
+ # # - name: original_create_response
1896
+ # # path: "" # capture the entire response body
1897
+ # - check: field_equals_context
1898
+ # path: ""
1899
+ # context_key: "original_create_response"
1900
+ # description: "Replay returned the cached response body, deep-equal to the original"
1901
+ #
1902
+ # # Capability membership: returned billing is one advertised value.
1903
+ # - check: field_in_context_array
1904
+ # path: "accounts[0].billing"
1905
+ # context_key: "supported_billing"
1906
+ # description: "Applied billing belongs to the advertised set"
1907
+ #
1908
+ # # Exhaustive routing scope: every returned product channel was advertised.
1909
+ # - check: all_fields_in_context_array
1910
+ # path: "products[*].channels[*]"
1911
+ # context_key: "portfolio_channels"
1912
+ # description: "Returned product channels stay inside portfolio scope"
1913
+ #
1914
+ # # Static threshold (single-step form — no context_key).
1915
+ # # NOTE: `field_less_than` is primarily a cross-step check; the literal-
1916
+ # # `value` form is a convenience for numeric thresholds. Authors who
1917
+ # # need same-step equality should reach for `field_value` instead.
1918
+ # - check: field_less_than
1919
+ # path: "delivery.spend"
1920
+ # value: 10000
1921
+ # description: "Spend stays under the buy's budget cap"
1922
+ #
1923
+ # A2A wire-shape — use `check: a2a_submitted_artifact`:
1924
+ # Asserts the A2A envelope invariants for AdCP `submitted` arms: `Task.id` /
1925
+ # `Task.contextId` non-empty, `Task.state` normalised to `completed` (A2A 0.3
1926
+ # wire value `"completed"`; A2A 1.0 enum `"TASK_STATE_COMPLETED"`), and the
1927
+ # last non-null, object-typed DataPart's `data.status === 'submitted'`
1928
+ # preserving the AdCP discriminator. Grades `not_applicable` on non-A2A
1929
+ # transports so storyboards can include it alongside MCP-shape assertions
1930
+ # without forking by transport.
1931
+ #
1932
+ # Upstream side-effects — use `check: upstream_traffic`:
1933
+ # Asserts that the agent caused observable upstream traffic with a payload
1934
+ # carrying the storyboard-supplied identifiers. The mechanism raises the bar
1935
+ # against UNINTENTIONAL façades — adapters (often LLM-generated) that satisfy
1936
+ # AdCP schema requirements with synthetic placeholders without forwarding the
1937
+ # payload upstream. It is NOT an adversarial integrity check: adopters
1938
+ # self-report their own traffic, and a determined façade could fabricate
1939
+ # recorded_calls. Spec consumers MUST NOT treat upstream_traffic passing as
1940
+ # cryptographic proof of adapter behavior; the value is "raises the bar
1941
+ # against accidental façades," not "stops malicious façades."
1942
+ #
1943
+ # The runner queries the adopter's comply_test_controller with scenario
1944
+ # `query_upstream_traffic`, scoped to traffic recorded since the storyboard
1945
+ # step's request timestamp, and applies the assertion declared on the
1946
+ # storyboard step. Adopters who do not advertise `query_upstream_traffic` in
1947
+ # `list_scenarios` grade the check `not_applicable` — the contract is opt-in
1948
+ # by adopter capability. Adopters who DO advertise it but return zero
1949
+ # recorded calls during the assertion window grade as failed (the
1950
+ # "controller present and observed nothing" path is the façade signal).
1951
+ #
1952
+ # Runner attestation-mode selection (normative):
1953
+ # Conforming runners MUST choose params.attestation_mode for
1954
+ # comply_test_controller query_upstream_traffic calls in a way that
1955
+ # preserves assertion coverage:
1956
+ # 1. If any upstream_traffic validation in the current step sets
1957
+ # attestation_mode_required: "raw", request "raw".
1958
+ # 2. Else if any upstream_traffic validation in the current step declares
1959
+ # payload_must_contain, request "raw"; arbitrary payload-path
1960
+ # assertions cannot be evaluated from digest attestations.
1961
+ # 3. Else if every upstream_traffic validation in the current step can
1962
+ # be evaluated from count/endpoint/purpose plus identifier_paths, and
1963
+ # the runner can supply params.identifier_value_digests for all
1964
+ # resolved identifier values, the runner SHOULD request "digest" when
1965
+ # it knows the matching upstream calls are JSON-shaped
1966
+ # (`application/json` or `*/*+json`). If the runner does not know the
1967
+ # matching calls are JSON-shaped, request "raw"; digest-mode
1968
+ # identifier_match_proofs are intentionally unavailable for non-JSON
1969
+ # payloads, so an unconditional digest request can turn an otherwise
1970
+ # evaluable identifier_paths assertion into not_applicable.
1971
+ # 4. Otherwise, request "raw".
1972
+ # Controllers MAY still return digest-mode attestations for a raw request
1973
+ # when local policy forbids raw payload disclosure; raw-required and
1974
+ # payload_must_contain assertions then grade not_applicable as described
1975
+ # below.
1976
+ # Storyboard authors SHOULD NOT invent non-schema attestation-mode hints.
1977
+ # Use attestation_mode_required: "raw" only for hard raw requirements;
1978
+ # otherwise rely on this runner selection rule.
1979
+ #
1980
+ # Fields:
1981
+ # min_count: integer (default: 1)
1982
+ # # Minimum number of recorded calls that match
1983
+ # # the optional `endpoint_pattern` filter. Use 0
1984
+ # # only for negative assertions (e.g., a step
1985
+ # # MUST NOT cause upstream traffic).
1986
+ # endpoint_pattern: string (optional)
1987
+ # # Glob pattern matched against
1988
+ # # recorded_calls[].endpoint. Examples:
1989
+ # # "POST */audience/upload"
1990
+ # # "POST *" (any POST, useful when
1991
+ # # the storyboard stays
1992
+ # # platform-agnostic)
1993
+ # # When omitted, all recorded calls in the window
1994
+ # # match. Storyboards in the shared corpus SHOULD
1995
+ # # stay platform-agnostic — host-specific patterns
1996
+ # # like "POST api.tiktok.com/*" couple the spec
1997
+ # # to specific upstream platforms and break for
1998
+ # # adopters whose upstream is something else.
1999
+ # # Reserve host-specific patterns for
2000
+ # # adapter-specific extensions, not shared
2001
+ # # storyboards.
2002
+ # payload_must_contain: array of MatchSpec (optional)
2003
+ # # Each entry asserts a path/value pair that MUST
2004
+ # # appear in at least one matching call's payload.
2005
+ # # Path syntax: JSONPath-lite positional path
2006
+ # # with `[*]` array wildcards. Shared storyboards
2007
+ # # SHOULD use the bare dotted form. Examples:
2008
+ # # "users[*].hashed_email"
2009
+ # # "data.audience.members[*].id"
2010
+ # # The literal `[*]` wildcard flattens over arrays
2011
+ # # and passes if any element matches. The runner
2012
+ # # also tolerates optional `$` / `$.` prefixes and
2013
+ # # standalone numeric index tokens for SDK
2014
+ # # compatibility (for example `items.[0].id`);
2015
+ # # shared storyboards should avoid indexes unless
2016
+ # # a position-specific assertion is intentional.
2017
+ # # RFC 9535 JSONPath descendant syntax (`$..foo`) is NOT
2018
+ # # supported — the runner uses
2019
+ # # JSONPath-lite matching from @adcp/sdk. Path matching only
2020
+ # # applies when recorded_calls[].content_type is
2021
+ # # JSON-shaped — defined as `application/json`
2022
+ # # or any structured-syntax-suffix `*/*+json`
2023
+ # # per RFC 6839 §3.1 (e.g., `application/vnd.api+json`,
2024
+ # # `application/scim+json`). All other content
2025
+ # # types (form-urlencoded, multipart, plain text,
2026
+ # # newline-delimited JSON like `application/json-seq`,
2027
+ # # JSON Lines `application/jsonl`) take the non-
2028
+ # # JSON path. Against non-JSON ALL match modes
2029
+ # # (`present` / `equals` / `contains_any`) grade
2030
+ # # `not_applicable`. Earlier sketches downgraded
2031
+ # # `match: present` to a terminal-key substring
2032
+ # # search of the raw payload string; that
2033
+ # # heuristic creates false positives (a payload
2034
+ # # mentioning the key name in any context — URL
2035
+ # # fragment, comment, unrelated metadata field —
2036
+ # # would pass), which is exactly the anti-façade
2037
+ # # contract this surface exists to protect.
2038
+ # # Storyboards that need a "the upstream call
2039
+ # # carried this value" signal against non-JSON
2040
+ # # payloads use `identifier_paths` instead — that
2041
+ # # surface substring-searches storyboard-supplied
2042
+ # # VALUES (not path-derived strings), which is
2043
+ # # encoding-agnostic and doesn't suffer the
2044
+ # # false-positive surface.
2045
+ # # Shape:
2046
+ # # - path: <dotted-with-[*] path>
2047
+ # # match: present | equals | contains_any
2048
+ # # value: <value> # for equals
2049
+ # # allowed_values: [...] # for contains_any
2050
+ # # Example:
2051
+ # # - path: "users[*].hashed_email"
2052
+ # # match: present
2053
+ # identifier_paths: array of string (optional)
2054
+ # # Paths into the storyboard's sample_request that
2055
+ # # name the load-bearing identifiers the adapter
2056
+ # # MUST forward upstream. The runner extracts the
2057
+ # # values at these paths from the storyboard's
2058
+ # # request and asserts each value appears in at
2059
+ # # least one matching recorded_call's payload at
2060
+ # # any depth. This is the strongest single
2061
+ # # anti-façade signal — adapters cannot satisfy
2062
+ # # it by fabricating a constant placeholder hash,
2063
+ # # because the placeholder will not match the
2064
+ # # storyboard's supplied value.
2065
+ # # Portable path grammar (normative):
2066
+ # # request-payload-relative dotted paths where
2067
+ # # each segment is an identifier key optionally
2068
+ # # followed by one `[*]` array wildcard. Example:
2069
+ # # "audiences[*].add[*].hashed_email"
2070
+ # # Supported segment form:
2071
+ # # [A-Za-z_][A-Za-z0-9_-]* or
2072
+ # # [A-Za-z_][A-Za-z0-9_-]*[*]
2073
+ # # Unsupported forms MUST be rejected at
2074
+ # # storyboard load/lint time rather than treated
2075
+ # # as paths that resolve to zero values:
2076
+ # # bracket-quoted keys (`foo["bar"]`), numeric
2077
+ # # indexes (`items[0]`), recursive descent
2078
+ # # (`$..foo`), absolute roots (`$.foo`), empty
2079
+ # # segments, and reserved roots (`request.*`,
2080
+ # # `response.*`, `context.*`). The path is
2081
+ # # already relative to the storyboard step's
2082
+ # # sample_request; adding an explicit root makes
2083
+ # # the same storyboard ambiguous across runners.
2084
+ # # Each path MAY resolve to a single value or an
2085
+ # # array; all resolved values MUST be present in
2086
+ # # the recorded payload. Replaces the earlier
2087
+ # # `buyer_identifier_echo: boolean` shorthand
2088
+ # # (which left "what counts as an identifier" to
2089
+ # # convention) with an explicit enumeration.
2090
+ # # Example:
2091
+ # # identifier_paths:
2092
+ # # - "audiences[*].add[*].hashed_email"
2093
+ # # - "audiences[*].add[*].external_id"
2094
+ # purpose_filter: array of string (optional)
2095
+ # # Restrict the assertion to recorded_calls whose
2096
+ # # `purpose` field matches one of the listed
2097
+ # # values. Allowed values:
2098
+ # # "platform_primary" | "measurement" |
2099
+ # # "attribution" | "creative_serving" |
2100
+ # # "identity" | "other"
2101
+ # # Use this when an adapter legitimately makes
2102
+ # # multiple kinds of upstream calls during a step
2103
+ # # — e.g., a sales-non-guaranteed buyer agent
2104
+ # # creating a campaign AND calling a measurement
2105
+ # # vendor AND posting an attribution event during
2106
+ # # the same create_media_buy. The storyboard
2107
+ # # scopes to `purpose_filter: [platform_primary]`
2108
+ # # so the other calls don't muddy the
2109
+ # # campaign-creation assertion.
2110
+ # # When omitted, the assertion considers all
2111
+ # # recorded_calls regardless of purpose. Calls
2112
+ # # without a `purpose` field (adopter didn't
2113
+ # # classify) are treated as `purpose: other` for
2114
+ # # filter matching — they're included by filters
2115
+ # # listing `other` and excluded by filters that
2116
+ # # don't. Runners MUST include a count of
2117
+ # # unclassified calls in the validation_result's
2118
+ # # `actual` when `purpose_filter` is set and
2119
+ # # zero recorded_calls match the filter, so a
2120
+ # # façade that misclassifies-into-`other` to
2121
+ # # dodge filtering produces a noisy zero rather
2122
+ # # than a silent one.
2123
+ # since: prior_step_id (optional, default: this step's request timestamp)
2124
+ # # Bound the lookup window. By default, the
2125
+ # # runner queries traffic recorded since the
2126
+ # # storyboard step issued its AdCP request, so
2127
+ # # only side-effects of THIS step are counted.
2128
+ # # Set to a prior step's id to include traffic
2129
+ # # caused by an earlier step (e.g., for a
2130
+ # # cumulative-effect assertion). The runner uses
2131
+ # # its own wall-clock timestamp from when it
2132
+ # # issued the AdCP request as the lower bound —
2133
+ # # the controller's `since_timestamp` echo is
2134
+ # # informational, not authoritative. See
2135
+ # # runner-output-contract.yaml > validation_result
2136
+ # # for the timestamp boundary semantics
2137
+ # # (inclusive lower bound, clock-skew tolerance).
2138
+ # attestation_mode_required: string (optional)
2139
+ # # When set to "raw", the storyboard requires
2140
+ # # raw payload introspection. Recorded calls
2141
+ # # returned in `attestation_mode: digest` grade
2142
+ # # the upstream_traffic check `not_applicable`
2143
+ # # rather than failing — the storyboard is
2144
+ # # asserting against payload contents the
2145
+ # # adopter's privacy policy doesn't permit
2146
+ # # disclosing.
2147
+ # # When omitted, the storyboard accepts either
2148
+ # # mode: assertions degrade gracefully in digest
2149
+ # # mode (`payload_must_contain` grades
2150
+ # # not_applicable per call; `identifier_paths`
2151
+ # # works via the digest-of-identifier echo
2152
+ # # mechanism, see "Digest-mode behavior" below).
2153
+ # # Use "raw" sparingly — the digest mode exists
2154
+ # # so EU/privacy-conscious adopters can support
2155
+ # # upstream_traffic conformance without returning
2156
+ # # hashed-PII payloads. Forcing raw excludes
2157
+ # # those adopters; only use it when the
2158
+ # # storyboard's assertion genuinely cannot be
2159
+ # # expressed in identifier-digest form.
2160
+ #
2161
+ # Digest-mode behavior:
2162
+ # `attestation_mode: digest` per recorded_call swaps payload introspection
2163
+ # for digest-based echo verification (see comply-test-controller-response.json
2164
+ # > UpstreamTrafficSuccess > recorded_calls > DigestAttestation):
2165
+ # - `payload_must_contain` arbitrary path assertions: NOT supported in
2166
+ # digest mode. Each entry grades `not_applicable` per affected call,
2167
+ # with a note explaining the mode constraint.
2168
+ # - JCS non-finite numbers: when a digest-mode upstream_traffic response
2169
+ # cannot be produced because the parsed JSON-like value tree contains
2170
+ # a non-finite numeric value (`NaN`, `+Infinity`, or `-Infinity`), the
2171
+ # controller MUST NOT coerce that value to `null`, a string, or any
2172
+ # other placeholder for digest computation; it returns ControllerError
2173
+ # with error code `JCS_NON_FINITE_NUMBER`; the runner grades the
2174
+ # affected validation `not_applicable`, not failed, with a note citing
2175
+ # the RFC 8785/JCS constraint.
2176
+ # - `payload_length`: MUST equal the exact byte length covered by
2177
+ # `payload_digest_sha256` — RFC 8785 (JCS) canonical bytes for
2178
+ # JSON-shaped content after redaction, or post-redaction raw body bytes
2179
+ # for non-JSON content. It is not the original outbound body length
2180
+ # before JSON parsing, redaction, or canonicalization.
2181
+ # - `identifier_paths` echo verification: supported via the controller's
2182
+ # `identifier_match_proofs[]`. The runner computes SHA-256 of each
2183
+ # resolved identifier value, sends the digests in
2184
+ # `params.identifier_value_digests`, and reads the per-digest
2185
+ # `found: true | false` proof from the response. Plaintext identifiers
2186
+ # never reach the controller; the controller never returns plaintext
2187
+ # payloads. The privacy boundary holds in both directions.
2188
+ # - `min_count` and `endpoint_pattern`: unchanged — count and URL
2189
+ # matching work identically in both modes.
2190
+ #
2191
+ # Grading output (see runner-output-contract.yaml > validation_result):
2192
+ # `expected` echoes the declared assertion fields. `actual` is a
2193
+ # diagnostic summary: { matched_count, total_calls, missing_payload_paths,
2194
+ # missing_identifier_values }. The full recorded_calls array lives in
2195
+ # `response.payload` so an implementor can see the exact upstream
2196
+ # payloads the runner observed.
2197
+ #
2198
+ # Adopter integration:
2199
+ # The adopter implements `query_upstream_traffic` in its
2200
+ # comply_test_controller. The controller records outbound HTTP calls in a
2201
+ # caller-scoped buffer (sandbox-only — production builds MUST 404 the
2202
+ # comply_test_controller tool entirely; multi-tenant sandboxes MUST key
2203
+ # the buffer on the calling principal so cross-caller traffic does not
2204
+ # leak). See comply-test-controller-request.json > query_upstream_traffic
2205
+ # for the controller-side query contract.
2206
+ #
2207
+ # Example — sync_audiences must POST hashed members upstream:
2208
+ # - check: upstream_traffic
2209
+ # description: "sync_audiences caused upstream traffic with hashed members"
2210
+ # endpoint_pattern: "POST *"
2211
+ # min_count: 1
2212
+ # payload_must_contain:
2213
+ # - path: "users[*].hashed_email"
2214
+ # match: present
2215
+ # identifier_paths:
2216
+ # - "audiences[*].add[*].hashed_email"
2217
+ # - "audiences[*].add[*].external_id"
2218
+ #
2219
+ # Cross-response assertions — `check: cross_response_field_equal` / `cross_response_count_distinct`:
2220
+ # These check kinds operate on the RESPONSE SET of a step that dispatches
2221
+ # multiple parallel requests under the `parallel_dispatch_runner` contract
2222
+ # (see test-kits/parallel-dispatch-runner.yaml). They are NOT applicable to
2223
+ # single-dispatch steps: a single response trivially has cardinality 1 on any
2224
+ # field. Runners MUST gate these checks on the step declaring
2225
+ # `requires_contract: parallel_dispatch_runner` and a `parallel_dispatch`
2226
+ # block; outside that gate the check MUST grade `not_applicable`. The
2227
+ # canonical use case is rule-9 testing (concurrent retries / first-insert-wins
2228
+ # from L1/security.mdx#idempotency) — fire N parallel calls with the same
2229
+ # `idempotency_key`, assert exactly one resource was created.
2230
+ #
2231
+ # `parallel_dispatch` is a step-level block that travels alongside `requires_contract`:
2232
+ #
2233
+ # - id: concurrent_create
2234
+ # task: create_media_buy
2235
+ # requires_contract: parallel_dispatch_runner
2236
+ # parallel_dispatch:
2237
+ # count: 2 # required, integer 2..10. The runner fires
2238
+ # # `count` logically-simultaneous requests
2239
+ # # using the SDK's batch primitive.
2240
+ # same_idempotency_key: true # required for rule-9 tests; future
2241
+ # # non-idempotency parallel tests MAY set
2242
+ # # this false.
2243
+ # barrier_timeout_ms: 5000 # optional; default 5000 — how long the
2244
+ # # runner waits at the dispatch barrier
2245
+ # # before firing requests anyway.
2246
+ # validations:
2247
+ # - check: cross_response_count_distinct
2248
+ # path: "media_buy_id"
2249
+ # allowed_values: [1]
2250
+ # description: "Exactly one media_buy_id across all dispatches"
2251
+ # - check: cross_response_field_equal
2252
+ # path: "media_buy_id"
2253
+ # description: "All dispatches converge on the same media_buy_id"
2254
+ #
2255
+ # `cross_response_field_equal`:
2256
+ # - path (string, required): JSON path checked on every resolved response.
2257
+ # All non-null observed values at `path` MUST be deeply equal. A missing
2258
+ # value on a response is treated as a non-equal observation and fails the
2259
+ # check.
2260
+ #
2261
+ # `cross_response_count_distinct`:
2262
+ # - path (string, required): JSON path scanned on every resolved response.
2263
+ # - allowed_values (array of integers, required): permitted cardinalities of
2264
+ # distinct values observed at `path` across the resolved response set.
2265
+ # For rule-9 tests, `allowed_values: [1]` — exactly one resource was
2266
+ # created across all dispatches.
2267
+ #
2268
+ # Resolution semantics. A seller adopting the reject-and-redirect policy under
2269
+ # rule 9 may return `IDEMPOTENCY_IN_FLIGHT` on the second (or later) dispatch
2270
+ # rather than block. The runner MUST resolve `IDEMPOTENCY_IN_FLIGHT` responses
2271
+ # to their eventual cached response before applying these checks: wait
2272
+ # top-level `error.retry_after` seconds and retry with the SAME idempotency_key,
2273
+ # exactly as the buyer-side normative behavior specifies. The cross-response
2274
+ # check operates on the resolved response set, not the raw initial set. If
2275
+ # resolution exceeds the runner's step-timeout budget, the step grades
2276
+ # `step_timeout` (a runner-synthesized code), not a rule-9 violation.
2277
+ #
2278
+ # Grading output. `expected` carries the declared assertion fields
2279
+ # (`path`, plus `allowed_values` for `count_distinct`). `actual` summarizes
2280
+ # what was observed across the resolved response set:
2281
+ # cross_response_field_equal → { observed_values: [...] }
2282
+ # cross_response_count_distinct → { observed_cardinality, observed_values: [...] }
2283
+ # See runner-output-contract.yaml > validation_result > expected/actual for
2284
+ # the canonical shapes.
2285
+ #
2286
+ # --- Runner output ---
2287
+ #
2288
+ # How a runner MUST report validation results — including which fields a
2289
+ # failing validation carries (exact request, response, JSON Pointer, expected
2290
+ # vs. actual, schema $id, schema URL) and how skipped storyboards MUST
2291
+ # distinguish not_applicable vs. no_phases vs. missing_tool — is defined in
2292
+ # runner-output-contract.yaml. Storyboard authors SHOULD assume failures will
2293
+ # be rendered with that detail and write descriptions accordingly.
2294
+ #
2295
+ # Runner grading codes introduced by the context accumulator and fixture
2296
+ # seeding:
2297
+ #
2298
+ # capture_path_not_resolvable
2299
+ # Emitted on the capturing step when a `context_outputs:` entry's
2300
+ # `path` does not resolve to a usable value in the step's response body.
2301
+ # The step grades as failed — the capture declared a contract that the
2302
+ # response did not meet. Distinct from unresolved_substitution so tooling
2303
+ # can discriminate "producer contract breach" from "consumer missing
2304
+ # state."
2305
+ #
2306
+ # "Does not resolve to a usable value" covers all three cases:
2307
+ # 1. Path structurally absent (e.g. `signals[0]` when array is empty)
2308
+ # 2. Path present but value is null
2309
+ # 3. Path present but value is "" (empty string)
2310
+ # Capturing null or "" produces fabricated downstream state and is as
2311
+ # incorrect as a missing path; runners MUST treat all three as failures.
2312
+ #
2313
+ # Output shape: runner-output-contract.yaml > validation_result, with
2314
+ # check: capture_path_not_resolvable, expected: the declared path string,
2315
+ # actual: the resolved value (or null if absent), json_pointer: RFC 6901
2316
+ # form of the path.
2317
+ #
2318
+ # unresolved_substitution
2319
+ # Emitted on a consumer step when a referenced $context.<name> or
2320
+ # {{prior_step.<id>.<field>}} value is not populated at step-execution
2321
+ # time (either because the producer step failed, was skipped, or never
2322
+ # ran). The step grades as failed. Also used at preflight when a
2323
+ # substitution is statically unresolvable (e.g., {{runner.webhook_url:*}}
2324
+ # on a run with no webhook receiver) to grade the entire storyboard
2325
+ # not_applicable before execution. A `$build_assets_from_format`
2326
+ # directive whose valid captured format cannot be satisfied by the
2327
+ # runner's test-kit assets is not an unresolved substitution: it uses the
2328
+ # storyboard-level not_applicable disposition with `skip_result.reason:
2329
+ # fixture_unavailable` at the earliest preflight after the referenced
2330
+ # format is captured and before any intervening side-effecting step. The
2331
+ # runner terminates the remaining storyboard without prerequisite
2332
+ # cascades. This runner-owned coverage gap MUST NOT count as a failed step.
2333
+ #
2334
+ # Output shape: runner-output-contract.yaml > validation_result, with
2335
+ # check: unresolved_substitution, expected: the unresolved token string,
2336
+ # actual: null, json_pointer: null (pre-wire failure — no response
2337
+ # payload available).
2338
+ #
2339
+ # fixture_seed_unsupported
2340
+ # Emitted when a storyboard's `prerequisites.controller_seeding` requires
2341
+ # a seed_* scenario the seller does not implement (returned as
2342
+ # UNKNOWN_SCENARIO). The storyboard grades not_applicable (coverage gap),
2343
+ # not failed.
2344
+ #
2345
+ # unresolved_scenario_reference
2346
+ # A detailed sub-reason under the canonical skip `reason:
2347
+ # not_applicable`. Emitted when a parent storyboard's
2348
+ # `requires_scenarios:` entry cannot be resolved against the source
2349
+ # tree (no file declares that `id:`). Per the
2350
+ # `detailed_reason_mapping` convention in runner-output-contract.yaml,
2351
+ # runners MUST populate the canonical `reason: not_applicable` and
2352
+ # encode `unresolved_scenario_reference` in `detail`. detail MUST
2353
+ # follow the shape
2354
+ # 'requires_scenarios reference "<scenario_id>" did not resolve
2355
+ # against the source tree' — and when multiple references are
2356
+ # unresolved, detail MUST enumerate every unresolved id with the
2357
+ # same shape (comma-separated or newline-delimited) so downstream
2358
+ # tooling can parse each. Runners MUST NOT silently pass the parent
2359
+ # as if the missing scenario had contributed.
2360
+ #
2361
+ # Distinct from `fixture_seed_unsupported`: that reason indicates an
2362
+ # agent-coverage gap (seller doesn't implement a seed scenario);
2363
+ # `unresolved_scenario_reference` indicates a source-tree authoring
2364
+ # bug that the build-time lint SHOULD have caught. Dashboards and
2365
+ # summary reports SHOULD NOT conflate the two when aggregating
2366
+ # `not_applicable` counts — they are categorically different
2367
+ # signals.
2368
+ #
2369
+ # The `lint:storyboard-branch-sets` script surfaces this as a
2370
+ # build-time error via the `unresolved_scenario_reference` rule so
2371
+ # unresolved references in a well-linted corpus never reach a
2372
+ # runner. The runner-side grading is defensive for corpora that
2373
+ # bypass the lint or come from pre-lint CI states.
2374
+ #
2375
+ # --- Webhook receiver (optional, for outbound-webhook conformance) ---
2376
+ #
2377
+ # Storyboards that verify outbound webhook conformance (signing, idempotency_key
2378
+ # presence, idempotency_key stability across retries) require the runner to host
2379
+ # a webhook receiver during test execution. The receiver URL is injected into
2380
+ # push_notification_config on steps that trigger webhooks, and a subsequent
2381
+ # expect_webhook* step asserts on what arrived.
2382
+ #
2383
+ # Receiver behavior is specified by a test-kit contract referenced from the
2384
+ # storyboard's prerequisites.test_kit field — see test-kits/webhook-receiver-runner.yaml
2385
+ # for the reference contract (endpoint modes, retry-replay shape, client-primitive
2386
+ # hooks). Storyboard authors MUST declare the contract in prerequisites; the
2387
+ # webhook-emission universal (universal/webhook-emission.yaml) is the reference
2388
+ # consumer, including idempotency replay side-effect assertions that need
2389
+ # webhook observation. Keep those assertions on webhook-specific storyboards so
2390
+ # core idempotency requests do not depend on runner-only URL templating.
2391
+ #
2392
+ # --- Substitution variables (webhook-receiver enabled) ---
2393
+ #
2394
+ # When a storyboard's test-kit contract declares a webhook_receiver, the runner
2395
+ # exposes these substitutions for use in sample_request payloads and expectations:
2396
+ #
2397
+ # {{runner.webhook_base}} → HTTPS base of the runner's receiver for this run
2398
+ # {{runner.webhook_url:<step_id>}} → per-step URL; unique per step
2399
+ # The URL may contain a runner-internal
2400
+ # capture id for receiver routing. That id
2401
+ # is not the protocol operation_id. When a
2402
+ # request includes
2403
+ # push_notification_config.operation_id,
2404
+ # the runner MUST make any URL capture id
2405
+ # distinct so sellers that parse the URL
2406
+ # fail a filter.body.operation_id payload
2407
+ # assertion.
2408
+ #
2409
+ # Per-step receivers are the only supported shape in v1 so each step's
2410
+ # expect_webhook matches only its own deliveries. Fan-in scenarios are deferred
2411
+ # (see "shared_receiver" note below).
2412
+ #
2413
+ # --- Webhook-assertion steps ---
2414
+ #
2415
+ # The following step `task` values are only valid when the storyboard's test-kit
2416
+ # declares a webhook_receiver. They are scheduled alongside regular task steps
2417
+ # and reference earlier steps by id.
2418
+ #
2419
+ # task: expect_webhook
2420
+ # Wait up to `timeout_seconds` (default 30) for a webhook delivered to the
2421
+ # triggered receiver, validate the payload, then apply the filter. Runner
2422
+ # delegates to the `@adcp/client` AsyncHandler; the webhook is observed via
2423
+ # onActivity with type webhook_received, and WebhookMetadata (including
2424
+ # idempotency_key) is provided by the client.
2425
+ #
2426
+ # `triggered_by` scopes the assertion to the per-step receiver URL. Payload
2427
+ # fields are matched through `filter.body` using dotted paths. Authors MUST
2428
+ # use `filter.body.operation_id` to assert the protocol payload operation_id;
2429
+ # `filter.operation_id` is reserved for runner receiver routing and is not the
2430
+ # protocol correlation field.
2431
+ #
2432
+ # Fields:
2433
+ # triggered_by: <step_id> # earlier step whose task triggered this webhook
2434
+ # filter:
2435
+ # body: # match by webhook payload fields, never URL path
2436
+ # operation_id: "op_explicit_from_push_notification_config"
2437
+ # status: "completed" # optional; match any status if omitted
2438
+ # timeout_seconds: 30 # optional; fail if no match within window
2439
+ # expect_idempotency_key: true # default true; assert the key is present and pattern-valid
2440
+ # webhook_payload_schema_ref: <path>
2441
+ # # optional — validate payload against the webhook schema
2442
+ # # (distinct from step-level `schema_ref` and
2443
+ # # `response_schema_ref`, which apply to the caller→agent
2444
+ # # request/response. Webhook steps have no caller request,
2445
+ # # so the payload schema is named explicitly to avoid
2446
+ # # overload of schema_ref.)
2447
+ # expect_max_deliveries_per_logical_event: 1
2448
+ # # optional — if set, runner asserts at most N distinct
2449
+ # # logical webhook events (grouped by idempotency_key)
2450
+ # # arrive within the window. Used by idempotency storyboards
2451
+ # # to catch duplicate-side-effect bugs where a seller
2452
+ # # re-executes on replay with a fresh idempotency_key.
2453
+ # requires_contract: <contract_id>
2454
+ # # optional — step grades as not_applicable (not fail)
2455
+ # # when the named test-kit contract is not in scope.
2456
+ # # Used on cross-specialism assertions that depend on
2457
+ # # webhook_receiver_runner being active.
2458
+ #
2459
+ # Error modes: no_webhook_received, schema_violation, missing_idempotency_key,
2460
+ # invalid_idempotency_key_format, signature_invalid (when signature assertion
2461
+ # on), duplicate_webhook_on_replay (when
2462
+ # expect_max_deliveries_per_logical_event exceeded).
2463
+ #
2464
+ # task: expect_no_webhook
2465
+ # Observe the receiver associated with `triggered_by` for the full bounded
2466
+ # window and pass only when zero deliveries match `filter`. The default
2467
+ # `timeout_seconds` is 5. The assertion fails immediately on the first match
2468
+ # with `unexpected_webhook_received`; it does not validate a payload schema or
2469
+ # require an idempotency_key on the passing path because no payload exists.
2470
+ #
2471
+ # Fields:
2472
+ # triggered_by: <step_id>
2473
+ # filter: { ... } # same shape as expect_webhook
2474
+ # timeout_seconds: 5 # optional; default 5
2475
+ #
2476
+ # Error modes: unexpected_webhook_received.
2477
+ #
2478
+ # task: expect_webhook_retry_keys_stable
2479
+ # The runner's webhook receiver deterministically returns 5xx for the first
2480
+ # `retry_trigger.count` deliveries of the matching webhook, then 2xx. The
2481
+ # runner asserts that every delivery within the retry window carries the
2482
+ # byte-identical idempotency_key (the sender regenerating a key on retry is a
2483
+ # conformance failure).
2484
+ #
2485
+ # Signature verification on every delivery in the retry loop: when 9421 is in
2486
+ # effect (i.e., push_notification_config was registered without `authentication`),
2487
+ # the runner MUST verify the 9421 signature on EVERY delivery including retries
2488
+ # and MUST reuse the run-scoped (keyid, nonce) replay store (see test-kit
2489
+ # client_primitives.signature_replay_store). A publisher that stably reuses
2490
+ # idempotency_key (correct) but also reuses the 9421 `nonce` sig-param
2491
+ # (incorrect — nonce MUST be fresh per delivery) would pass retry-stability
2492
+ # but MUST fail signature-replay dedup on the second delivery. Running the two
2493
+ # checks together catches this class of bug; a retry-stability step that skips
2494
+ # signature verification hides it.
2495
+ #
2496
+ # Fields:
2497
+ # triggered_by: <step_id>
2498
+ # filter: { ... } # same shape as expect_webhook
2499
+ # retry_trigger:
2500
+ # count: 3 # runner returns 5xx for the first N deliveries.
2501
+ # # MUST be 1 ≤ count ≤ 10 (test-kit
2502
+ # # retry_replay_contract.max_count). Counts outside
2503
+ # # the range fail storyboard validation; sellers
2504
+ # # legitimately exercise N=3 for back-off sanity,
2505
+ # # higher counts risk becoming DoS amplifiers in
2506
+ # # proxy_url mode.
2507
+ # http_status: 503 # optional; default 503. MUST be in
2508
+ # # {429, 500, 502, 503, 504} (test-kit
2509
+ # # retry_replay_contract.allowed_statuses). Other
2510
+ # # statuses are not retryable signals for
2511
+ # # at-least-once senders and fail validation.
2512
+ # timeout_seconds: 90 # longer default — must cover sender's retry back-off
2513
+ # expect_min_deliveries: 2 # fail if fewer deliveries observed within window
2514
+ # verify_signature_on_every_delivery: true
2515
+ # # default true when 9421 is in effect. Set false
2516
+ # # ONLY when the storyboard is explicitly registered
2517
+ # # for legacy HMAC mode; in 9421 mode, silently
2518
+ # # disabling retry-delivery signature verification
2519
+ # # hides nonce-replay bugs.
2520
+ #
2521
+ # Error modes: insufficient_retries, idempotency_key_rotated,
2522
+ # idempotency_key_format_changed, signature_replayed (nonce reused across
2523
+ # retries), signature_invalid (any retry delivery fails 9421).
2524
+ #
2525
+ # task: expect_webhook_signature_valid
2526
+ # Assert that the inbound webhook passed the 9421 webhook-signing verifier
2527
+ # checklist (see docs/building/implementation/security.mdx#verifier-checklist-for-webhooks).
2528
+ # Runner delegates verification to `verifyWebhookSignature` from
2529
+ # `@adcp/sdk/signing` (see test-kit contract). Negative conformance —
2530
+ # signatures that MUST be rejected with a specific webhook_signature_* code —
2531
+ # is exercised through the published static conformance vectors under
2532
+ # /compliance/{version}/test-vectors/webhook-signing/, not by this step type.
2533
+ #
2534
+ # Cross-step replay dedup: the runner MUST share a single (keyid, nonce) replay
2535
+ # store across ALL expect_webhook_signature_valid invocations (and all retry
2536
+ # deliveries under expect_webhook_retry_keys_stable) in a storyboard run — see
2537
+ # test-kit client_primitives.signature_replay_store. A per-step store would let
2538
+ # a publisher reuse the same (keyid, nonce) bytes at two expect_webhook_signature_valid
2539
+ # steps and pass both in isolation, silently missing cross-step replay.
2540
+ #
2541
+ # Fields:
2542
+ # triggered_by: <step_id>
2543
+ # filter: { ... } # same shape as expect_webhook
2544
+ # timeout_seconds: 30
2545
+ # require_tag: "adcp/webhook-signing/v1" # default; sanity check
2546
+ #
2547
+ # Error modes: signature_invalid, signature_expired, signature_key_unknown,
2548
+ # signature_key_purpose_invalid, signature_digest_mismatch,
2549
+ # signature_tag_invalid, signature_replayed.
2550
+ #
2551
+ # task: expect_substitution_safe
2552
+ # Assert that a creative preview (preview_html or preview_url) contains
2553
+ # substituted catalog-item macro values that are percent-encoded per RFC 3986
2554
+ # (unreserved-whitelist), per docs/creative/universal-macros#substitution-safety-catalog-item-macros.
2555
+ # Runner delegates HTML parsing, URL extraction, and the encoding check to
2556
+ # the `@adcp/client` SubstitutionObserver primitive (see test-kit
2557
+ # substitution-observer-runner.yaml). Catches implementations that pass raw
2558
+ # attacker bytes through substitution, including CRLF injection, bidi-override
2559
+ # spoofing, reserved-character URL breakout, and javascript:-scheme injection.
2560
+ #
2561
+ # Fields:
2562
+ # source: html_inline | url_fetch # default html_inline
2563
+ # source_path: "<JSON pointer into previous step's response>"
2564
+ # macro_template: "<URL template with {MACRO} placeholders>"
2565
+ # catalog_bindings:
2566
+ # - macro: "{SKU}"
2567
+ # catalog_item_id: "<item_id in the synced catalog>"
2568
+ # vector_name: "<fixture entry name, e.g. reserved-character-breakout>"
2569
+ # # Optional overrides for custom (non-canonical-fixture) vectors:
2570
+ # # raw_value: "<attacker-shaped input>"
2571
+ # # expected_encoded: "<RFC 3986 unreserved-encoded form>"
2572
+ # require_every_binding_observed: true # default true. Opt to false only
2573
+ # # when preview shows a partial
2574
+ # # catalog and partial observation
2575
+ # # is legitimate (document why in
2576
+ # # the narrative). The old field
2577
+ # # name require_all_bindings_observed
2578
+ # # is deprecated.
2579
+ # requires_contract: substitution_observer_runner
2580
+ #
2581
+ # Error modes: substitution_encoding_violation, nested_macro_re_expansion,
2582
+ # substitution_scheme_injection, substitution_binding_missing,
2583
+ # preview_source_unavailable, preview_url_unusable (with sub-reason:
2584
+ # http_status | content_type | size_exceeded | redirect_returned |
2585
+ # ssrf_blocked | fetch_timeout).
2586
+ #
2587
+ # task: expect_rate_limit_not_replayed
2588
+ # Assert that a `RATE_LIMITED` response on idempotency-cache insert MUST NOT
2589
+ # be cached as the canonical replay for that idempotency_key, per
2590
+ # L1/security.mdx#idempotency rule 3 ("Only successful responses are cached")
2591
+ # and bullet 8 (insert-rate ceiling). The runner drives a sequential fresh-
2592
+ # key burst against the named mutating-op target until a RATE_LIMITED
2593
+ # response appears, then re-submits the same idempotency_key after waiting
2594
+ # the RATE_LIMITED response's top-level `error.retry_after` seconds. The cross-step assertion fails if the
2595
+ # replay returned the cached RATE_LIMITED response shape.
2596
+ #
2597
+ # When `max_attempts` requests complete without producing a RATE_LIMITED
2598
+ # response, the step grades with `skip_result.reason: not_applicable` and
2599
+ # `skip_result.detail: rate_limit_not_triggered` — a seller's sandbox limiter
2600
+ # may legitimately sit above the contract's burst ceiling. Runner delegates the burst,
2601
+ # wait, and replay mechanics to the `@adcp/client` RateLimitTripObserver
2602
+ # primitive (see test-kit rate-limit-trip-runner.yaml).
2603
+ #
2604
+ # Fields:
2605
+ # rate_limit_trip:
2606
+ # trip_target_task: "<task name, e.g. create_media_buy>"
2607
+ # # the mutating-op the burst targets
2608
+ # trip_target_sample_request: { ... }
2609
+ # # full canonical request body; the runner
2610
+ # # rewrites `idempotency_key` per attempt
2611
+ # # and on the replay reuses the captured key
2612
+ # max_attempts: 200 # 50–500; see test-kit max_attempts bounds
2613
+ # replay_max_wait_seconds: 30 # optional; caps the post-trip wait. Sellers
2614
+ # # returning retry_after > this fail with
2615
+ # # `replay_wait_exceeded` rather than the
2616
+ # # invariant itself.
2617
+ # requires_contract: rate_limit_trip_runner
2618
+ #
2619
+ # Failure outcomes: rate_limit_response_cached_as_replay,
2620
+ # missing_retry_after, replay_wait_exceeded.
2621
+ #
2622
+ # Not-applicable outcome: rate_limit_not_triggered. This is emitted when
2623
+ # max_attempts exhausts without observing RATE_LIMITED and MUST NOT be
2624
+ # counted as a seller conformance failure.
2625
+ #
2626
+ # --- shared_receiver (deferred / out of scope v1) ---
2627
+ #
2628
+ # Storyboards with multiple webhook-triggering steps MUST use per-step receiver
2629
+ # URLs; the default substitution `{{runner.webhook_url:<step_id>}}` gives each
2630
+ # step its own receiver so expect_webhook scopes cleanly. A `shared_receiver: true`
2631
+ # flag on an emitting step would route all emissions from that step to a shared
2632
+ # bucket (for fan-in dedup tests), but the mechanics — filter matching across
2633
+ # multiple emitters, retry-replay policy precedence, shared replay store scoping —
2634
+ # are underspecified. shared_receiver is OUT OF SCOPE for the first
2635
+ # webhook-emission universal release; storyboard authors MUST NOT set it. Future
2636
+ # fan-in storyboards will either flesh out the semantics or adopt a different
2637
+ # idiom (e.g., per-step receivers with cross-step assertions on aggregate
2638
+ # observations).
2639
+ #
2640
+ # --- Context accumulator and substitution ---
2641
+ #
2642
+ # The runner maintains a storyboard-run-scoped context accumulator populated from
2643
+ # three sources (evaluated in this precedence, high to low):
2644
+ #
2645
+ # 1. Step `context_outputs:` captures (populated after a step's validations pass)
2646
+ # 2. Storyboard-root `context:` block (literal values fixed at run start)
2647
+ # 3. Test-kit substitutions where explicitly scoped into context
2648
+ #
2649
+ # Two substitution syntaxes are supported in `sample_request` payloads:
2650
+ #
2651
+ # $context.<name> — single-token substitution. The runner replaces
2652
+ # the literal string "$context.<name>" with the
2653
+ # captured value. Example:
2654
+ # account_id: '$context.account_id'
2655
+ # resolves to the account_id captured from an
2656
+ # earlier step. Works inside scalar values and
2657
+ # inside array elements.
2658
+ #
2659
+ # {{prior_step.<id>.<field>}} — Mustache-style interpolation for webhook
2660
+ # filters, operation_id matching, and any other
2661
+ # cross-step reference. Resolves against the
2662
+ # named prior step's captured response fields.
2663
+ # Used by expect_webhook and expect_*_webhook_*
2664
+ # assertion steps (see Webhook-assertion steps
2665
+ # above) and by storyboards correlating an
2666
+ # async operation_id across steps.
2667
+ #
2668
+ # Runner requirements:
2669
+ # - Substitution runs at step-execution time, after resolving the test-kit
2670
+ # overlay and before applying auth. The agent under test receives the
2671
+ # substituted value — it MUST NOT see the literal `$context.foo` or `{{...}}`
2672
+ # token on the wire (see Unresolved substitution behavior below for the one
2673
+ # legitimate exception: preflight not_applicable grading when a substitution
2674
+ # is statically unresolvable).
2675
+ # - $context.<name> referencing an unpopulated name (the capturing step failed
2676
+ # or did not run) grades the referencing step as failed with
2677
+ # `unresolved_substitution`. The storyboard MUST NOT proceed with a fabricated
2678
+ # default — test outcomes on synthesized state are not signal.
2679
+ # - Captured values are typed as the JSON path resolved against the response;
2680
+ # numeric and object captures are preserved (they do not round-trip through
2681
+ # string coercion).
2682
+ # - When the per-task request builder discards body fields and
2683
+ # `$context.<name>` inside `sample_request` never reaches the wire (the
2684
+ # observable symptom is the agent answering with an unfiltered result
2685
+ # and the round-trip assertion grading on fabricated state), use
2686
+ # `context_inputs:` as the post-builder injection path. See the
2687
+ # `context_inputs:` field definition above for the full semantics and
2688
+ # when it is acceptable to reach for.
2689
+ #
2690
+ # --- Context echo contract (agent-facing) ---
2691
+ #
2692
+ # Agents under test MUST obey the following when a storyboard sends a `context:`
2693
+ # block on its sample_request:
2694
+ #
2695
+ # 1. Successful responses MUST echo the `context` object verbatim. The agent
2696
+ # MUST NOT mutate, filter, or reorder fields. The echo applies whether the
2697
+ # response is synchronous (`completed`) or asynchronous (`submitted` /
2698
+ # `working`).
2699
+ # 2. Error responses MUST also echo the `context` object verbatim. Context is
2700
+ # used as a correlation surface; dropping it on failure prevents buyers from
2701
+ # correlating errors with the originating call.
2702
+ # 3. Agents MUST NOT synthesize a `context` object when the caller did not
2703
+ # send one. A storyboard whose `sample_request` lacks `context:` MUST see
2704
+ # the response lack `context:` — fabricating `{ correlation_id: "..." }` on
2705
+ # the agent side is a conformance failure because the storyboard validator
2706
+ # is asserting on what-the-caller-sent, not what-the-agent-invented.
2707
+ # 4. Agents MUST NOT parse or act on `context` contents — see
2708
+ # docs/building/integration/context-sessions.mdx for the normative
2709
+ # agent-facing rules. The storyboard runner's validators rely on verbatim
2710
+ # echo and will fail any mutation.
2711
+ #
2712
+ # Runners MUST NOT auto-inject an implicit `context:` block on sample_request
2713
+ # payloads the storyboard did not declare. Storyboards that want to assert on
2714
+ # `context.correlation_id` MUST declare the context block explicitly on each
2715
+ # sample_request. This keeps the sample_request an honest shape of what the
2716
+ # agent will receive, and prevents an agent from passing only because the
2717
+ # runner compensated for its missing contract.
2718
+ #
2719
+ # --- Unresolved substitution behavior ---
2720
+ #
2721
+ # When a storyboard references a substitution variable the runner cannot
2722
+ # resolve — whether a `$context.*` token or a `{{...}}` token, including tokens
2723
+ # nested in object properties or array elements — the runner MUST NOT ship the
2724
+ # literal token to the agent under test. Shipping unresolved substitutions is a
2725
+ # conformance bug on the runner side, not a grading signal about the agent.
2726
+ #
2727
+ # Runners MUST resolve substitutions at one of two preflight points:
2728
+ # 1. Before the storyboard run starts — if any step references an unresolvable
2729
+ # substitution, grade the storyboard as not_applicable with
2730
+ # `unresolved_substitution` as the reason, and skip execution entirely.
2731
+ # This is the preferred behavior for absent webhook receivers.
2732
+ # 2. Before individual step execution — if a later-computed substitution
2733
+ # (e.g., {{prior_step.<id>.task_id}}) fails to resolve, grade the
2734
+ # step as failed with `unresolved_substitution`.
2735
+ #
2736
+ # Exception for runner-owned creative-asset coverage: a
2737
+ # `$build_assets_from_format` directive can only be resolved after a prior step
2738
+ # captures the seller's valid format contract. If the format context exists but
2739
+ # the runner's test kit cannot synthesize every required slot, the runner MUST
2740
+ # apply a storyboard-level `not_applicable` disposition with
2741
+ # `skip_result.reason: fixture_unavailable` at the earliest preflight after the
2742
+ # referenced format is captured, not wait until the directive-bearing step.
2743
+ # This preflight MUST occur before any intervening side-effecting step. The
2744
+ # runner then terminates the remaining storyboard without executing later
2745
+ # phases or emitting `prerequisite_failed` cascades. If the format context itself
2746
+ # is absent because its producer failed or was skipped, point 2 and the normal
2747
+ # prerequisite cascade still apply.
2748
+ #
2749
+ # Neither path may ship a literal `$context.*` or `{{...}}` token on the wire.