diff --git a/.gitignore b/.gitignore index 09410faac..cbdeae3fd 100644 --- a/.gitignore +++ b/.gitignore @@ -159,3 +159,4 @@ uv.lock IMPLEMENTATION_PLAN.md IMPLEMENTATION_SUMMARY.md TESTING_STATUS.md +IMPLEMENTATION_PLAN.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000..b5d664068 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,204 @@ +# ADCP Python SDK - Agent Reference + +## Server Handler Methods + +Override these in your `ADCPHandler` subclass. Unimplemented methods return `not_supported()`. + +| Method | Domain | Request Type | Description | +|---|---|---|---| +| `get_adcp_capabilities` | protocol | GetAdcpCapabilitiesRequest | Declare supported domains/features | +| `get_products` | media_buy | GetProductsRequest | Return ad products matching a brief | +| `list_creative_formats` | media_buy | ListCreativeFormatsRequest | List available creative formats | +| `create_media_buy` | media_buy | CreateMediaBuyRequest | Create a new media buy | +| `update_media_buy` | media_buy | UpdateMediaBuyRequest | Update an existing media buy | +| `get_media_buys` | media_buy | GetMediaBuysRequest | List media buys | +| `get_media_buy_delivery` | media_buy | GetMediaBuyDeliveryRequest | Get delivery metrics | +| `provide_performance_feedback` | media_buy | ProvidePerformanceFeedbackRequest | Send conversion data | +| `sync_creatives` | media_buy | SyncCreativesRequest | Sync creative assets | +| `list_creatives` | media_buy | ListCreativesRequest | List synced creatives | +| `build_creative` | creative | BuildCreativeRequest | Generate a creative | +| `preview_creative` | creative | PreviewCreativeRequest | Preview a creative | +| `get_creative_delivery` | creative | GetCreativeDeliveryRequest | Get creative delivery tags | +| `get_creative_features` | governance | GetCreativeFeaturesRequest | Get creative feature definitions | +| `get_signals` | signals | GetSignalsRequest | Discover audience signals | +| `activate_signal` | signals | ActivateSignalRequest | Activate a signal | +| `list_accounts` | media_buy | ListAccountsRequest | List advertiser accounts | +| `sync_accounts` | media_buy | SyncAccountsRequest | Sync account data | +| `get_account_financials` | media_buy | GetAccountFinancialsRequest | Get financial details | +| `report_usage` | media_buy | ReportUsageRequest | Report usage metrics | +| `sync_event_sources` | media_buy | SyncEventSourcesRequest | Register conversion pixels | +| `log_event` | media_buy | LogEventRequest | Log conversion events | +| `sync_audiences` | media_buy | SyncAudiencesRequest | Sync audience segments | +| `sync_catalogs` | media_buy | SyncCatalogsRequest | Sync product catalogs | +| `sync_governance` | account | SyncGovernanceRequest | Sync governance config | +| `create_content_standards` | governance | CreateContentStandardsRequest | Create content standards | +| `get_content_standards` | governance | GetContentStandardsRequest | Get content standards | +| `list_content_standards` | governance | ListContentStandardsRequest | List content standards | +| `update_content_standards` | governance | UpdateContentStandardsRequest | Update content standards | +| `calibrate_content` | governance | CalibrateContentRequest | Evaluate content compliance | +| `validate_content_delivery` | governance | ValidateContentDeliveryRequest | Validate delivery compliance | +| `get_media_buy_artifacts` | governance | GetMediaBuyArtifactsRequest | Get compliance artifacts | +| `sync_plans` | governance | SyncPlansRequest | Sync campaign plans | +| `check_governance` | governance | CheckGovernanceRequest | Check governance approval | +| `report_plan_outcome` | governance | ReportPlanOutcomeRequest | Report plan outcomes | +| `get_plan_audit_logs` | governance | GetPlanAuditLogsRequest | Get audit logs | +| `si_get_offering` | sponsored_intelligence | SiGetOfferingRequest | Get SI offering details | +| `si_initiate_session` | sponsored_intelligence | SiInitiateSessionRequest | Start SI session | +| `si_send_message` | sponsored_intelligence | SiSendMessageRequest | Send SI message | +| `si_terminate_session` | sponsored_intelligence | SiTerminateSessionRequest | End SI session | + +## Response Builders + +Import from `adcp.server.responses`: + +| Function | Returns | Use With | +|---|---|---| +| `capabilities_response(protocols)` | Capabilities dict | `get_adcp_capabilities` | +| `products_response(products)` | Products dict | `get_products` | +| `media_buy_response(id, packages)` | Media buy dict | `create_media_buy` | +| `update_media_buy_response(id, packages)` | Updated buy dict | `update_media_buy` | +| `media_buys_response(media_buys)` | Media buys list | `get_media_buys` | +| `delivery_response(delivery)` | Delivery metrics | `get_media_buy_delivery` | +| `creative_formats_response(formats)` | Formats list | `list_creative_formats` | +| `sync_creatives_response(creatives)` | Sync results | `sync_creatives` | +| `list_creatives_response(creatives)` | Creatives list | `list_creatives` | +| `build_creative_response(manifest)` | Creative manifest | `build_creative` | +| `preview_creative_response(previews)` | Preview URLs | `preview_creative` | +| `signals_response(signals)` | Signals list | `get_signals` | +| `activate_signal_response(signal)` | Activation result | `activate_signal` | +| `sync_accounts_response(accounts)` | Sync results | `sync_accounts` | +| `log_event_response(events)` | Log results | `log_event` | +| `sync_catalogs_response(catalogs)` | Catalog results | `sync_catalogs` | +| `error_response(code, message)` | Error dict | Any handler | +| `media_buy_error_response(errors)` | Error dict | `create/update_media_buy` | + +## Type Guards + +Import from `adcp.types.guards` or `adcp`: + +```python +from adcp import is_adcp_success, is_adcp_error + +if is_adcp_success(response): + print(response.media_buy_id) # type-narrowed +else: + print(response.errors) +``` + +## Common Error Codes + +| Code | Meaning | Recovery | +|---|---|---| +| `NOT_SUPPORTED` | Agent doesn't implement this task | Check capabilities first | +| `INVALID_BUDGET` | Budget below minimum | Increase to minimum | +| `INVALID_REQUEST` | Malformed request | Fix request params | +| `MISSING_CREATIVE` | No creatives attached | Call sync_creatives first | +| `MEDIA_BUY_NOT_FOUND` | Unknown media buy ID | Verify ID from create response | +| `UNAUTHORIZED` | Missing/invalid auth | Check auth token | +| `RATE_LIMITED` | Too many requests | Retry with backoff | + +## DX Helpers (adcp.server.helpers) + +Eliminate boilerplate in handler code. Import from `adcp.server` or `adcp.server.helpers`. + +### Error Responses + +```python +from adcp.server import adcp_error + +# Auto-recovery from 20+ standard codes (transient/correctable/terminal) +return adcp_error("BUDGET_TOO_LOW", "Budget $50 is below $500 minimum", + field="budget", suggestion="Increase to at least $500") + +return adcp_error("RATE_LIMITED", retry_after=30) + +return adcp_error("PRODUCT_NOT_FOUND", + field="product_id", + suggestion="Use get_products to discover available products") +``` + +### Media Buy State Machine + +```python +from adcp.server import valid_actions_for_status, is_terminal_status +from adcp.server.responses import media_buy_response + +# Response builders auto-populate valid_actions from status +resp = media_buy_response("mb_1", packages, status="active") +# resp["valid_actions"] = ["pause", "cancel", "update_budget", ...] +# resp["revision"] = 1 (auto-set) +# resp["confirmed_at"] = "2026-..." (auto-set) +``` + +### Account Resolution + +```python +from adcp.server import resolve_account + +async def create_media_buy(self, params, context=None): + account, error = await resolve_account(params, self.find_account) + if error: + return error # Auto-formatted ACCOUNT_NOT_FOUND response + # account is guaranteed non-None here +``` + +### Context Passthrough + +```python +from adcp.server import inject_context + +async def get_products(self, params, context=None): + response = {"products": my_products} + return inject_context(params, response) # Echoes params.context back +``` + +### Cancellation + +```python +from adcp.server import cancel_media_buy_response + +# Auto-sets canceled_at=now, status="canceled", valid_actions=[] +return cancel_media_buy_response("mb_1", "buyer", reason="Campaign ended") +``` + +### Decorator Builder (auto-capabilities) + +```python +from adcp.server import adcp_server, serve + +server = adcp_server("my-seller") + +@server.get_products +async def get_products(params, context=None): + return products_response(MY_PRODUCTS) + +# get_adcp_capabilities auto-generated from registered handlers +serve(server, name="my-seller") +``` + +## Import Quick Reference + +```python +# Client setup +from adcp import ADCPClient, ADCPMultiAgentClient, AgentConfig + +# Request/response types +from adcp.types import GetProductsRequest, CreateMediaBuyRequest, Product, Package + +# Response variant types (discriminated unions) +from adcp.types.aliases import CreateMediaBuySuccessResponse, CreateMediaBuyErrorResponse + +# Type guards +from adcp.types.guards import is_create_media_buy_success, is_adcp_error + +# Server framework +from adcp.server import ADCPHandler, serve +from adcp.server.responses import capabilities_response, products_response + +# DX helpers +from adcp.server import adcp_error, valid_actions_for_status, resolve_account +from adcp.server import inject_context, cancel_media_buy_response + +# Testing +from adcp.testing import test_agent, creative_agent +``` diff --git a/Makefile b/Makefile index d0928d31a..1334f2849 100644 --- a/Makefile +++ b/Makefile @@ -53,6 +53,10 @@ regenerate-schemas: ## Download latest schemas and regenerate models $(PYTHON) scripts/fix_schema_refs.py @echo "Generating Pydantic models..." $(PYTHON) scripts/generate_types.py + @echo "Consolidating exports..." + $(PYTHON) scripts/consolidate_exports.py + @echo "Generating ergonomic coercion..." + $(PYTHON) scripts/generate_ergonomic_coercion.py @echo "✓ Schemas regenerated successfully" validate-generated: ## Validate generated code (syntax and imports) diff --git a/llms.txt b/llms.txt new file mode 100644 index 000000000..2181e714c --- /dev/null +++ b/llms.txt @@ -0,0 +1,77 @@ +# adcp - Python SDK for Ad Context Protocol + +## What this is +Python client and server library for ADCP, the agent-to-agent advertising protocol. +Two use cases: (1) connect to ADCP agents as a buyer, (2) build ADCP agents as a seller. + +## Quick start: Connect as a buyer +```python +from adcp.testing import test_agent + +products = await test_agent.simple.get_products( + brief="Coffee subscription service", + buying_mode="brief", +) +print(f"Found {len(products.products)} products") +``` + +## Quick start: Build a seller agent +```python +from adcp.server import ADCPHandler, serve +from adcp.server.responses import capabilities_response, products_response + +class MySeller(ADCPHandler): + async def get_adcp_capabilities(self, params, context=None): + return capabilities_response(["media_buy"]) + + async def get_products(self, params, context=None): + return products_response([ + {"product_id": "p1", "name": "Premium Display", + "pricing_options": [{"pricing_model": "cpm", "floor_price": 5.0, "currency": "USD"}]} + ]) + +serve(MySeller(), name="my-seller") +``` + +## Key modules +- `adcp.client`: ADCPClient, ADCPMultiAgentClient (buyer-side) +- `adcp.server`: ADCPHandler, serve, adcp_server, response builders (seller-side) +- `adcp.server.helpers`: adcp_error, valid_actions_for_status, resolve_account, inject_context +- `adcp.types`: All Pydantic types (Product, MediaBuy, Creative, etc.) +- `adcp.types.guards`: Type guards (is_adcp_success, is_adcp_error, typed per-response guards) +- `adcp.types.aliases`: Semantic names for discriminated union variants +- `adcp.testing`: Pre-configured test agents (test_agent, creative_agent) +- `adcp.exceptions`: Error hierarchy (ADCPError, ADCPTaskError with is_retryable) +- `adcp.capabilities`: FeatureResolver, build_synthetic_capabilities, validate_capabilities + +## Framework auto-behaviors (seller-side) +- adcp_error("CODE") auto-populates recovery classification from 20+ standard codes +- media_buy_response(..., status="active") auto-populates valid_actions +- resolve_account(params, resolver) auto-returns ACCOUNT_NOT_FOUND errors +- inject_context(params, response) auto-echoes context passthrough +- cancel_media_buy_response() auto-sets canceled_at, status, valid_actions +- Decorator builder (adcp_server) auto-generates get_adcp_capabilities + +## Import conventions +```python +from adcp import ADCPClient, AgentConfig # Client setup +from adcp.types import Product, GetProductsRequest # Domain types +from adcp.types.aliases import CreateMediaBuySuccessResponse # Union variants +from adcp.types.guards import is_adcp_success # Response handling +from adcp.server import ADCPHandler, serve # Server setup +from adcp.server import adcp_error, resolve_account # DX helpers +from adcp.server.responses import products_response # Response builders +``` + +## Validation +```bash +pytest tests/ -v # Tests +ruff check src/ # Linter +mypy src/adcp/ # Type checker +``` + +## Do NOT read (generated, wastes context) +- `src/adcp/types/generated_poc/` - auto-generated from schemas +- `src/adcp/types/_generated.py` - consolidated generated exports +- `src/adcp/types/_ergonomic.py` - auto-generated coercion +- `schemas/` - raw JSON schemas diff --git a/pyproject.toml b/pyproject.toml index c7fba081e..330973971 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -97,6 +97,10 @@ warn_unused_configs = true module = "tests.*" disable_error_code = ["import-not-found", "no-untyped-def", "var-annotated", "operator"] +[[tool.mypy.overrides]] +module = "adcp.types.generated_poc.*" +disable_error_code = ["valid-type"] + [[tool.mypy.overrides]] module = "tests.integration.*" ignore_errors = true diff --git a/schemas/cache/.hashes.json b/schemas/cache/.hashes.json index e2902a23e..7985b9c9a 100644 --- a/schemas/cache/.hashes.json +++ b/schemas/cache/.hashes.json @@ -1,421 +1,3 @@ { - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/index.json": "337965cc387d0863e16103ffe56092708470c8ceb3b5631b9b03b5c0b7944dbd", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/a2ui/component.json": "d22a41a4bf249e0a1f21a6c4ef3916d1c7733e0f048d68cfb2c8536f58566b9c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/a2ui/surface.json": "6cac1f60e2fc36ad4a768c94cc7e430151bc2a76e280ca55be43e356e643c78a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/account/get-account-financials-request.json": "9fc44c2993a789fb81b26c444887abeceeb7e5b8ff74f3563cec896085a2723f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/account/get-account-financials-response.json": "74665c6dfb358503e84dc92361ce1418a622bfb4ea9673c4fc5488168f9344ed", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/account/list-accounts-request.json": "ce85993a01c59171ce98105f08cd8a2d41b43d42f2e16cdc71063b235bef2bb8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/account/list-accounts-response.json": "b7643a844da74a5645864bb9d8baa7d76692e564e242ee8792ceee0a2f248a75", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/account/report-usage-request.json": "c852c5c3e6a31ae23f27e0833055ef82e70c4140c7e86a5816634b358b7267dc", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/account/report-usage-response.json": "bb5b43da867fe14dfeb276107e65a41928debfeb156f6f3c3e88d7927ab1e2bd", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/account/sync-accounts-request.json": "64bbc9bed697ed2907d79d381960ff1318755493b4296a7198258b7e5ee44780", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/account/sync-accounts-response.json": "587aa9e2ac3ac6b04367c2a271d11243c8737b34ca2737980c30f91a053aa1ac", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/adagents.json": "b7c315a1450760c19937baeda27f1787826dbcb5246d0f867ea3e06d415ca034", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/brand.json": "ca89038a2f824bef21dc278d4d0c67ed8a16c37c7f642bea11daf66508b83f2e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/brand/acquire-rights-request.json": "839decc5694aa5655046c29d01bab8697c8c175661fb824b8b923aa815093421", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/brand/acquire-rights-response.json": "e06aceb0ef6481a68c573d88417f0b97c05105915b8d42fe55ba182717f1c2c7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/brand/get-brand-identity-request.json": "1df6ccf72d064930f8df0226a2a7a4f73634470b41459b944df8af86bcbf56b2", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/brand/get-brand-identity-response.json": "2c81d0ab363c6cf7f3cd503c227d2a2473945713a3aa64f546a8e1f006730d60", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/brand/get-rights-request.json": "1b9c5fa60d6cf68ca526e05306c2229bcee2fa726a896ae06992659ec784facd", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/brand/get-rights-response.json": "aab827a8758099930b54d5b1d920b0564376b709a685d6e790f97136dc810c3d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/brand/rights-pricing-option.json": "c1cee083ec9d6030e0cecb33d77b07052c5d109d27d6365bc84266d81e16141e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/brand/rights-terms.json": "db321b8024870a6f4eb94d6f3057365ad9690a23029d418c0aa7d8a8b9976979", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/compliance/comply-test-controller-request.json": "fce05b8a5c210d3e1c026ac3bd2d94570d9fe8fd9cf117a5dea5c9b7995f9cff", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/compliance/comply-test-controller-response.json": "e8b4a8ab03bf838a109e7257d3a1796feb3d5d120692e1b2143d88ac0f6fff5a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/artifact-webhook-payload.json": "c6377e352bd9956dc159be248358b01d53d1d344b73489216a96959fa1dc51f7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/artifact.json": "8285b6a997d8c5a1aedb006adb3fac7eb82396ea14bb1266a291197d45eff57c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/calibrate-content-request.json": "6537170c634f47a495ceac13a77ffba136521c21170999021a59bede1a9a09b2", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/calibrate-content-response.json": "c596242076ce3906693f15423366213c644ade4129823c2a5025bfa1d1088047", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/content-standards.json": "7c30143ebf55fe0e0a0cc62ee8d67022f6ad78933303d570e3c3a557df8a0752", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/create-content-standards-request.json": "f57f73577da67b09dfe6cfe8aeb16b67b7ebf511acbe3deac0f68d22937e2a98", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/create-content-standards-response.json": "475bf8eaf344ad41340ac9d70882175515080d87cfea6a23a7607a0459ccaa50", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/get-content-standards-request.json": "b8e88888817daa42b47a03964d3c183368aa46691a1135a75a1447a50cb34d70", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/get-content-standards-response.json": "a35255bb6e312ae98ea43288f807b0634220363284d109e0f670afb346bb461e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/get-media-buy-artifacts-request.json": "138c4874bf2e6c6d2cd5323db092b3dab01962f2882eab7f3952f27108b7a472", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/get-media-buy-artifacts-response.json": "34bb1a0b998d4dda0f20330b6932886a81371e8e796b01bffe2fab3aaf3bdf0e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/list-content-standards-request.json": "edf0418927f439b6b8c67325b797a28322515fa2bb67dbb782e40c78eb909282", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/list-content-standards-response.json": "27609d784e94493d591a8304cd15eaf5355fc2276c7869ca7a10ea70345fdf19", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/update-content-standards-request.json": "562b9bb1c3be385ab506042123ea7e7ec59d72c3e58a9740c59289283481f5dd", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/update-content-standards-response.json": "e748c05d78a081645f833038c6a78977653e694fc50e9eb9d79abae324a1516c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/validate-content-delivery-request.json": "af16937eba4c1910e70ce0e7ac7872a4e82d32d5549330522ca7c93ddc8bd9d4", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/content-standards/validate-content-delivery-response.json": "37a89f390d7b652ef862b57d944a7e413a587677b68768fa1dc7cda3b48473c0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/account-ref.json": "8e1aab16e9a3aa506422fc4b2966a141bff0fa0c90d6ecd328529fee1d56aa76", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/account.json": "cbb428cf9aadd7f72a872d1653fb0a27be5f4ea910bad1253e2a5f8185f11fd8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/activation-key.json": "49211f2c174122c9f82f35dcd6c689621855c67f9443a68e360d8706b4b0ef51", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/ad-inventory-config.json": "fd9dc17d81284ac4c49cc49740353eb60a6f447b0d05e043afc7571ed7669781", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/agent-signing-key.json": "c48ec6156e2311a6850d3c1e9016716cb83fd436fd7a7fd4b78938d6670cc66f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/audio-asset.json": "4c1ffd271031888a90a7473071fee8e96b2ee39083f39e0be8d824f446696826", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/brief-asset.json": "986312c6fbc535b7a0489be316a058136d0ffca46e9bf40167aa550edcb9dbc1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/catalog-asset.json": "d42fa509be120591a2af71469bf635665ca6960ffb44c0c45947cb511664d137", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/css-asset.json": "3b05e2315b5ac4290479ca15b4b777b4fa9a560010721524a8fc8b88260792cc", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/daast-asset.json": "1a4a15aa6e82508bca2de763f721d6077ec3687e2d8297918df51e176b0c58e7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/html-asset.json": "15aaab0dbea8193673b2fb26cda597ba3046965f525093cedd99b795e79c120a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/image-asset.json": "92412a33d0d3fd1cb90181e14031351a68f425248f7bc4befbfcdc9921b3c1f0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/javascript-asset.json": "f6a8debcc93d6501a774ae92ffe11c0090a5d293749c456207c37009e1d91b08", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/markdown-asset.json": "47810fa16aa050ee98e664ea1fa3aa6dfd89a8223b6404c9aa0e45c838108c0f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/text-asset.json": "5307478b9c335fd0311e9aecec087606602b6a4d297e1b67d29b87e16e0a9a7e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/url-asset.json": "3b56b834454a062fb7f316c799feb7cc5cd81f56e8a978494e6130eb4ce3095b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/vast-asset.json": "0a4de3c3b8389196baced22e26ec5c65b5d03339a8ba8a855000f0f118164e6c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/video-asset.json": "6f8c1497f7ce1a1bdb9185816a67e74256b8f33d8d31d308915439ab2cb66993", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/assets/webhook-asset.json": "e5e708e1ee8f554e60ac28195cf356e4bcb0dea55c137a84b25359d76dff054d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/async-response-data.json": "06501bd79d631864af4f13a6e34a254870fd0f98316217e880a1f80ca399fb1d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/attribution-window.json": "48bd87e750bd8e67e4842e4436dcbdbe2f8d44dcb00a4de4c12fede504178f95", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/audience-member.json": "99f73021919ac070342c5d5c8a3b5d16eef9f9a527a49f146db9696da0ac8de1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/audience-selector.json": "e0b2da1c52e48cfca37c7a5a4aa53ee0dc3c52433fc152e6db0fba0a4c85f409", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/brand-id.json": "af0beba954bdd6f6cdc999482536debf7df392601bfec6fe4aa10e859d9964d5", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/brand-ref.json": "fe7d9a9c7a172347238bf6efd1d80146ee3d8f32bb28b8fc6a00399aa595c8fe", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/business-entity.json": "90524b7476106a39ac4b8d37d4c70ac16c7b3ee499148ba97c480d7359daf857", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/catalog-field-mapping.json": "f2b48aef2b7b004c470f64c0f678cb990790f97f7130981aaa68988ec5f01da6", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/catalog.json": "e26cbf1fc7dd548247353b268841d438c8cbea1817cdc0c88069dfa773be77e2", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/catchment.json": "c77eca4398cdcd82d9700c6ce50c323f2190aa5a3bef27de0cb598c2f0cca381", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/collection-distribution.json": "9c8e8dc5857eb9c5a08657bd6ccdf667028156db0cd931162ccb7fca9b92417c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/collection-selector.json": "081452eaa7b8c8ca3220a7cbc89588eb11f9116be617514a61c440890679b5f8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/collection.json": "8e9e04fc713afe17f9598bd99b4875c14466d71e7d8c8905aec794fb3563498c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/content-rating.json": "da636d26db394d63cf8324f718cad540434e4116a555cff66d884d9e216655bc", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/context.json": "36f093ec6cbf4959ccce17598639a1401d90c4c94b431c90ca18a1ecca9d6670", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/creative-asset.json": "2374ca62ffbdb52e2051371f8c31151396c84f772cf286aa03d4e7fd4bb5da9b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/creative-assignment.json": "a7b3b94ab35d46f130f989537ab5078ba51e572521868aed6924a7634feca7aa", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/creative-brief.json": "5b4e8aa8a149deb74294ea2d8e59b07af5151c8bbfa0b3c11bd27535570eb094", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/creative-filters.json": "c98c99dc62058d35b3a30a016db715db5e4144f408f0198a1911d8fe9af6ad7a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/creative-item.json": "a57020236d9795ac5c0a216767312784e3f199acdd8c0d2c9185c078d256d9e2", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/creative-manifest.json": "ab3c83d6b3e022b8004706d90629447fa5dc3a8431f4ef9052e2beef66a2c8cb", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/creative-policy.json": "b57062159388f555cf3085c3152aee8885092ef525124a07d523114da5ee79e6", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/creative-variable.json": "887135d4977dfe09ed0eb09cc7c6680932aacac687ad2687995ef00b96a7b682", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/creative-variant.json": "d238d4b5ec450eebc21b924dbbf937e446a998d99d5d235765baa8d0cfdd882b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/data-provider-signal-selector.json": "bf64573e6dc5c8ca02642e29e4828074db39c3de3d183bc6c0607ae332287006", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/date-range.json": "af3d972504557299374292fffd29d3d7fc599bac7c6f845bd5e369d71ae6822b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/datetime-range.json": "e487c28407078eea7924c67fc3ce7d3c872c2cf3b473ff03e98a6c0e2c1d52aa", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/daypart-target.json": "3a2b36ef137dad024db9011d538e08a82a75d507d05a227ab803cc1b96c23469", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/deadline-policy.json": "05891a79ad2e6ca8a780fc1c1ffe08d3ade5d8c710d782b1c67ea77039ac903c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/delivery-forecast.json": "32f665c34267f7c405daf68ed8155dec283762d5ab9d203e10d9a56378d0a1bb", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/delivery-metrics.json": "6590ddb8ca403a58449a18434e5a7ec424a1e8f33ad1ae103937a4ac179e185d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/deployment.json": "8e3632749b01594c6a68351461b2d3ab2426520b7e3d10d603f8ac0cd6e4469e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/destination-item.json": "068cb60a45457276ffd1d81f4086afdf66e1bc3b72fc3228058b9c922d209bdb", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/destination.json": "97f216c49be477cf1081cea20325ae5657c4d43e0a606838f472c62a9b533bf4", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/diagnostic-issue.json": "c4530f7b2b9f0b8240ef76a8722c0655ddafb9415c24dae435e6245b6b4b694b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/duration.json": "a439738df862db14e1c3fe610c1f06ee97da68384641a9576c047a0e0d16f530", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/education-item.json": "3bac05d8c668582cb48f3772633e85d0a92f483ead1d59ca55d1df1e04787003", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/error.json": "72834a865eb205619c992e52e3146004d59ff263b7cf7c762b0a39fcb9183a09", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/event-custom-data.json": "90a319b34a865b802c306973b2b1648c1dd5d14e9b93fa438cd793fccaf55766", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/event-source-health.json": "5c651ed1db3a4a0cbf333db173f81b9ea094460a48f8fec6a63e270b0575785d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/event.json": "25e2c65ab09361ff9dfcb738a90be98b9f76bb48450026a529dabb3f37598425", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/ext.json": "c5c1af3285f2f97f1366f9fdb95b51e06657d3b27b18df20fdccc8c8126a9eea", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/flight-item.json": "942114dc393ad5f0b231b645b0c1220bd750eb1acd1159e18ac7076d58400f61", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/forecast-point.json": "402915a12aa4849c6064ad713bdc52eb696052a567f886b132d10c0b47c99285", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/forecast-range.json": "e6bc264f87be81379238b37f359180553caa73270edbdb04b8af2e1c7b6b5200", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/format-id.json": "77a8885b39b09893283f5d56ee43425616b4ff7a5707cd4cdb78d602614d15bd", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/format.json": "a51942f65d8abd726b0afaf2f7089d550bb6eb68919af5f7442dabdd787918ce", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/frequency-cap.json": "e546af65ced0efdd94b37aa8a79392ee0db65199d7523f3874502062fe2beb9c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/generation-credential.json": "7ed94f90dac432106d46ce8406e5560c691049f9c618dac38b6a9c94fe66b90b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/geo-breakdown-support.json": "cdb8bbf5f4a5310b8c1e6c75b9def6fbd8fc25b1a6b9a5f35289190b265f0df7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/hotel-item.json": "b3a48a73b763dbee7aa3d489d0ff3f85b83eaad5452fa1c41822f0f210b5006e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/identifier.json": "a1fc2123d11363750b1535b1dd50a8420f0b4d42feb1282d42f79e7197b84552", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/insertion-order.json": "3ac04a4a50ecc4345a938a2562a213a2574a49f3c40f25f08b219ff63775da5e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/installment-deadlines.json": "18a1eff2d19019adf8614f96409b4a0d738194e7a0202710bf3954274f084fc0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/installment.json": "eb2033ab2cd36e58147122526ec7adb11f43c1828cde2ce0cbf8470c0a0320e9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/job-item.json": "f7ce002b9545f747cd214cd89c8917ecfff8a44784269b6a1043fc3cae208d23", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/limited-series.json": "755c3435c9f63e5d882ebef0649e4c954c95c842e3c1cf659ac76504fe47b301", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/material-deadline.json": "f64a64a1806acea36e3d40a5dcdc1bfa5107f567296a79f81dadbb331b4625ac", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/mcp-webhook-payload.json": "779c37fd07367dba50cfdd9e380b85fc340f335571387365add175421f075743", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/measurement-readiness.json": "d21431610d1f4df28c910943c2b7c57476e89fee0de2b17c2178ed6a444b1153", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/media-buy-features.json": "0e4820325f5e36bd21d3b047e97a86995be00dae045ce76d0bc0aa6d3bc0cedc", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/media-buy.json": "94d8b6af4faef192f84a87e163a04d6d54b5b191c11441c3b317359a0ac352a0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/offering-asset-group.json": "dff532d46abb645f9cc148b3f5f7f5ee3ef855509a7f63cd4ab30fd4ec600cc8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/offering.json": "feaae5cc67b058f8c07100099fbbd309ca4b038614620c30e16cc2759d8277af", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/optimization-goal.json": "eed5461f199a14074017cd6a9988adaf6d47cfe127022829f2923ec111305f2e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/outcome-measurement.json": "66c9072ecbcb25d9bc4de7f1c91206e8b820d399d035b56832ae3f3227140bfa", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/overlay.json": "ea4a05a68f836d4e9970b77930770b53a531aececfcfe1d5c5972fbe6c783d4d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/package.json": "86e972f84fef1a46a0e30b6f95a0680b5fabc0aa84ba6484a6fc226f4da855d3", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/pagination-request.json": "2e798210cee0cb028abf107f86a9d31ba8698b294ebc2cdf1150c28cf7fabd79", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/pagination-response.json": "c2b29bbb668fb6c4839a3be878e40a01966c7bd2c7785bc100b58ac9412b2af1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/performance-feedback.json": "8ba7065139aebf018299dbcaee83665745bd617a98c6c884a51dd5d04ed33cdb", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/placement-definition.json": "84a7a032e82cc0d3f73ba0f1362e190d095598116f0bae0eb2bcdb92c2761efd", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/placement.json": "21c6d48abb0560fdb0f5a2219a6bc5bb0392e4ae3f88c04f6801afbadbec84a4", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/planned-delivery.json": "560976c9d1b6d314e3c7ffd25ebdf0d25552e3937466da49dfcc3fb21fedf303", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/price.json": "be48aa7b81c10ac02adc27ea39a95e051c62dde7e04ddb8fb16d0d92ffad5557", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/pricing-option.json": "66c25a6614b031f94fcdcd8e45c3594aafcf8048ccd760e58bc6641ce83c13a6", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/product-allocation.json": "97caee1d479157ccddca1132ef62f46f33103b496d18084d100d17765f751c3d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/product-filters.json": "6df5fb954f7531145d585ea981a4a9dbc805cf2b47704d582c332068d470c62e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/product.json": "68a1474fda31cfc77cc22f7ea65e9d785cf9d6b0d8a30fd0bec5e98536318d39", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/property-id.json": "a35c55f7ee76ba6b00169c7f10b1c99cbc78428f02270085ceaa0d6b6682ffa7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/property-list-ref.json": "c4bc69c0d05dbf26c6c65bf18fed4740b76b22c5fa491810853c4102b0c29328", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/property-tag.json": "62bdc767e49f96eb2a93fcd7eacfd17546ff0672733b0ef5b8428abfae404719", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/property.json": "7f599dc226a6ea86b7d919610a11a1d8557a8e646d89681630470b951903405e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/proposal.json": "7bd35aa4e4edecbfd8c4c888ec8c6061992e8cebe58b1768d889dc799349eb84", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/protocol-envelope.json": "97b3105d54c39d3be9bb61cae791dc8f79eb5beeaab437cec5fb4dffb6aeb545", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/provenance.json": "7f8b2466cc6bd7b4505b6ec99a70b0c638fcb7e82af1b886d2f585e700c2ca8e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/publisher-property-selector.json": "80f5752ce8130fd10de72c371a4a1a55d01e6e2a1dcf13e9c4675364f995a802", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/push-notification-config.json": "f8064ce2c2083b43dd5119f3d29f4cbcd86381cf9dfef42bb38cbefc930d284f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/real-estate-item.json": "5052af9c73aceba3d381c4039e8f8c575ca7a4acfc43046fac857a3a04c0826e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/reference-asset.json": "7878ffac0af72af6635d0cbe4fbb67ea1cbdb83858927b5ec1ebfa0eb43240b9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/reporting-capabilities.json": "7e34bdd5136cc3eea1fea1d0491071424a54232b31f8518311f076684f14f18d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/reporting-webhook.json": "4ff6f4bbae66bbf4eeb2cb540d41e874bce4e62eaf3482a114eeba34c1edeba7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/asset-requirements.json": "d785c2c9bff7414c8791bf7720b4c46224513da66138ec3f67d8b1febf6d79d5", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/audio-asset-requirements.json": "c7b25539ab058ab77c36958475784dfd667d095fa7b968aee3f0e94132b6a76c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/catalog-field-binding.json": "a09d50656afb126885983ec46ce8c080e07ae9a42f691ecfc2a44aca3bc8d96e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/catalog-requirements.json": "ae8d67a1033c6871e30708c71407fc8dd1f56a19740102a2ecff1f357db739a5", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/css-asset-requirements.json": "84426ff7effffa4a4855d27d4f054209e9d23eacd121683eeedcec6b0d310a3f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/daast-asset-requirements.json": "fae43587a0d8c4710da4fe09b772c59ae42749a9bfbd21657acfe3efe00be599", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/html-asset-requirements.json": "ed5bb07dd21c184eeb4dac0be4d34e18ea654f5b770002d24415080b0af91a38", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/image-asset-requirements.json": "f94eb0612adb069b3667000c647672b3015592ed958d7b36444a8ccc09e9167e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/javascript-asset-requirements.json": "666dd91dfc25866ffbc6af09a1aaa19f468a0cc8a65fb07efe28adee13591235", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/markdown-asset-requirements.json": "6205541e82d660dbb955cf9e36732b035b621562a2b51487eccafa956ab5191e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/offering-asset-constraint.json": "b8b7baeb51d47fc08668744bc4ca08d0690e8f720615850d8311522d55f0dddb", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/text-asset-requirements.json": "5562aea2423d6c79dc068f53d7628695bb39b4b394c0202e8bd60effe2037479", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/url-asset-requirements.json": "a9726940c9b572eb85129cfa202200f17a7d678096ed295da100a6736544c820", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/vast-asset-requirements.json": "40f1b5cb7bc0e236d943d21842166cbbc522711f614f2da84c8d6b13277aef0b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/video-asset-requirements.json": "cfe0d741fee6550067f13f2ab447f06ffe4dd4e4e9f00d89ae137a770dad24bf", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/requirements/webhook-asset-requirements.json": "6da417c652702e876910561e6ad9e0000170c9986d0a2a97f94ae3d1f10535bd", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/response.json": "b15a225a65d3ec28f740ca8f4c78ac8019cf4a7a08e64b758af10a12fc29a7a1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/rights-constraint.json": "735912432800212171592a745175269f3f9c90bd9e484ed869462a3533b59349", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/signal-definition.json": "6b556a7fc5edd66c3d0558e9596462cde122d1221cd7f8d835aa8da7c153ee9d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/signal-filters.json": "ac2f7318e3f250b317fbf7450b849cf7da23ab1dce95da5a1feaf7a1aeb050fc", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/signal-id.json": "502249fa0c035e4a9ac895d977569e5db625ed7f531f004b9c15d67d8a6715e4", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/signal-pricing-option.json": "500cbeba05b0a825b4660a361dc8174fceca544a36bb98328a5955eb14f6f813", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/signal-pricing.json": "60a1e03b4d96916d1e17accbe1d7bab6fa43aee473476746fffc387cc96b0d2f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/signal-targeting.json": "718182083b753ec40201c0903f2f040c2b7d92e7028d641fffab5500d038cc0a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/special.json": "ccde951fffe66adc4eb9f649b478d2a7f9222aab0cfc5a6625839f9834d41a96", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/start-timing.json": "6cf400371202dfae4f8a4510006f87ba79ae618e326fc7ddfdfb87115b0a60ab", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/store-item.json": "361787bbc632fde6c5fa83ebd61b42b805db1b3b030936034a64c3c8d0133e39", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/talent.json": "f636f9e31324ed2a9e7d5a11190827cd5ff0d7997a36e352dc2adca6d3988133", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/targeting.json": "1193d005ea18ddc1a82fbf300c0af94cbc931a4b4f6bdab2208e55a4eb71b4f4", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/user-match.json": "24ce93394e16c2efe2cd09b5228397f4d89e849f94bd56724efb7678cf231773", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/core/vehicle-item.json": "473559b138e3c4fba56c55497472774bbc2a7225dc8503698c7708ee94b88a04", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/asset-types/index.json": "96a481a046f65d0ead5e56ba95c15ddb411d76ba70eb6d1df5a7f873205acab7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/creative-feature-result.json": "79a94729f8dfd10d826756de53f443e61b7f3feac411196cd490e1be978c865e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/get-creative-delivery-request.json": "0eef2a9ccc6529ecef715f0421f89b35704d8c7ac4f481d0960946029407e8f0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/get-creative-delivery-response.json": "feb57b65e183d79a8019afdec7c7bde499e1bc73bd679d04fd243ba955216857", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/get-creative-features-request.json": "2a58b027a95b8185ddad645f4f5275ea6e7b60f4bac7f3da9985dfaa90604ed0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/get-creative-features-response.json": "efc5fd2a280d69e737ce7cf0afeae36b2b7961fc95c3d5f3479aa6e948df61a7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/list-creative-formats-request.json": "dc38746b693273f7a2019b5bab0fff5482e02784389813a42bb658d3b075004e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/list-creative-formats-response.json": "067bc4eeda59e32956105cd35969c8ec93c489acdb085701c290a03eff3a6d66", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/list-creatives-request.json": "82cd55af274917c6a6b7f43cbbd1c5611cca490c0319df46edce44695557ebb0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/list-creatives-response.json": "2b13767713ba9b9b5ede64a590fc246a1b7d0d2f3ece735a16b59ebbebea45cb", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/preview-creative-request.json": "9e1c70b943d0f0f62c15631f2751bc4eef8aabf82352b1cf981907bdcc153d05", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/preview-creative-response.json": "aac85fd800f6b3c7ca4459bb0e8a7b297f506216130d49b94d408d31d3567cb3", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/preview-render.json": "1b07b42d28d0c2007d9abb4e2edff279bcbf42c55162ad2069ca311472436280", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/sync-creatives-async-response-input-required.json": "bc7317cd10d83435bf1cbc80ef45f8b1ae46e4fa504cf0ecf5be61be3ebfa946", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/sync-creatives-async-response-submitted.json": "6c7b5aa13a0a73bf9a9b78e0233d053153b2ee3aa012d5600279df17e5a68d2a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/sync-creatives-async-response-working.json": "8ed8e7bdd7ac72c797a0b094fdc0a5e9fce654beb8dd9949ab44b0a624dc3408", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/sync-creatives-request.json": "570a9cdc541d65d3d16c24c373b197067cb5d7cd62fc76b0f9dfe573a8dac358", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/creative/sync-creatives-response.json": "3f86532a480c94f59a77b2f11694e8094a090a56bd4b63744d3db84e0b100608", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/account-status.json": "c979b5e3d4349ee1122115211a58c7f92bbc4b82a55f09fea32994e258e5031a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/action-source.json": "56b008404bff9f5c3c8479b24ce2bd41f879e04fad6d05a56d8c9082b3b9ba76", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/adcp-domain.json": "d405ed732a4cde02549379eab394133347c89c51bec7368cfc111bd3c6f52d39", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/adjustment-kind.json": "1ceb6366205dc99028823dcc1625f6a998b467b512a97986b3ff56f1eb0febf1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/advertiser-industry.json": "c3c4754fe9679c32fd2b4bc9352e6b363184ffc32795809d17fa48cce6f74957", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/age-verification-method.json": "abad241d52b3b393e5fca15d5c690c724b1b7796762567f163b7122867a269b1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/assessment-status.json": "3d06a21fb6cd965d8d4efc8039a8a787f61f312e6a9a13d2400d8cd662e9fcae", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/asset-content-type.json": "9badf3245dc4b2691456e88eed5d8e4f28a3777bab66efa66b175ce6e9a0e315", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/attribution-model.json": "cff0310a1108345b80d620eb7b1aec3489c5c57cb26d6aecaf1dbc7b92e4dab9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/audience-source.json": "f7937d36a894e2afa213c3bbf877d0bd134f9d642be8ce19e4ad09ae51d25dd3", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/auth-scheme.json": "541546b3b9084fbfa1da0f10ce5d1402f0a5163b681316c71d20adf29185511c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/available-metric.json": "5ce7c51b425a3e31bf145230dd081da4b27618710c4ddd025106b9b887710494", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/budget-authority-level.json": "d1695c98f8d41ed6892d7e1c546f7137df7abc291e8ee4cb5c182cd2cb4d9c6a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/canceled-by.json": "afa612f38e82ba8599c814a75b84942cc5b47a328e7e6bf3714a958d90729d73", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/catalog-action.json": "60e1f7612ccc232a877c8065010f4236116da6e48347aae5a67006575777675a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/catalog-item-status.json": "556faf0e1f7b5df22d706c6f51d5cef349226bfb2f3bbe72efcc7bb6df6059e5", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/catalog-type.json": "8082ba0e9b2ec1e451c579edae2eab8e398f86d0ee527f5af4f77d865b74af6e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/channels.json": "c5d114c3e6add9008b974fa67e6128f01be69f98d210ae69753e2abda853a142", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/co-branding-requirement.json": "5218ec205e4bad133bf1e1b35112a7a3e42c8a08cf3a385246a3db0a31d199ff", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/collection-cadence.json": "cbed1addda9474aa14cb605fe90c983ffd530271efc9f36d452e42b3f473253d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/collection-relationship.json": "e5b1e3fb7d7494f194566d190b74247092f6599c49e766a39d8dd8dfe085ae50", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/collection-status.json": "290366ba3ea9f35ca21fa57616798c9af69f1bd339c4a720235400a49a263df0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/consent-basis.json": "e239b0591834e717a2ba77964c9517a0d807840c424c456e96de7b46152c0d45", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/content-id-type.json": "c20694e48e05cb8d536911b6fbaa510e5ed2453161df01af159246bfed145fe1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/content-rating-system.json": "bf43f9a92f922b8e58ded86045695f38ae3eb558c53d7a8c0c406b3ad8e92a2b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/creative-action.json": "4aaa15c1411f387494b8e192404df705f65336acd983c2dbf3c0a3261154337c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/creative-agent-capability.json": "26470082db67f6c97826889dd450aa8ab823453c959eac9964c50945ee35915f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/creative-approval-status.json": "a3a1db1aecca907289d269fc00e428def705b46c1bc9a91507569e51e8f8c29e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/creative-quality.json": "5cb290ea97a6369a68d817f2384fa1c1f4c954ea5ea5548bbabcb5b68cbad081", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/creative-sort-field.json": "faeb3a1c5f9b7b9bc2e4fa5c22b809fa0d3e1f711842379c9465af2ea2ac3bbc", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/creative-status.json": "e4db4382a79960b99c12ec765cd57d10cd1d4b8e771e49150bd3ada0b8338a76", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/daast-tracking-event.json": "4c8c8a528e7b98d26f2b48b5267013bf1c0843984e0df5b90b4ea1e7ebf31113", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/daast-version.json": "52ee754425a9c0a366403815f1f84359e51fe68da29d6fb25f7aa7ee8ed81b28", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/day-of-week.json": "0d8111721a7f75d6c234ab615f07a811ddd879b9a6196ec337a8d85ad6d1b75c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/delegation-authority.json": "cf9fec9ccfd2b75badec9fbe68e408bd39790411aba74b484eff917124e5049b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/delivery-type.json": "8880d410edeaed2392cc4dc165b4b89e5d031aa87339eb0ce9f717d1c0a12e83", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/demographic-system.json": "43d8a6c262071500fd8fb3b08b8e158c9b7d530a2fe1e890894907225edf1c93", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/derivative-type.json": "49417853526c8330d4f1ae5cf22832dd3c0b7f46bee3fa85794e5035c1166b30", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/device-platform.json": "834b1ba2bcb34958e3557aff928d51c000ac27b2bf59dc42723bf3dd435ebed1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/device-type.json": "3e248bb16accbe51111bfb9fbe265e7203f00ef8b915a90128ca518103982057", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/digital-source-type.json": "5c1037b7dbf6fa3310c0ed732a3b1b0932339f1759b42364380b792c6da3a19b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/dimension-unit.json": "d70ba3035d85faf9c0378092d0238b024b2b319810481b3c9bc6bd8973c72a24", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/disclosure-persistence.json": "df28662b89f736ba6f5db294e6857cff3aca1d485e066f8b72d9a8955286661a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/disclosure-position.json": "89022d5e01cb9ac81f8e1b87c125fc2a29cbc5a3ed610fc16eb83e7f0661e9cc", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/distance-unit.json": "8521c106cf45ed42385027c1585ac9e9ad40489140c76104a95b574cde3cb04a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/distribution-identifier-type.json": "3dc64ac23ebe930f9f6bc28999bbc147daad675125cc3a94eb84e38d3b5aeb06", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/error-code.json": "00be84afb7b215d67f00d05ad3869bb5c9fe328d3bbda74fcf7b968fbe5219c8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/escalation-severity.json": "9fd1607ad829f7c5285416f9c1c968be7e1891f7bbdde182639b150f51235f21", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/event-type.json": "6977b3c21d0a5b7d671a61fc666464a606b7126e96668c129ede1115755bfcd7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/exclusivity.json": "dbfdd36772cd436d3160a4f907bdaa7832445b5e5e2498777215dd94fb445135", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/feed-format.json": "001191d949f6a44615a6015f8eb1f1f540cad36ada39326a267eaa4645b6965f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/feedback-source.json": "d386c2c91fef1596d63bbc4d778d836a7bc2bcfa61159a977d7dd24e9315f9d1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/forecast-method.json": "e0891382333d8574d8f441d82fede223af3084a88a45140e795ef5ea37ebd367", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/forecast-range-unit.json": "90f745ff2aba1425a12495913e8269c49fa83c8563c6286e026a254475ce47a0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/forecastable-metric.json": "a5070ed3d6ba0ee3c47b64d4f22fe0676c680366e946139d4ef7cf4a73017dd1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/format-id-parameter.json": "0535d8774457622a14cbb9d04669a8f21a18b78bd51d0b8c827b28d65afc49ac", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/frequency-cap-scope.json": "225d76be25173303e1b9bcda03763d6a9f7dae976996a49ccdd63af1cf62845b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/geo-level.json": "85ab7c17bd12b5a66b85dadfb9e5f66582897b45e28fc04a44bf4b7f9fb99e9a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/governance-domain.json": "7525162b93a6c7c3d969141da98bb7f83b988d0a91c50f460ab49c99384aebb9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/governance-mode.json": "68ba7f3cb93acf8b5c6477c5fac532de77caa4bb164d7120aa63dd0dc921c0d0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/governance-phase.json": "25491073b8f7c8133c817dae507bb559169cc3ea18e8564e296943b8dedeb805", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/history-entry-type.json": "33be1002a81e8624f1ac817920b08cc13b79b480bed554f00f466254a265026a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/http-method.json": "95472135ef423dece55d2b018aa5bb2e657addaa515c5c9f33e178d69705ae87", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/identifier-types.json": "f1e5d0fdfdeed6d3aba7ca6f15ec8df2343e2b3ca4881420082c8715414ba980", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/installment-status.json": "1c1d30802ea0540e54762f033a1479613f0142719eda28d8d7c8a3e3fb285f44", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/javascript-module-type.json": "7aff0ed0ef9b58e81fd24c0461f3bab6788cb317125e63076d19244396a475bc", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/landing-page-requirement.json": "444799db295fb700a628b345030d7830eb9fb5a31928bb15ae3a803f5649b6e7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/markdown-flavor.json": "d79470b71f4b3e6fa6152962ee15fa3585f712c90ca6b49fbf669d2b6f84c8a0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/match-id-type.json": "cf2fa97efc01e40769511e73393099c9a2075e8ae43f0d32042e7510192edda3", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/media-buy-status.json": "922b6fd96b876d7ebdf148c129a808bda560cbbc0ea69d7d9d3989fbec55eaef", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/metric-type.json": "4c08d6b77bb09a80c853c5c957fad23d65f8f00469ebde558cef84c7eb1757da", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/metro-system.json": "fd8d9ae52b9f91b5fad364d351975fe9af139e425f92b7cc9f20a9b16ebb166b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/notification-type.json": "25a194b2e1f82dc1334bcc793f7560e8dbace6e583965d49f2b94e303a6af61c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/outcome-type.json": "0f88fefe25392d54e67186ea19b0e035f42d42875ff95436b9810fc81373e3ce", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/pacing.json": "a00ec720fbd82ca9e74aec13b001f208734908e497d2d32f2a138198c3dadc77", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/policy-category.json": "ab9ae73be8459a62c205e9b1882cf69b32600cc80c45c0dd3841a9a325fb5c97", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/policy-enforcement.json": "ddd5504656e72298cbea7a88d258fcdcbc6c7bbc1c9ea59e49fbb7e1f6958f4f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/postal-system.json": "d994dec184a3dbff8acc5af9b158fdb641eb463250674fe5259aa0345d6a8c04", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/preview-output-format.json": "40ebd82db8f38975dd0285b2500a4e174bcc923f838dce34edfd406bc85be130", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/pricing-model.json": "050e3634b2257fa4d4cea85ec01f6920b1fda1f806975eb0e93db71662c5e4fd", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/production-quality.json": "c28aec989ea8adcec88fb01217e6bba5e3eb555f626ccb8570e7370ca9ca5f7b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/property-type.json": "c4c6aa8e3a21b1ce8974f1c76aa8c467ab715a142b23b3c84ce6bbbbbfaa2ae0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/proposal-status.json": "ee47d603d20c3a644f0bd2280ea3d973300542a1d1a189562cfbd649a7793290", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/publisher-identifier-types.json": "3e994c7b8c21e65cd3a344b06715b0def3299941054f6931475d058449552152", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/reach-unit.json": "c437646c497113b7be60c518fb8c4e4707da5702f645f04e8934a044b688437d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/reporting-frequency.json": "450378768088b0534cd36e023a5cff410ec04c2bab4cc428a44e6f5dfbc65c88", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/response-type.json": "87de8f690c52fe9490ca45e16c4f4a12c7251e9d517a2a7a1a63421bdcc7dd26", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/restricted-attribute.json": "b939c8996b588370e065ef287ac96666ef8e00a0cd89013bbfd462cc4806d129", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/right-type.json": "fb77373efe6c635914f3def4621b42bf9f003208584b85db1eb4e9091b36ce98", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/right-use.json": "8f3e3764a11a622b6d835e04e23d3db4a5795dbdb140d904a434f1ccceff6b86", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/si-session-status.json": "beff2d07f84e112cf167b9c0e377f32442b17cbee3879bfc24bdc571d90212d1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/signal-catalog-type.json": "742abb7deafb2e96e0e41f5faf576684af172a11cac4aced181c3b12a6081a69", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/signal-source.json": "eae9f86ec054a0bcb400f08fc01bdbffec5f2fccf419378ae698c750609cafb9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/signal-value-type.json": "d9c36f6d0a6f33e113785169c700826f29f7b9e0fd940fa0bec68bd0a5134eb4", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/sort-direction.json": "db1d8c459a1dee3aacaadbba65d1044b1dda093de4bb66652c0bc4a986828195", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/sort-metric.json": "dd4d8d38eeae2672600e34f4db596f5826a91e37e4a2f7b3ba8ebd537d27973f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/special-category.json": "dcf2e66c8f249809588e2a0c54dab247da12555ad0dc37fa59dbecc672c00715", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/talent-role.json": "a5fe0d3860d9d5958da954f33db9380b365aa02fd66cd839f2c4cc7fe53cd818", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/task-status.json": "c66fea8e973d8719bfbfe8806b84a48159447dccaaa7ef0b7497cc43228ad2f0", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/task-type.json": "c31dd37daa08154813885fdd4923fe3114e1769626e3428ec6d7f90c31371d23", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/transport-mode.json": "d92db5dab57b92a752653a5190e728067c0f67b190e2c77213e6f2f70d6e533f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/uid-type.json": "4351abc3a7961826e4273b5ed5a5ef0a32b26e9def3962aee3c9d8372872aa5b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/universal-macro.json": "05804301ecf85282c0b16d11ea118950a2f7c3de40b73f3aecb27e251166e514", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/update-frequency.json": "3863107a07c294844f2deee661064a5f76751c54515d0db2ba1ba4f4056bd3c8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/url-asset-type.json": "3aed590f2d778ccd320def8f515848d0f540379f61239f794f6466167212cdc5", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/validation-mode.json": "88e6b4393498edb19b0d8c59b562cfe254d18f91a3d5823fc0111bd950237fd9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/vast-tracking-event.json": "0a137f05d2b6e3061ea6b5f55fc7bdd070470f9c2129a8e9542c665d1b3da5a6", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/vast-version.json": "8bf6ceab7ce83734774126bcbcfb4918d1d4104ea7b030bd0be7b1f6a381d34e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/wcag-level.json": "fed12c2096900c795481ad29f601e8324a42c335daaa412a7d34d47fa1769531", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/webhook-response-type.json": "03f77d6271fc292280b64271f90bc35840d1cf5609da645178c545969612e1e3", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/enums/webhook-security-method.json": "918d570eddd2a9150c37744d5e9c58ba3faaf34cfa66e7b93c2948656f7ca7a2", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/extensions/extension-meta.json": "07a8669be04a0f3b02e6471ce001a2de3da061a19be9a3c8a46140ab809b755b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/extensions/index.json": "767932876279653ae4acd516a79463074e8933e3b994509638955dacb10919d8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/audience-constraints.json": "3d168292429350c8ba120f32fe7d09ab830c30d7e424598c078abbed7e2b744b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/check-governance-request.json": "29806d9864dd1a661a37744f97578257f60e2fc02cadfc2e8bca637deada6390", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/check-governance-response.json": "b8b584e766a406d13ee653ed4fd070c26083c0b4eb641b964f0997483ea5d657", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/get-plan-audit-logs-request.json": "0736713c4a8d692f850cfbe88f69078f2f863272eeb4285a1e8d3602fda20e98", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/get-plan-audit-logs-response.json": "bc241d64205ddc725de9e2b4b1ce2fc03ff1238305eb262a3d508455c12c147e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/policy-entry.json": "a83f888fd181a02ec8d2115b1edc651a2efdabdf6a86e4c12daea787959d0278", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/policy-ref.json": "bce27606906d97984b602c7d92733da0cec7980c09ea25b59296f018a6bdcee8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/report-plan-outcome-request.json": "8a73974c8461f09126ca0a7d1b2063d33b0967db98a4b289d0f720a07e041442", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/report-plan-outcome-response.json": "6b93baaf4a5b45d42eaf7780577dc876790ec6fd62c038da288b78463788d8e9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/sync-plans-request.json": "600e1de4c5715945cb4b6bbe1d9232132d19ccd55228035585d1f19fba18e745", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/governance/sync-plans-response.json": "8f7a4b550a5a6627e5f108a8ae7152516b5eddac47a3acb59700359873e05c5a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/build-creative-async-response-input-required.json": "c4afe829c05bfb43c3f8c1514784b2c03cc247f4901e50e8f0147d99614ba90b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/build-creative-async-response-submitted.json": "dcf27dbe4664f34775a048b9f1f8bcf89e1b8e3bc3f9fa6a32311e1568c48842", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/build-creative-async-response-working.json": "59084c18775f0f74c9c48f058f0dea5540e17c8864328cbccd73b22db6fff7a2", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/build-creative-request.json": "8e51537d7604f9a4692c7964a528e2f6aa1e740feb67f8a02ebc027e0f92eaf8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/build-creative-response.json": "ac7b87d8d65c46a9269b6a221f45d79e5e584bd97f9ea57ff2d903eadaf13b25", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/create-media-buy-async-response-input-required.json": "51ad4d04c8699d4705ca373201be3e9745e6b78a9f8f7e0e16cb2f30501021ae", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/create-media-buy-async-response-submitted.json": "58d616a1b2381e001733061c476911ccfd241019929afbe6b4488d208d93eaf4", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/create-media-buy-async-response-working.json": "dfe79e449b2a9a45c6b76a6641450fce907ed210b21763b06b08f90eddee8eca", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/create-media-buy-request.json": "049242f97ef0326dd45d8d27633f28bb338e15a430c471b3f4211e217e621780", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/create-media-buy-response.json": "67d09564048edd3fa1b587b4aedbce81f128ed135e4e12ec4ba04182c75f38bc", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/get-media-buy-delivery-request.json": "f54840a73a683c1b4926b76ec6b017399b10a8f0c2bd6320555cdeb1ce664682", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/get-media-buy-delivery-response.json": "f55a0c1bda9459c82514fd7eab561249c580bc80f7011aef784c9afa49401267", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/get-media-buys-request.json": "b275bba06a3fcfed6695e99762c38adee37a75658c140abd181d92b20815b990", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/get-media-buys-response.json": "636b127d6c4e373ea78fbd53f220c0816f6c4c3c4881ed3df9b7d8363411de70", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/get-products-async-response-input-required.json": "b3144c9c995d89b603dc0a1a680218b09ca209f3604caf1897d0b69238d3d786", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/get-products-async-response-submitted.json": "a6ecc0664c9721a24b9ae28a0a8cb647993e0a179d13c73eb8b3f2432949908a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/get-products-async-response-working.json": "bda96b291e41fb0648a0a3b4d5eca6cc7bac793db05d63dd05114840fa692a52", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/get-products-request.json": "0bbd8c5a8fa70626a8e1b2562d29098285fc05ea4c1d212be21464d951830815", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/get-products-response.json": "3a676fe99a0a4c091651b5b16e5fde38104d011314825b0ff3ca30f28a2f997e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/list-creative-formats-request.json": "573eeb3453db60f4495ba980820979e5d910c5537f56d4b15b82c3f7fc58cee9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/list-creative-formats-response.json": "164c3128d044a331c155c5dbafd9c119eb94381d414efc1d60f002280dd19db7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/log-event-request.json": "c07a5392135003ccda2304d9a6204b793a77150a7d05a1f5673d5d9e64a0b14d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/log-event-response.json": "aedee653b83b355f44d85fe048e138d9e1db59a9169ed13fe383be21733d246b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/package-request.json": "53962825f4e8ecbdfc829b80446fd0a6fda2f3c8f5a2092ff1ba2909d906eba8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/package-update.json": "b04f2b8fe8196260a6272d9a7e3076943279fbed1691cc2a38db65c59e512fc2", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/provide-performance-feedback-request.json": "13c812783d9901f83240a8d1dc5050dfac097297dc6a0296c2a3c5282fff7ee4", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/provide-performance-feedback-response.json": "a3af63101958fc8a613dbfd951edf2a79497458b2b25ba7d967478559ead7585", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/sync-audiences-request.json": "1ace49c815a8726b14df7c80af8be37ef248392a5c89d870143f80fd2af22c81", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/sync-audiences-response.json": "0f9fd733532f90aa77d98e8c9fa1d207803961b1090aaf1794f2bbb70a804009", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/sync-catalogs-async-response-input-required.json": "45ad63545c39aeeab289baaf199b8abe82ece51e15f8a2364dacbcbb3a0b57ee", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/sync-catalogs-async-response-submitted.json": "1d137d49e31d81578417ff6e6b296b6150edee94be3c65a3114892464e3d88fb", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/sync-catalogs-async-response-working.json": "c79a58d257eba7f16cd7fe0b5f1c930f807bfa4de329814cbebd65fc75ef5904", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/sync-catalogs-request.json": "97ec15d7b17fdded2eed47a1282245c393ae6557ae7c0e420e68bde12f864301", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/sync-catalogs-response.json": "ea1ff2478cf18b661dcaae3101bdfcba07ce14bf21de214e59c6fb2e79eb2490", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/sync-event-sources-request.json": "420d662512580568283fb8f4facd6eddc2d88359054a018828106d7442bf9c7b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/sync-event-sources-response.json": "225e235a9d0b568d8d0aded50c23339a39cfc405106192e60b24118e365ed25f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/update-media-buy-async-response-input-required.json": "0837a9b984f743df8f953adea545c23d17ee3a91b56982b2efa727e223d37d08", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/update-media-buy-async-response-submitted.json": "f8ebcd304481302386c2ef045df19cf38140c665ed239e5fe3643fd92a6a84fa", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/update-media-buy-async-response-working.json": "f4b168032b63ac4364108b9a55fb208a410151831478af6908b8c5ad8e6fd84b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/update-media-buy-request.json": "7b6314d8d51c58d13a3a74c9b24c14242993031638194f98b2e70a86faffbcb9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/media-buy/update-media-buy-response.json": "8c5e028ee6aef660be078f8d0aac07d980c470fd6f16fd61ab4d27455fbc06e6", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/cpa-option.json": "7ef564f00aaed132d366b63e190f38c8113a9e0aad9b14f699b40043b0fc511c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/cpc-option.json": "17052184378475ed4c7ae0596ebeff7f4eb4273bc52c5a86ee55b4298c15c05b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/cpcv-option.json": "70c62a6ce4884a363041873f2ddc2ff9d69188e595241613ca5eb0bb7377288d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/cpm-option.json": "9c8f67f5b9eebc468e1bf19d0dadce040144c2c8fbc852dfc7ee4960e6150d9a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/cpp-option.json": "f8e2a1b595e2c015ed90562e89b397deb1108fcd15274693eeeca932a9b9376e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/cpv-option.json": "0861ee0f8708e00c1e735da674196b4d7ede2d53148817a5aabfad82b1cd000c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/flat-rate-option.json": "e87f1b97fc6bf1cf354e8fe3036acdbc8ce7e8859947dd19b582a47c9a060d8f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/price-breakdown.json": "dc551f6ece12b113a218827a4611c1e378b4a0f4039ac7cd2a88df836d01eb15", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/price-guidance.json": "fa9be1fe78912ada620660114ccb6bd28c934a1a69d1d0468fbf47e6ea53fb14", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/time-option.json": "d78562e7a6bb9c3b4ae3f371006c7aa34f26bf8fe1a3d3bf6769a154e1f939a5", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/pricing-options/vcpm-option.json": "d063433f887ef93d65e0b00d0f38405800d25df3cc004aed610a419651f86f53", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/base-property-source.json": "99aad90385fd492a06a59c3f7cac5c138f206d9ab78f0a9efc3d10313832b74a", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/create-property-list-request.json": "17ea0c2a02269a9bf8bd471e9ee8d9f206288bcd067d21bf1213047287269d62", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/create-property-list-response.json": "17be2f2681904df49370de3563f87e074a028d231f9e9fcfe32412b05f76989c", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/delete-property-list-request.json": "30da92efcaa1c9411149a630e9e11d51d268f41af33b4835378080cf3ad8f2cf", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/delete-property-list-response.json": "9a621c5c7da0eaf6b66cc80d70030df09cc4652392424ad645952006e5be95b8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/feature-requirement.json": "6c4f49667316188dd99ccac8024861eed5596732d8f5c99ea1b10da9ca737f4e", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/get-property-list-request.json": "7e48fb867f9115f28342007ab35e8b111ffe91d9efaebd5f5831d130c929893f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/get-property-list-response.json": "fa147328c0fb59e198a164faeaa1ee0fda44b49f1abbf40e69fbd1ae16db2af2", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/list-property-lists-request.json": "e06b82c503dd9b57bf13a34402190aff0083869135668d0340492736b0a25ac5", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/list-property-lists-response.json": "a9b7f08b124a38ad472597636906c755e0811fcfbfebad9686ddc4ce343af20d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/property-error.json": "3230b0b29e4697f526d94518cf6d2915de41483fde9da28454012502a9e657b7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/property-feature-definition.json": "82c739c52cba58f213c2324e862dae03a9bfbb9d91db5bbc9120930fb51d0847", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/property-feature.json": "1f84891bbb2396750ced46a1003c9a905d449b98ec97c9e78538cf64987ceb43", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/property-list-changed-webhook.json": "352aa3578ca4c1b9b4d7000a50299facda0962f6b3e128d32728fb90604d7faa", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/property-list-filters.json": "184e25ef3ac8b1ba4cc821c092d14eedf53705ce831d333e4248def32c92af11", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/property-list.json": "762ba1152e2297955703ff227f79d06eb2165c5baa8d750615767a9fad6121fd", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/update-property-list-request.json": "1d9c177039a4fb2941a497786b4f091baede4bcd71703155c7f3a90d12752b9d", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/property/update-property-list-response.json": "a61161bfb9d390445abd40b5b54725eff102143ae6ada6f6ac47ae41585dc521", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/protocol/get-adcp-capabilities-request.json": "94610639e141f7ac641c30c146bc5c7ca5466fa450090bce512cbcb8b79604d6", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/protocol/get-adcp-capabilities-response.json": "e196bfc7639f4c264e583a51e13b3b019ee90a40b99e8179676ff7369f46bb6b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/signals/activate-signal-request.json": "d4e16f6d1428698b5293a78f073b48885512ff8bb981c57facdaa109690916f3", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/signals/activate-signal-response.json": "35ff2816c8d0f0e7fc5fe75259e4c532b70c39f191de2d554508d6fd57452561", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/signals/get-signals-request.json": "bc9604bccac6ebec61abba05880a8ea42186ab9ee9e15f8fc8aef210e63cf043", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/signals/get-signals-response.json": "b7584fea368408465e08939e2b042a1d793b209e28c0202e8562dfd5191c1b0b", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-capabilities.json": "05656522cc3a54b30843577cea3003ca9cfcacd51adf34531766a090ae859159", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-get-offering-request.json": "3d3e75972390f72f750f88ef7c606552e7984609402453035b5ade47bc4a0ca3", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-get-offering-response.json": "f21cad7a07186263cb6cec1edb067895ad7023b460e5409e375af7a6f3fe08c9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-identity.json": "935f99414805f861a35798f00efba45a7a6fb1a37a27414188c09ff29fb207b7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-initiate-session-request.json": "4545e772d1d2bf3d4c772e84f05bd80e694b9ed6fb6cf751d231e86bb8e27419", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-initiate-session-response.json": "b26d4d0cd5cc22b159167ea2cf94a9207ceab68b9ebce567178aed90767cb6bf", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-send-message-request.json": "79ec92d648a717ecebf9a73d33e14c4cedb0afb71ae200f6564a4663bf0a9150", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-send-message-response.json": "8488bf1bd46c458eefca9da5c8fa1770c68854b0d844b36eb975ac720e5cecf7", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-terminate-session-request.json": "1082531d80e391afbdb4032960104122629b3bbabe9f97362a455183bf8378dc", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-terminate-session-response.json": "577bc52706084077807e310075dfea3b5ab8adb8deafbebee4b5e3540336d488", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/sponsored-intelligence/si-ui-element.json": "6751458039a4d92461ebb802508d7a84c1e3a77663bcbe0e889faa31d65e2fc8", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/tmp/available-package.json": "77bc5525df39439512203da0e19ee543341dd8a2fcbdc4e06eb98792140e1fd9", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/tmp/context-match-request.json": "3428a6d6ec496cf4046f333daf962187c447b334072b79fd771a3de517ebb5af", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/tmp/context-match-response.json": "cfaae7e62acf0a6771665e92508cc1fb9021e1181d16f473c06db4d1ffcf867f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/tmp/error.json": "679bd6170f911d5ea3e49e445d7bc449832353f97b339d43851c2058b0823a1f", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/tmp/identity-match-request.json": "9bf6d05c935ad1f611ad18524a19604e1aa06c90a6881ccfecedeed39bdd5411", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/tmp/identity-match-response.json": "04aabe11b9cc2d163096ac417db37ab32204f71c4c83a87cc1024e6d3de9d1ef", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/tmp/offer-price.json": "b25c3e29f2ef9c7e7ef4b7713b03c9ab8b88dac5db8e8d764a2e67e04e6ebba1", - "https://adcontextprotocol.org/schemas/3.0.0-rc.3/tmp/offer.json": "f54fd8378bfe7d66131fd942611c9a47f9b0451bae1dc48a2cc0f09cdab50141" + "https://adcontextprotocol.org/schemas/latest/index.json": "2dfc2ef682b77180b0c9edb67f406bede432fd20f1980019af06a97159859ff1" } \ No newline at end of file diff --git a/schemas/cache/a2ui/component.json b/schemas/cache/a2ui/component.json index e6ceec51d..6ddc3b14f 100644 --- a/schemas/cache/a2ui/component.json +++ b/schemas/cache/a2ui/component.json @@ -1,32 +1,31 @@ { - "$id": "/schemas/3.0.0-rc.3/a2ui/component.json", "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": true, + "title": "A2UI Component", "description": "A component in an A2UI surface", + "type": "object", "properties": { - "component": { - "additionalProperties": { - "description": "Component properties", - "type": "object" - }, - "description": "Component definition (keyed by component type)", - "maxProperties": 1, - "minProperties": 1, - "type": "object" - }, "id": { - "description": "Unique identifier for this component within the surface", - "type": "string" + "type": "string", + "description": "Unique identifier for this component within the surface" }, "parentId": { - "description": "ID of the parent component (null for root)", - "type": "string" + "type": "string", + "description": "ID of the parent component (null for root)" + }, + "component": { + "type": "object", + "description": "Component definition (keyed by component type)", + "minProperties": 1, + "maxProperties": 1, + "additionalProperties": { + "type": "object", + "description": "Component properties" + } } }, "required": [ "id", "component" ], - "title": "A2UI Component", - "type": "object" + "additionalProperties": true } \ No newline at end of file diff --git a/schemas/cache/a2ui/surface.json b/schemas/cache/a2ui/surface.json index 1ce464dec..baf1865d4 100644 --- a/schemas/cache/a2ui/surface.json +++ b/schemas/cache/a2ui/surface.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/a2ui/surface.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "A contiguous UI region containing components", @@ -12,7 +11,7 @@ "components": { "description": "Flat list of components (adjacency list structure)", "items": { - "$ref": "/schemas/3.0.0-rc.3/a2ui/component.json" + "$ref": "component.json" }, "type": "array" }, diff --git a/schemas/cache/account/get-account-financials-request.json b/schemas/cache/account/get-account-financials-request.json index db43637be..dc7985b2d 100644 --- a/schemas/cache/account/get-account-financials-request.json +++ b/schemas/cache/account/get-account-financials-request.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/account/get-account-financials-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Request financial status for an operator-billed account. Returns spend summary, credit/balance status, and invoice history. Only applicable when the seller declares account_financials capability.", @@ -42,17 +41,17 @@ ], "properties": { "account": { - "$ref": "/schemas/3.0.0-rc.3/core/account-ref.json", + "$ref": "../core/account-ref.json", "description": "Account to query financials for. Must be an operator-billed account." }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "period": { - "$ref": "/schemas/3.0.0-rc.3/core/date-range.json", + "$ref": "../core/date-range.json", "description": "Date range for the spend summary. Defaults to the current billing cycle if omitted." } }, diff --git a/schemas/cache/account/get-account-financials-response.json b/schemas/cache/account/get-account-financials-response.json index a0afe252b..ecaa75023 100644 --- a/schemas/cache/account/get-account-financials-response.json +++ b/schemas/cache/account/get-account-financials-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/account/get-account-financials-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Financial status for an operator-billed account. Returns spend summary, credit/balance status, payment status, and invoice history. The level of detail varies by seller \u2014 only account, currency, and period are guaranteed on success.", "examples": [ @@ -94,7 +93,7 @@ }, "properties": { "account": { - "$ref": "/schemas/3.0.0-rc.3/core/account-ref.json", + "$ref": "../core/account-ref.json", "description": "Account reference, echoed from the request" }, "balance": { @@ -132,7 +131,7 @@ "type": "object" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "credit": { "description": "Credit status. Present for credit-based accounts (payment_terms like net_30).", @@ -165,7 +164,7 @@ "type": "string" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "invoices": { "description": "Recent invoices. Sellers may limit the number returned.", @@ -191,7 +190,7 @@ "type": "string" }, "period": { - "$ref": "/schemas/3.0.0-rc.3/core/date-range.json", + "$ref": "../core/date-range.json", "description": "Billing period covered by this invoice" }, "status": { @@ -237,7 +236,7 @@ "type": "string" }, "period": { - "$ref": "/schemas/3.0.0-rc.3/core/date-range.json", + "$ref": "../core/date-range.json", "description": "The actual period covered by spend data. May differ from the requested period if the seller adjusts to billing cycle boundaries." }, "spend": { @@ -302,18 +301,18 @@ }, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "description": "Operation-level errors", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "minItems": 1, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/account/list-accounts-request.json b/schemas/cache/account/list-accounts-request.json index 1f1079e94..8cf254921 100644 --- a/schemas/cache/account/list-accounts-request.json +++ b/schemas/cache/account/list-accounts-request.json @@ -1,17 +1,16 @@ { - "$id": "/schemas/3.0.0-rc.3/account/list-accounts-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Request parameters for listing accounts accessible to the authenticated agent", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "pagination": { - "$ref": "/schemas/3.0.0-rc.3/core/pagination-request.json" + "$ref": "../core/pagination-request.json" }, "sandbox": { "description": "Filter by sandbox status. true returns only sandbox accounts, false returns only production accounts. Omit to return all accounts. Primarily used with explicit accounts (require_operator_auth: true) where sandbox accounts are pre-existing test accounts on the platform.", diff --git a/schemas/cache/account/list-accounts-response.json b/schemas/cache/account/list-accounts-response.json index cd8934346..2afe44ecf 100644 --- a/schemas/cache/account/list-accounts-response.json +++ b/schemas/cache/account/list-accounts-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/account/list-accounts-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Response payload for list_accounts task", @@ -79,25 +78,25 @@ "accounts": { "description": "Array of accounts accessible to the authenticated agent", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/account.json" + "$ref": "../core/account.json" }, "type": "array" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "description": "Task-specific errors and warnings", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "pagination": { - "$ref": "/schemas/3.0.0-rc.3/core/pagination-response.json" + "$ref": "../core/pagination-response.json" } }, "required": [ diff --git a/schemas/cache/account/report-usage-request.json b/schemas/cache/account/report-usage-request.json index cad1fcf78..7146f5e09 100644 --- a/schemas/cache/account/report-usage-request.json +++ b/schemas/cache/account/report-usage-request.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/account/report-usage-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Reports how a vendor's service was consumed after campaign delivery. Used by orchestrators (DSPs, storefronts) to inform vendor agents (signals, governance, creative) what was used so the vendor can track earned revenue and verify billing. Records can span multiple accounts and campaigns in a single request.", @@ -61,17 +60,17 @@ ], "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "idempotency_key": { "description": "Client-generated unique key for this request. If a request with the same key has already been accepted, the server returns the original response without re-processing. MUST be unique per (seller, request) pair to prevent cross-seller correlation. Use a fresh UUID v4 for each request. Prevents duplicate billing on retries.", "type": "string" }, "reporting_period": { - "$ref": "/schemas/3.0.0-rc.3/core/datetime-range.json", + "$ref": "../core/datetime-range.json", "description": "The time range covered by this usage report. Applies to all records in the request." }, "usage": { @@ -80,7 +79,7 @@ "additionalProperties": true, "properties": { "account": { - "$ref": "/schemas/3.0.0-rc.3/core/account-ref.json", + "$ref": "../core/account-ref.json", "description": "Account for this usage record." }, "currency": { diff --git a/schemas/cache/account/report-usage-response.json b/schemas/cache/account/report-usage-response.json index 8c89d01d5..8a0fc81c0 100644 --- a/schemas/cache/account/report-usage-response.json +++ b/schemas/cache/account/report-usage-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/account/report-usage-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Response from report_usage. Partial acceptance is valid \u2014 records that pass validation are stored even when others fail.", @@ -31,17 +30,17 @@ "type": "integer" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "description": "Validation errors for individual records. The field property identifies which record failed (e.g., 'usage[1].pricing_option_id').", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "sandbox": { "description": "When true, the account is a sandbox account and no billing occurred.", diff --git a/schemas/cache/account/sync-accounts-request.json b/schemas/cache/account/sync-accounts-request.json index 847c3aad9..50145dfbf 100644 --- a/schemas/cache/account/sync-accounts-request.json +++ b/schemas/cache/account/sync-accounts-request.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/account/sync-accounts-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Sync advertiser accounts with a seller using upsert semantics. The agent declares which brands it represents, who operates on each brand's behalf, and the billing model. The seller provisions or links accounts accordingly, returning per-account status.", @@ -123,11 +122,11 @@ "type": "string" }, "billing_entity": { - "$ref": "/schemas/3.0.0-rc.3/core/business-entity.json", + "$ref": "../core/business-entity.json", "description": "Business entity details for the party responsible for payment. The agent provides this so the seller has the legal name, tax IDs, address, and bank details needed for formal B2B invoicing." }, "brand": { - "$ref": "/schemas/3.0.0-rc.3/core/brand-ref.json", + "$ref": "../core/brand-ref.json", "description": "Brand reference identifying the advertiser. Uses the brand's house domain and optional brand_id from brand.json." }, "operator": { @@ -163,7 +162,7 @@ "type": "array" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "delete_missing": { "default": false, @@ -176,10 +175,10 @@ "type": "boolean" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "push_notification_config": { - "$ref": "/schemas/3.0.0-rc.3/core/push-notification-config.json", + "$ref": "../core/push-notification-config.json", "description": "Webhook for async notifications when account status changes (e.g., pending_approval transitions to active)." } }, diff --git a/schemas/cache/account/sync-accounts-response.json b/schemas/cache/account/sync-accounts-response.json index afe84369e..82da86743 100644 --- a/schemas/cache/account/sync-accounts-response.json +++ b/schemas/cache/account/sync-accounts-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/account/sync-accounts-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Response from account sync operation. Returns per-account results with status and billing, or operation-level errors on complete failure.", "examples": [ @@ -190,11 +189,11 @@ "type": "string" }, "billing_entity": { - "$ref": "/schemas/3.0.0-rc.3/core/business-entity.json", + "$ref": "../core/business-entity.json", "description": "Business entity details for the party responsible for payment, echoed from the request. Sellers MAY add fields the agent omitted (e.g., filling in registration_number from a credit check), but MUST NOT return data from a different entity. Bank details are omitted (write-only)." }, "brand": { - "$ref": "/schemas/3.0.0-rc.3/core/brand-ref.json", + "$ref": "../core/brand-ref.json", "description": "Brand reference, echoed from the request" }, "credit_limit": { @@ -217,7 +216,7 @@ "errors": { "description": "Per-account errors (only present when action is 'failed')", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "type": "array" }, @@ -304,14 +303,14 @@ "type": "array" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "dry_run": { "description": "Whether this was a dry run (no actual changes made)", "type": "boolean" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ @@ -339,18 +338,18 @@ }, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "description": "Operation-level errors (e.g., authentication failure, service unavailable)", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "minItems": 1, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/adagents.json b/schemas/cache/adagents.json index 61205dee0..ecbd6def0 100644 --- a/schemas/cache/adagents.json +++ b/schemas/cache/adagents.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/adagents.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Declaration of authorized agents for advertising inventory and data signals. Hosted at /.well-known/adagents.json on publisher domains (for properties) or data provider domains (for signals). Can either contain the full structure inline or reference an authoritative URL.", "examples": [ @@ -495,7 +494,7 @@ "collections": { "description": "Optional collection constraints. When present, authorization only applies to inventory associated with these collections.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/collection-selector.json" + "$ref": "core/collection-selector.json" }, "minItems": 1, "type": "array" @@ -553,7 +552,7 @@ "property_ids": { "description": "Property IDs this agent is authorized for. Resolved against the top-level properties array in this file", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/property-id.json" + "$ref": "core/property-id.json" }, "minItems": 1, "type": "array" @@ -561,7 +560,7 @@ "signing_keys": { "description": "Optional publisher-attested public signing keys for this agent. Use these as the trust anchor for verifying signed agent responses instead of relying on key discovery from the agent domain alone.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/agent-signing-key.json" + "$ref": "core/agent-signing-key.json" }, "minItems": 1, "type": "array" @@ -597,7 +596,7 @@ "collections": { "description": "Optional collection constraints. When present, authorization only applies to inventory associated with these collections.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/collection-selector.json" + "$ref": "core/collection-selector.json" }, "minItems": 1, "type": "array" @@ -655,7 +654,7 @@ "property_tags": { "description": "Tags identifying which properties this agent is authorized for. Resolved against the top-level properties array in this file using tag matching", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/property-tag.json" + "$ref": "core/property-tag.json" }, "minItems": 1, "type": "array" @@ -663,7 +662,7 @@ "signing_keys": { "description": "Optional publisher-attested public signing keys for this agent. Use these as the trust anchor for verifying signed agent responses instead of relying on key discovery from the agent domain alone.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/agent-signing-key.json" + "$ref": "core/agent-signing-key.json" }, "minItems": 1, "type": "array" @@ -699,7 +698,7 @@ "collections": { "description": "Optional collection constraints. When present, authorization only applies to inventory associated with these collections.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/collection-selector.json" + "$ref": "core/collection-selector.json" }, "minItems": 1, "type": "array" @@ -757,7 +756,7 @@ "properties": { "description": "Specific properties this agent is authorized for (alternative to property_ids/property_tags)", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/property.json" + "$ref": "core/property.json" }, "minItems": 1, "type": "array" @@ -765,7 +764,7 @@ "signing_keys": { "description": "Optional publisher-attested public signing keys for this agent. Use these as the trust anchor for verifying signed agent responses instead of relying on key discovery from the agent domain alone.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/agent-signing-key.json" + "$ref": "core/agent-signing-key.json" }, "minItems": 1, "type": "array" @@ -801,7 +800,7 @@ "collections": { "description": "Optional collection constraints. When present, authorization only applies to inventory associated with these collections.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/collection-selector.json" + "$ref": "core/collection-selector.json" }, "minItems": 1, "type": "array" @@ -859,7 +858,7 @@ "publisher_properties": { "description": "Properties from other publisher domains this agent is authorized for. Each entry specifies a publisher domain and which of their properties this agent can sell", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/publisher-property-selector.json" + "$ref": "core/publisher-property-selector.json" }, "minItems": 1, "type": "array" @@ -867,7 +866,7 @@ "signing_keys": { "description": "Optional publisher-attested public signing keys for this agent. Use these as the trust anchor for verifying signed agent responses instead of relying on key discovery from the agent domain alone.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/agent-signing-key.json" + "$ref": "core/agent-signing-key.json" }, "minItems": 1, "type": "array" @@ -913,7 +912,7 @@ "signing_keys": { "description": "Optional publisher-attested public signing keys for this agent. Use these as the trust anchor for verifying signed agent responses instead of relying on key discovery from the agent domain alone.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/agent-signing-key.json" + "$ref": "core/agent-signing-key.json" }, "minItems": 1, "type": "array" @@ -959,7 +958,7 @@ "signing_keys": { "description": "Optional publisher-attested public signing keys for this agent. Use these as the trust anchor for verifying signed agent responses instead of relying on key discovery from the agent domain alone.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/agent-signing-key.json" + "$ref": "core/agent-signing-key.json" }, "minItems": 1, "type": "array" @@ -986,7 +985,7 @@ "collections": { "description": "Collections produced or distributed by this publisher. Declares the content programs whose inventory is sold through authorized agents. Products in get_products responses reference these collections by collection_id.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/collection.json" + "$ref": "core/collection.json" }, "type": "array" }, @@ -1065,7 +1064,7 @@ "placements": { "description": "Canonical placement definitions for properties in this file. Products SHOULD reuse these placement_id values when exposing inventory in get_products, and authorized agents can scope authorization to these placement IDs.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/placement-definition.json" + "$ref": "core/placement-definition.json" }, "minItems": 1, "type": "array" @@ -1073,7 +1072,7 @@ "properties": { "description": "Array of all properties covered by this adagents.json file. Defines the canonical property list that authorized agents reference.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/property.json" + "$ref": "core/property.json" }, "minItems": 1, "type": "array" @@ -1139,7 +1138,7 @@ "signals": { "description": "Signal catalog published by this data provider. Signals agents reference these signals via data_provider_domain + signal_id.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/signal-definition.json" + "$ref": "core/signal-definition.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/brand.json b/schemas/cache/brand.json index 64f820580..33214daac 100644 --- a/schemas/cache/brand.json +++ b/schemas/cache/brand.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/brand.json", "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "asset": { @@ -11,7 +10,7 @@ "type": "string" }, "asset_type": { - "$ref": "/schemas/3.0.0-rc.3/enums/asset-content-type.json", + "$ref": "enums/asset-content-type.json", "description": "Type of asset content" }, "description": { @@ -219,7 +218,7 @@ "type": "string" }, "role": { - "$ref": "/schemas/3.0.0-rc.3/enums/talent-role.json", + "$ref": "enums/talent-role.json", "description": "This person's role on the collection" }, "seller_agent_url": { @@ -289,7 +288,7 @@ "industries": { "description": "Brand industries (e.g., ['automotive'] or ['healthcare.pharmaceutical', 'cpg'] for a consumer health company). Describes what the company does \u2014 not what regulatory regimes apply (use policy_categories for that). When create_media_buy omits advertiser_industry, sellers may infer from this field.", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/advertiser-industry.json" + "$ref": "enums/advertiser-industry.json" }, "minItems": 1, "type": "array" @@ -1336,7 +1335,7 @@ "available_uses": { "description": "Rights uses available for licensing through this agent", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/right-use.json" + "$ref": "enums/right-use.json" }, "minItems": 1, "type": "array" @@ -1357,7 +1356,7 @@ "right_types": { "description": "Types of rights available", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/right-type.json" + "$ref": "enums/right-type.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/brand/acquire-rights-request.json b/schemas/cache/brand/acquire-rights-request.json index 7b6843a77..c58ee48f7 100644 --- a/schemas/cache/brand/acquire-rights-request.json +++ b/schemas/cache/brand/acquire-rights-request.json @@ -1,11 +1,10 @@ { - "$id": "/schemas/3.0.0-rc.3/brand/acquire-rights-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Binding contractual request to acquire rights from a brand agent. Parallels create_media_buy \u2014 the buyer selects a pricing_option_id from a get_rights response and provides campaign details. The agent clears against existing contracts and returns terms, generation credentials, and disclosure requirements.", "properties": { "buyer": { - "$ref": "/schemas/3.0.0-rc.3/core/brand-ref.json", + "$ref": "../core/brand-ref.json", "description": "The buyer's brand identity" }, "campaign": { @@ -37,7 +36,7 @@ "format_ids": { "description": "Creative formats that will be produced", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/format-id.json" + "$ref": "../core/format-id.json" }, "type": "array" }, @@ -49,7 +48,7 @@ "uses": { "description": "Specific rights uses for this campaign", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/right-use.json" + "$ref": "../enums/right-use.json" }, "minItems": 1, "type": "array" @@ -62,10 +61,10 @@ "type": "object" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "idempotency_key": { "description": "Client-generated key for safe retries. Resubmitting with the same key returns the original response rather than creating a duplicate acquisition. MUST be unique per (seller, request) pair to prevent cross-seller correlation. Use a fresh UUID v4 for each request.", @@ -78,11 +77,11 @@ "type": "string" }, "push_notification_config": { - "$ref": "/schemas/3.0.0-rc.3/core/push-notification-config.json", + "$ref": "../core/push-notification-config.json", "description": "Webhook for async status updates if the acquisition requires approval. The rights agent sends a webhook notification when the status transitions to acquired or rejected." }, "revocation_webhook": { - "$ref": "/schemas/3.0.0-rc.3/core/push-notification-config.json", + "$ref": "../core/push-notification-config.json", "description": "Webhook for rights revocation notifications. If the rights holder needs to revoke rights (talent scandal, contract violation, etc.), they POST a revocation-notification to this URL. The buyer is responsible for stopping creative delivery upon receipt." }, "rights_id": { diff --git a/schemas/cache/brand/acquire-rights-response.json b/schemas/cache/brand/acquire-rights-response.json index 020cb79ef..fe5bd1cc7 100644 --- a/schemas/cache/brand/acquire-rights-response.json +++ b/schemas/cache/brand/acquire-rights-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/brand/acquire-rights-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Result of a rights acquisition request. Returns one of three statuses: acquired (with terms and generation credentials), pending_approval (requires rights holder review), or rejected (with reason). Uses discriminated union on status field.", "oneOf": [ @@ -12,7 +11,7 @@ }, "properties": { "approval_webhook": { - "$ref": "/schemas/3.0.0-rc.3/core/push-notification-config.json", + "$ref": "../core/push-notification-config.json", "description": "Authenticated webhook for submitting creatives for approval. POST a creative-approval-request to the URL using the provided authentication. The response is a creative-approval-response." }, "brand_id": { @@ -20,7 +19,7 @@ "type": "string" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "disclosure": { "additionalProperties": true, @@ -41,12 +40,12 @@ "type": "object" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "generation_credentials": { "description": "Scoped credentials for generating rights-cleared content", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/generation-credential.json" + "$ref": "../core/generation-credential.json" }, "type": "array" }, @@ -58,7 +57,7 @@ "type": "array" }, "rights_constraint": { - "$ref": "/schemas/3.0.0-rc.3/core/rights-constraint.json", + "$ref": "../core/rights-constraint.json", "description": "Pre-built rights constraint for embedding in creative manifests. Populated from the agreed terms \u2014 the buyer does not need to construct it manually." }, "rights_id": { @@ -71,7 +70,7 @@ "type": "string" }, "terms": { - "$ref": "/schemas/3.0.0-rc.3/brand/rights-terms.json", + "$ref": "rights-terms.json", "description": "Agreed contractual terms" }, "usage_reporting_url": { @@ -102,7 +101,7 @@ "type": "string" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "detail": { "description": "Explanation of what requires approval", @@ -113,7 +112,7 @@ "type": "string" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "rights_id": { "type": "string" @@ -143,10 +142,10 @@ "type": "string" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "reason": { "description": "Why the rights request was rejected. May be sanitized to protect confidential brand rules \u2014 e.g., 'This violates our public figures brand guidelines' rather than naming the specific rule.", @@ -189,17 +188,17 @@ }, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "minItems": 1, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/brand/get-brand-identity-request.json b/schemas/cache/brand/get-brand-identity-request.json index c0c4d7cd9..6ada8f377 100644 --- a/schemas/cache/brand/get-brand-identity-request.json +++ b/schemas/cache/brand/get-brand-identity-request.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/brand/get-brand-identity-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Request brand identity data from a brand agent. Core identity (house, names, description, logos) is always public. Linked accounts get deeper data: high-res assets, voice configs, tone guidelines, and rights availability.", @@ -9,10 +8,10 @@ "type": "string" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "fields": { "description": "Optional identity sections to include in the response. When omitted, all sections the caller is authorized to see are returned. Core fields (brand_id, house, names) are always returned and do not need to be requested.", diff --git a/schemas/cache/brand/get-brand-identity-response.json b/schemas/cache/brand/get-brand-identity-response.json index bf151b11e..0ab4a0a1b 100644 --- a/schemas/cache/brand/get-brand-identity-response.json +++ b/schemas/cache/brand/get-brand-identity-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/brand/get-brand-identity-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Brand identity data from a brand agent. Core identity (house, names, description, logos) is always public. Authorized callers receive richer data (high-res assets, voice synthesis, tone guidelines, rights availability). Includes available_fields to signal what the caller could unlock by linking their account.", "oneOf": [ @@ -21,7 +20,7 @@ "type": "string" }, "asset_type": { - "$ref": "/schemas/3.0.0-rc.3/enums/asset-content-type.json", + "$ref": "../enums/asset-content-type.json", "description": "Type of asset content" }, "description": { @@ -187,14 +186,14 @@ "type": "object" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "description": { "description": "Brand description", "type": "string" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "fonts": { "additionalProperties": true, @@ -340,7 +339,7 @@ "properties": { "available_uses": { "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/right-use.json" + "$ref": "../enums/right-use.json" }, "type": "array" }, @@ -480,17 +479,17 @@ }, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "minItems": 1, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/brand/get-rights-request.json b/schemas/cache/brand/get-rights-request.json index 7ffcdfa2f..967dc7432 100644 --- a/schemas/cache/brand/get-rights-request.json +++ b/schemas/cache/brand/get-rights-request.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/brand/get-rights-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Search for licensable rights across a brand agent's roster. Returns matches with pricing. Discovery is natural-language-first \u2014 no taxonomy for categories. The agent interprets intent from the query and filters based on the buyer's brand compatibility.", @@ -9,11 +8,11 @@ "type": "string" }, "buyer_brand": { - "$ref": "/schemas/3.0.0-rc.3/core/brand-ref.json", + "$ref": "../core/brand-ref.json", "description": "The buyer's brand. The agent fetches the buyer's brand.json for compatibility filtering (e.g., dietary conflicts, competitor exclusions)." }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "countries": { "description": "Countries where rights are needed (ISO 3166-1 alpha-2). Filters to rights available in these markets.", @@ -24,7 +23,7 @@ "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "include_excluded": { "default": false, @@ -32,7 +31,7 @@ "type": "boolean" }, "pagination": { - "$ref": "/schemas/3.0.0-rc.3/core/pagination-request.json", + "$ref": "../core/pagination-request.json", "description": "Pagination parameters for large result sets" }, "query": { @@ -41,13 +40,13 @@ "type": "string" }, "right_type": { - "$ref": "/schemas/3.0.0-rc.3/enums/right-type.json", + "$ref": "../enums/right-type.json", "description": "Filter by type of rights (talent, music, stock_media, etc.)" }, "uses": { "description": "Rights uses being requested. The agent returns options covering these uses, potentially bundled into composite pricing.", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/right-use.json" + "$ref": "../enums/right-use.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/brand/get-rights-response.json b/schemas/cache/brand/get-rights-response.json index 58477f420..fcc3d13d0 100644 --- a/schemas/cache/brand/get-rights-response.json +++ b/schemas/cache/brand/get-rights-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/brand/get-rights-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Licensable rights matching the search criteria, with pricing options. Each result is a complete snapshot of current availability (stateless, DDEX PIE pattern). Excluded results explain why they were filtered out.", "oneOf": [ @@ -12,7 +11,7 @@ }, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "excluded": { "description": "Results that matched but were filtered out, with reasons", @@ -46,7 +45,7 @@ "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "rights": { "description": "Matching rights with pricing options, ranked by relevance", @@ -56,7 +55,7 @@ "available_uses": { "description": "Rights uses available for licensing", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/right-use.json" + "$ref": "../enums/right-use.json" }, "type": "array" }, @@ -149,13 +148,13 @@ "pricing_options": { "description": "Available pricing options for these rights", "items": { - "$ref": "/schemas/3.0.0-rc.3/brand/rights-pricing-option.json" + "$ref": "rights-pricing-option.json" }, "minItems": 1, "type": "array" }, "right_type": { - "$ref": "/schemas/3.0.0-rc.3/enums/right-type.json" + "$ref": "../enums/right-type.json" }, "rights_id": { "description": "Identifier for this rights offering. Referenced in acquire_rights.", @@ -192,17 +191,17 @@ }, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "minItems": 1, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/brand/rights-pricing-option.json b/schemas/cache/brand/rights-pricing-option.json index f4806810f..a46f964b5 100644 --- a/schemas/cache/brand/rights-pricing-option.json +++ b/schemas/cache/brand/rights-pricing-option.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/brand/rights-pricing-option.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "A pricing option for licensable rights. Separate from media-buy pricing options \u2014 rights pricing includes period, impression caps, overage rates, and use-type scoping.", @@ -14,7 +13,7 @@ "type": "string" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "impression_cap": { "description": "Maximum impressions included in this pricing option per period", @@ -22,7 +21,7 @@ "type": "integer" }, "model": { - "$ref": "/schemas/3.0.0-rc.3/enums/pricing-model.json", + "$ref": "../enums/pricing-model.json", "description": "Pricing model (cpm, flat_rate, etc.)" }, "overage_cpm": { @@ -54,7 +53,7 @@ "uses": { "description": "Which rights uses this pricing option covers. A single option can bundle multiple uses (e.g., likeness + voice).", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/right-use.json" + "$ref": "../enums/right-use.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/brand/rights-terms.json b/schemas/cache/brand/rights-terms.json index 74ebfd6d2..ba0f6b84c 100644 --- a/schemas/cache/brand/rights-terms.json +++ b/schemas/cache/brand/rights-terms.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/brand/rights-terms.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Contractual terms for a rights grant. Shared between acquire_rights and update_rights responses.", @@ -61,7 +60,7 @@ }, "uses": { "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/right-use.json" + "$ref": "../enums/right-use.json" }, "type": "array" } diff --git a/schemas/cache/collection/base-collection-source.json b/schemas/cache/collection/base-collection-source.json new file mode 100644 index 000000000..02a140a63 --- /dev/null +++ b/schemas/cache/collection/base-collection-source.json @@ -0,0 +1,117 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Base Collection Source", + "description": "A source of collections for a collection list. Supports three selection patterns: distribution identifiers (cross-publisher), publisher-specific collection IDs, or publisher-specific genres.", + "discriminator": { + "propertyName": "selection_type" + }, + "oneOf": [ + { + "type": "object", + "title": "Distribution IDs Source", + "description": "Select collections by platform-independent distribution identifiers. The primary mechanism for cross-publisher collection matching.", + "properties": { + "selection_type": { + "type": "string", + "const": "distribution_ids", + "description": "Discriminator indicating selection by platform-independent distribution identifiers" + }, + "identifiers": { + "type": "array", + "description": "Platform-independent identifiers (imdb_id, gracenote_id, eidr_id, etc.). Each identifier uniquely identifies a collection across all publishers.", + "items": { + "type": "object", + "properties": { + "type": { + "$ref": "../enums/distribution-identifier-type.json", + "description": "Type of distribution identifier" + }, + "value": { + "type": "string", + "description": "The identifier value" + } + }, + "required": [ + "type", + "value" + ], + "additionalProperties": false + }, + "minItems": 1 + } + }, + "required": [ + "selection_type", + "identifiers" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Publisher Collections Source", + "description": "Select specific collections within a publisher's adagents.json by collection ID", + "properties": { + "selection_type": { + "type": "string", + "const": "publisher_collections", + "description": "Discriminator indicating selection by specific collection IDs within a publisher" + }, + "publisher_domain": { + "type": "string", + "description": "Domain where publisher's adagents.json is hosted", + "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$" + }, + "collection_ids": { + "type": "array", + "description": "Specific collection IDs from the publisher's adagents.json", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "required": [ + "selection_type", + "publisher_domain", + "collection_ids" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Publisher Genres Source", + "description": "Select all collections from a publisher matching genre criteria. Use when excluding entire content categories from a specific publisher.", + "properties": { + "selection_type": { + "type": "string", + "const": "publisher_genres", + "description": "Discriminator indicating selection by genre within a publisher" + }, + "publisher_domain": { + "type": "string", + "description": "Domain where publisher's adagents.json is hosted", + "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$" + }, + "genres": { + "type": "array", + "description": "Genre values to match against the publisher's collections", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "genre_taxonomy": { + "$ref": "../enums/genre-taxonomy.json", + "description": "Taxonomy for the genre values. Required so sellers can interpret genre strings unambiguously. Use 'custom' for free-form values negotiated out of band." + } + }, + "required": [ + "selection_type", + "publisher_domain", + "genres", + "genre_taxonomy" + ], + "additionalProperties": false + } + ] +} \ No newline at end of file diff --git a/schemas/cache/collection/collection-list-changed-webhook.json b/schemas/cache/collection/collection-list-changed-webhook.json new file mode 100644 index 000000000..765123546 --- /dev/null +++ b/schemas/cache/collection/collection-list-changed-webhook.json @@ -0,0 +1,64 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Collection List Changed Webhook", + "description": "Webhook notification sent when a collection list's resolved collections change. Contains a summary only \u2014 recipients must call get_collection_list to retrieve the updated collections.", + "type": "object", + "properties": { + "event": { + "type": "string", + "const": "collection_list_changed", + "description": "The event type" + }, + "list_id": { + "type": "string", + "description": "ID of the collection list that changed" + }, + "list_name": { + "type": "string", + "description": "Name of the collection list" + }, + "change_summary": { + "type": "object", + "description": "Summary of changes to the resolved list", + "properties": { + "collections_added": { + "type": "integer", + "description": "Number of collections added since last resolution" + }, + "collections_removed": { + "type": "integer", + "description": "Number of collections removed since last resolution" + }, + "total_collections": { + "type": "integer", + "description": "Total collections in the resolved list" + } + }, + "additionalProperties": false + }, + "resolved_at": { + "type": "string", + "format": "date-time", + "description": "When the list was re-resolved" + }, + "cache_valid_until": { + "type": "string", + "format": "date-time", + "description": "When the consumer should refresh from the governance agent" + }, + "signature": { + "type": "string", + "description": "Cryptographic signature of the webhook payload, signed with the agent's private key. Recipients MUST verify this signature." + }, + "ext": { + "$ref": "../core/ext.json" + } + }, + "required": [ + "event", + "list_id", + "resolved_at", + "signature" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/collection-list-filters.json b/schemas/cache/collection/collection-list-filters.json new file mode 100644 index 000000000..c6ebf9966 --- /dev/null +++ b/schemas/cache/collection/collection-list-filters.json @@ -0,0 +1,90 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Collection List Filters", + "description": "Filters that dynamically modify a collection list when resolved. Include filters are allowlists (only matching collections pass). Exclude filters are blocklists (matching collections are removed). When both are present for the same dimension, include is applied first, then exclude narrows further.", + "type": "object", + "properties": { + "content_ratings_exclude": { + "type": "array", + "description": "Exclude collections with any of these content ratings (OR logic). This is a metadata filter on the collection's declared content_rating field \u2014 it does not evaluate episode content.", + "items": { + "$ref": "../core/content-rating.json" + }, + "minItems": 1 + }, + "content_ratings_include": { + "type": "array", + "description": "Include only collections with any of these content ratings (OR logic). Collections without a declared content_rating are excluded.", + "items": { + "$ref": "../core/content-rating.json" + }, + "minItems": 1 + }, + "genres_exclude": { + "type": "array", + "description": "Exclude collections tagged with any of these genres (OR logic). Values are interpreted against genre_taxonomy when present.", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "genres_include": { + "type": "array", + "description": "Include only collections with any of these genres (OR logic). Collections without genre metadata are excluded. Values are interpreted against genre_taxonomy when present.", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "genre_taxonomy": { + "$ref": "../enums/genre-taxonomy.json", + "description": "Taxonomy for genre filter values. When present, genres_include and genres_exclude values are interpreted as taxonomy IDs." + }, + "kinds": { + "type": "array", + "description": "Filter to these collection kinds", + "items": { + "type": "string", + "enum": [ + "series", + "publication", + "event_series", + "rotation" + ] + }, + "minItems": 1 + }, + "exclude_distribution_ids": { + "type": "array", + "description": "Always exclude collections with these distribution identifiers", + "items": { + "type": "object", + "properties": { + "type": { + "$ref": "../enums/distribution-identifier-type.json", + "description": "Type of distribution identifier" + }, + "value": { + "type": "string", + "description": "The identifier value" + } + }, + "required": [ + "type", + "value" + ], + "additionalProperties": false + }, + "minItems": 1 + }, + "production_quality": { + "type": "array", + "description": "Filter by production quality tier", + "items": { + "$ref": "../enums/production-quality.json" + }, + "minItems": 1 + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/collection-list.json b/schemas/cache/collection/collection-list.json new file mode 100644 index 000000000..2df2801c7 --- /dev/null +++ b/schemas/cache/collection/collection-list.json @@ -0,0 +1,69 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Collection List", + "description": "A managed collection list with optional filters for dynamic evaluation. Lists are resolved at setup time and cached by orchestrators/sellers for real-time use. Collections represent programs, shows, and other content entities independent of which properties carry them.", + "type": "object", + "properties": { + "list_id": { + "type": "string", + "description": "Unique identifier for this collection list" + }, + "name": { + "type": "string", + "description": "Human-readable name for the list" + }, + "description": { + "type": "string", + "description": "Description of the list's purpose" + }, + "principal": { + "type": "string", + "description": "Principal identity that owns this list" + }, + "base_collections": { + "type": "array", + "description": "Array of collection sources to evaluate. Each entry is a discriminated union: distribution_ids (platform-independent identifiers), publisher_collections (publisher_domain + collection_ids), or publisher_genres (publisher_domain + genres). If omitted, queries the agent's entire collection database.", + "items": { + "$ref": "base-collection-source.json" + } + }, + "filters": { + "$ref": "collection-list-filters.json", + "description": "Dynamic filters applied when resolving the list" + }, + "brand": { + "$ref": "../core/brand-ref.json", + "description": "Brand reference used to automatically apply appropriate rules. Resolved to full brand identity at execution time." + }, + "webhook_url": { + "type": "string", + "format": "uri", + "description": "URL to receive notifications when the resolved list changes" + }, + "cache_duration_hours": { + "type": "integer", + "description": "Recommended cache duration for resolved list. Consumers should re-fetch after this period. Defaults to 168 (one week) because collection metadata changes less frequently than property metadata.", + "minimum": 1, + "default": 168 + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "When the list was created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "When the list was last modified" + }, + "collection_count": { + "type": "integer", + "description": "Number of collections in the resolved list (at time of last resolution)" + } + }, + "required": [ + "list_id", + "name" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/create-collection-list-request.json b/schemas/cache/collection/create-collection-list-request.json new file mode 100644 index 000000000..567615e77 --- /dev/null +++ b/schemas/cache/collection/create-collection-list-request.json @@ -0,0 +1,54 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Create Collection List Request", + "description": "Request parameters for creating a new collection list", + "type": "object", + "properties": { + "adcp_major_version": { + "type": "integer", + "description": "The AdCP major version the buyer's payloads conform to. Sellers validate against their supported major_versions and return VERSION_UNSUPPORTED if unsupported. When omitted, the seller assumes its highest supported version.", + "minimum": 1, + "maximum": 99 + }, + "name": { + "type": "string", + "description": "Human-readable name for the list" + }, + "description": { + "type": "string", + "description": "Description of the list's purpose" + }, + "base_collections": { + "type": "array", + "description": "Array of collection sources to evaluate. Each entry is a discriminated union: distribution_ids (platform-independent identifiers), publisher_collections (publisher_domain + collection_ids), or publisher_genres (publisher_domain + genres). If omitted, queries the agent's entire collection database.", + "items": { + "$ref": "base-collection-source.json" + }, + "minItems": 1 + }, + "filters": { + "$ref": "collection-list-filters.json", + "description": "Dynamic filters to apply when resolving the list" + }, + "brand": { + "$ref": "../core/brand-ref.json", + "description": "Brand reference. When provided, the agent automatically applies appropriate rules based on brand characteristics (industry, target_audience, etc.). Resolved at execution time." + }, + "idempotency_key": { + "type": "string", + "description": "Client-generated unique key for this request. Prevents duplicate collection list creation on retries. MUST be unique per (seller, request) pair to prevent cross-seller correlation. Use a fresh UUID v4 for each request.", + "minLength": 16, + "maxLength": 255 + }, + "context": { + "$ref": "../core/context.json" + }, + "ext": { + "$ref": "../core/ext.json" + } + }, + "required": [ + "name" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/create-collection-list-response.json b/schemas/cache/collection/create-collection-list-response.json new file mode 100644 index 000000000..ca177f926 --- /dev/null +++ b/schemas/cache/collection/create-collection-list-response.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Create Collection List Response", + "description": "Response payload for create_collection_list task", + "type": "object", + "properties": { + "list": { + "$ref": "collection-list.json", + "description": "The created collection list" + }, + "auth_token": { + "type": "string", + "description": "Token that can be shared with sellers to authorize fetching this list. Store this - it is only returned at creation time." + }, + "ext": { + "$ref": "../core/ext.json" + } + }, + "required": [ + "list", + "auth_token" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/delete-collection-list-request.json b/schemas/cache/collection/delete-collection-list-request.json new file mode 100644 index 000000000..5b6a1c374 --- /dev/null +++ b/schemas/cache/collection/delete-collection-list-request.json @@ -0,0 +1,34 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Delete Collection List Request", + "description": "Request parameters for deleting a collection list", + "type": "object", + "properties": { + "adcp_major_version": { + "type": "integer", + "description": "The AdCP major version the buyer's payloads conform to. Sellers validate against their supported major_versions and return VERSION_UNSUPPORTED if unsupported. When omitted, the seller assumes its highest supported version.", + "minimum": 1, + "maximum": 99 + }, + "list_id": { + "type": "string", + "description": "ID of the collection list to delete" + }, + "context": { + "$ref": "../core/context.json" + }, + "ext": { + "$ref": "../core/ext.json" + }, + "idempotency_key": { + "type": "string", + "description": "Client-generated unique key for at-most-once execution. If a request with the same key has already been processed, the server returns the original response without re-processing. MUST be unique per (seller, request) pair to prevent cross-seller correlation. Use a fresh UUID v4 for each request.", + "minLength": 16, + "maxLength": 255 + } + }, + "required": [ + "list_id" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/delete-collection-list-response.json b/schemas/cache/collection/delete-collection-list-response.json new file mode 100644 index 000000000..b0c11e1ba --- /dev/null +++ b/schemas/cache/collection/delete-collection-list-response.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Delete Collection List Response", + "description": "Response payload for delete_collection_list task", + "type": "object", + "properties": { + "deleted": { + "type": "boolean", + "description": "Whether the list was successfully deleted" + }, + "list_id": { + "type": "string", + "description": "ID of the deleted list" + }, + "ext": { + "$ref": "../core/ext.json" + } + }, + "required": [ + "deleted", + "list_id" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/get-collection-list-request.json b/schemas/cache/collection/get-collection-list-request.json new file mode 100644 index 000000000..b0c898f3c --- /dev/null +++ b/schemas/cache/collection/get-collection-list-request.json @@ -0,0 +1,51 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Get Collection List Request", + "description": "Request parameters for retrieving a collection list with resolved collections", + "type": "object", + "properties": { + "adcp_major_version": { + "type": "integer", + "description": "The AdCP major version the buyer's payloads conform to. Sellers validate against their supported major_versions and return VERSION_UNSUPPORTED if unsupported. When omitted, the seller assumes its highest supported version.", + "minimum": 1, + "maximum": 99 + }, + "list_id": { + "type": "string", + "description": "ID of the collection list to retrieve" + }, + "resolve": { + "type": "boolean", + "description": "Whether to apply filters and return resolved collections (default: true)", + "default": true + }, + "pagination": { + "type": "object", + "description": "Pagination parameters. Uses higher limits than standard pagination because collection lists can contain thousands of entries.", + "properties": { + "max_results": { + "type": "integer", + "minimum": 1, + "maximum": 10000, + "default": 1000, + "description": "Maximum number of collections to return per page" + }, + "cursor": { + "type": "string", + "description": "Opaque cursor from a previous response to fetch the next page" + } + }, + "additionalProperties": false + }, + "context": { + "$ref": "../core/context.json" + }, + "ext": { + "$ref": "../core/ext.json" + } + }, + "required": [ + "list_id" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/get-collection-list-response.json b/schemas/cache/collection/get-collection-list-response.json new file mode 100644 index 000000000..db2b47b54 --- /dev/null +++ b/schemas/cache/collection/get-collection-list-response.json @@ -0,0 +1,125 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Get Collection List Response", + "description": "Response payload for get_collection_list task. Returns resolved collection entries with identification and key metadata for matching. Consumers should cache the resolved collections and refresh based on cache_valid_until.", + "type": "object", + "properties": { + "list": { + "$ref": "collection-list.json", + "description": "The collection list metadata (always returned)" + }, + "collections": { + "type": "array", + "description": "Resolved collections that passed filters (if resolve=true). Each entry contains identification and key metadata for seller matching.", + "items": { + "type": "object", + "properties": { + "collection_rid": { + "type": "string", + "description": "Registry-assigned stable identifier for this collection. Present when the collection has been registered in the collection registry." + }, + "name": { + "type": "string", + "description": "Human-readable collection name" + }, + "distribution_ids": { + "type": "array", + "description": "Platform-independent identifiers for cross-publisher matching", + "items": { + "type": "object", + "properties": { + "type": { + "$ref": "../enums/distribution-identifier-type.json", + "description": "Type of distribution identifier" + }, + "value": { + "type": "string", + "description": "The identifier value" + } + }, + "required": [ + "type", + "value" + ], + "additionalProperties": false + } + }, + "content_rating": { + "$ref": "../core/content-rating.json", + "description": "Baseline content rating for this collection" + }, + "genre": { + "type": "array", + "description": "Genre tags for this collection", + "items": { + "type": "string" + } + }, + "genre_taxonomy": { + "$ref": "../enums/genre-taxonomy.json", + "description": "Taxonomy system for genre values" + }, + "kind": { + "type": "string", + "enum": [ + "series", + "publication", + "event_series", + "rotation" + ], + "description": "What kind of content program this is" + } + }, + "required": [ + "name" + ], + "additionalProperties": false + } + }, + "pagination": { + "$ref": "../core/pagination-response.json" + }, + "resolved_at": { + "type": "string", + "format": "date-time", + "description": "When the list was resolved" + }, + "cache_valid_until": { + "type": "string", + "format": "date-time", + "description": "Cache expiration timestamp. Re-fetch the list after this time to get updated collections." + }, + "coverage_gaps": { + "type": "object", + "description": "Collections included in the list despite missing metadata for a filtered dimension. Maps dimension name (e.g., 'genre', 'content_rating') to arrays of distribution identifiers for collections not covered. Only present when filters are applied and some collections lack the filtered metadata.", + "additionalProperties": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "$ref": "../enums/distribution-identifier-type.json", + "description": "Type of distribution identifier" + }, + "value": { + "type": "string", + "description": "The identifier value" + } + }, + "required": [ + "type", + "value" + ], + "additionalProperties": false + } + } + }, + "ext": { + "$ref": "../core/ext.json" + } + }, + "required": [ + "list" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/list-collection-lists-request.json b/schemas/cache/collection/list-collection-lists-request.json new file mode 100644 index 000000000..4cbcbdea1 --- /dev/null +++ b/schemas/cache/collection/list-collection-lists-request.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "List Collection Lists Request", + "description": "Request parameters for listing collection lists", + "type": "object", + "properties": { + "adcp_major_version": { + "type": "integer", + "description": "The AdCP major version the buyer's payloads conform to. Sellers validate against their supported major_versions and return VERSION_UNSUPPORTED if unsupported. When omitted, the seller assumes its highest supported version.", + "minimum": 1, + "maximum": 99 + }, + "principal": { + "type": "string", + "description": "Filter to lists owned by this principal" + }, + "name_contains": { + "type": "string", + "description": "Filter to lists whose name contains this string" + }, + "pagination": { + "$ref": "../core/pagination-request.json" + }, + "context": { + "$ref": "../core/context.json" + }, + "ext": { + "$ref": "../core/ext.json" + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/list-collection-lists-response.json b/schemas/cache/collection/list-collection-lists-response.json new file mode 100644 index 000000000..949a7874f --- /dev/null +++ b/schemas/cache/collection/list-collection-lists-response.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "List Collection Lists Response", + "description": "Response payload for list_collection_lists task", + "type": "object", + "properties": { + "lists": { + "type": "array", + "description": "Array of collection lists (metadata only, not resolved collections)", + "items": { + "$ref": "collection-list.json" + } + }, + "pagination": { + "$ref": "../core/pagination-response.json" + }, + "ext": { + "$ref": "../core/ext.json" + } + }, + "required": [ + "lists" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/update-collection-list-request.json b/schemas/cache/collection/update-collection-list-request.json new file mode 100644 index 000000000..f777aceae --- /dev/null +++ b/schemas/cache/collection/update-collection-list-request.json @@ -0,0 +1,62 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Update Collection List Request", + "description": "Request parameters for updating an existing collection list", + "type": "object", + "properties": { + "adcp_major_version": { + "type": "integer", + "description": "The AdCP major version the buyer's payloads conform to. Sellers validate against their supported major_versions and return VERSION_UNSUPPORTED if unsupported. When omitted, the seller assumes its highest supported version.", + "minimum": 1, + "maximum": 99 + }, + "list_id": { + "type": "string", + "description": "ID of the collection list to update" + }, + "name": { + "type": "string", + "description": "New name for the list" + }, + "description": { + "type": "string", + "description": "New description" + }, + "base_collections": { + "type": "array", + "description": "Complete replacement for the base collections list (not a patch). Each entry is a discriminated union: distribution_ids (platform-independent identifiers), publisher_collections (publisher_domain + collection_ids), or publisher_genres (publisher_domain + genres).", + "items": { + "$ref": "base-collection-source.json" + } + }, + "filters": { + "$ref": "collection-list-filters.json", + "description": "Complete replacement for the filters (not a patch)" + }, + "brand": { + "$ref": "../core/brand-ref.json", + "description": "Update brand reference. Resolved to full brand identity at execution time." + }, + "webhook_url": { + "type": "string", + "format": "uri", + "description": "Update the webhook URL for list change notifications (set to empty string to remove)" + }, + "context": { + "$ref": "../core/context.json" + }, + "ext": { + "$ref": "../core/ext.json" + }, + "idempotency_key": { + "type": "string", + "description": "Client-generated unique key for at-most-once execution. If a request with the same key has already been processed, the server returns the original response without re-processing. MUST be unique per (seller, request) pair to prevent cross-seller correlation. Use a fresh UUID v4 for each request.", + "minLength": 16, + "maxLength": 255 + } + }, + "required": [ + "list_id" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/collection/update-collection-list-response.json b/schemas/cache/collection/update-collection-list-response.json new file mode 100644 index 000000000..a9bbe5cdd --- /dev/null +++ b/schemas/cache/collection/update-collection-list-response.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Update Collection List Response", + "description": "Response payload for update_collection_list task", + "type": "object", + "properties": { + "list": { + "$ref": "collection-list.json", + "description": "The updated collection list" + }, + "ext": { + "$ref": "../core/ext.json" + } + }, + "required": [ + "list" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/schemas/cache/compliance/comply-test-controller-request.json b/schemas/cache/compliance/comply-test-controller-request.json index 67b257530..181ac30df 100644 --- a/schemas/cache/compliance/comply-test-controller-request.json +++ b/schemas/cache/compliance/comply-test-controller-request.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/compliance/comply-test-controller-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Request payload for the comply_test_controller tool. Triggers seller-side state transitions for compliance testing. Sandbox only \u2014 sellers MUST NOT expose this tool in production.", "examples": [ @@ -73,10 +72,10 @@ "description": "Discover which scenarios this seller supports", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "scenario": { "const": "list_scenarios", @@ -94,10 +93,10 @@ "description": "Transition a creative to the specified status", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "params": { "additionalProperties": true, @@ -111,7 +110,7 @@ "type": "string" }, "status": { - "$ref": "/schemas/3.0.0-rc.3/enums/creative-status.json" + "$ref": "../enums/creative-status.json" } }, "required": [ @@ -137,10 +136,10 @@ "description": "Transition an account to the specified status", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "params": { "additionalProperties": true, @@ -150,7 +149,7 @@ "type": "string" }, "status": { - "$ref": "/schemas/3.0.0-rc.3/enums/account-status.json" + "$ref": "../enums/account-status.json" } }, "required": [ @@ -176,10 +175,10 @@ "description": "Transition a media buy to the specified status", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "params": { "additionalProperties": true, @@ -193,7 +192,7 @@ "type": "string" }, "status": { - "$ref": "/schemas/3.0.0-rc.3/enums/media-buy-status.json" + "$ref": "../enums/media-buy-status.json" } }, "required": [ @@ -219,10 +218,10 @@ "description": "Transition an SI session to a terminal status", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "params": { "additionalProperties": true, @@ -267,10 +266,10 @@ "description": "Inject synthetic delivery data for a media buy", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "params": { "additionalProperties": true, @@ -335,10 +334,10 @@ "description": "Simulate budget consumption to a specified percentage", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "params": { "additionalProperties": true, diff --git a/schemas/cache/compliance/comply-test-controller-response.json b/schemas/cache/compliance/comply-test-controller-response.json index 1925a1511..9df9563c1 100644 --- a/schemas/cache/compliance/comply-test-controller-response.json +++ b/schemas/cache/compliance/comply-test-controller-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/compliance/comply-test-controller-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Response from the comply_test_controller tool. Shape varies by scenario type: list_scenarios returns available scenarios, force_* returns state transition results, simulate_* returns simulation results.", "examples": [ @@ -108,10 +107,10 @@ }, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "scenarios": { "description": "Scenarios this seller has implemented", @@ -164,14 +163,14 @@ }, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "current_state": { "description": "State after this transition", "type": "string" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "message": { "description": "Human-readable description of the transition", @@ -218,7 +217,7 @@ }, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "cumulative": { "additionalProperties": true, @@ -226,7 +225,7 @@ "type": "object" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "message": { "type": "string" @@ -272,7 +271,7 @@ }, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "current_state": { "description": "Current state of the entity, or null if not found", @@ -299,7 +298,7 @@ "type": "string" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "success": { "const": false, diff --git a/schemas/cache/content-standards/artifact-webhook-payload.json b/schemas/cache/content-standards/artifact-webhook-payload.json index 18094685a..5d672d24f 100644 --- a/schemas/cache/content-standards/artifact-webhook-payload.json +++ b/schemas/cache/content-standards/artifact-webhook-payload.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/artifact-webhook-payload.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Payload sent by sales agents to orchestrators when pushing content artifacts for governance validation. Complements get_media_buy_artifacts for push-based artifact delivery.", @@ -9,7 +8,7 @@ "items": { "properties": { "artifact": { - "$ref": "/schemas/3.0.0-rc.3/content-standards/artifact.json", + "$ref": "artifact.json", "description": "The content artifact" }, "delivered_at": { @@ -39,7 +38,7 @@ "type": "string" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "media_buy_id": { "description": "Media buy identifier these artifacts belong to", diff --git a/schemas/cache/content-standards/artifact.json b/schemas/cache/content-standards/artifact.json index bc9589d38..f63c65adf 100644 --- a/schemas/cache/content-standards/artifact.json +++ b/schemas/cache/content-standards/artifact.json @@ -65,7 +65,6 @@ "type": "object" } }, - "$id": "/schemas/3.0.0-rc.3/content-standards/artifact.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Content artifact for safety and suitability evaluation. An artifact represents content adjacent to an ad placement - a news article, podcast segment, video chapter, or social post. Artifacts are collections of assets (text, images, video, audio) plus metadata and signals.", @@ -108,7 +107,7 @@ "type": "string" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../core/provenance.json", "description": "Provenance for this text block, overrides artifact-level provenance" }, "role": { @@ -155,7 +154,7 @@ "type": "integer" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../core/provenance.json", "description": "Provenance for this image, overrides artifact-level provenance" }, "type": { @@ -190,7 +189,7 @@ "type": "integer" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../core/provenance.json", "description": "Provenance for this video, overrides artifact-level provenance" }, "thumbnail_url": { @@ -252,7 +251,7 @@ "type": "integer" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../core/provenance.json", "description": "Provenance for this audio, overrides artifact-level provenance" }, "transcript": { @@ -301,7 +300,7 @@ "type": "array" }, "format_id": { - "$ref": "/schemas/3.0.0-rc.3/core/format-id.json", + "$ref": "../core/format-id.json", "description": "Optional reference to a format definition. Uses the same format registry as creative formats." }, "identifiers": { @@ -379,7 +378,7 @@ "type": "string" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../core/provenance.json", "description": "Provenance metadata for this artifact. Serves as the default provenance for all assets within this artifact \u2014 individual assets can override with their own provenance." }, "published_time": { diff --git a/schemas/cache/content-standards/calibrate-content-request.json b/schemas/cache/content-standards/calibrate-content-request.json index c451ef9f3..34dc64118 100644 --- a/schemas/cache/content-standards/calibrate-content-request.json +++ b/schemas/cache/content-standards/calibrate-content-request.json @@ -1,10 +1,9 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/calibrate-content-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Request parameters for evaluating content during calibration. Multi-turn dialogue is handled at the protocol layer via contextId.", "properties": { "artifact": { - "$ref": "/schemas/3.0.0-rc.3/content-standards/artifact.json", + "$ref": "artifact.json", "description": "Artifact to evaluate" }, "idempotency_key": { diff --git a/schemas/cache/content-standards/calibrate-content-response.json b/schemas/cache/content-standards/calibrate-content-response.json index 2b909e0d2..e0a90489c 100644 --- a/schemas/cache/content-standards/calibrate-content-response.json +++ b/schemas/cache/content-standards/calibrate-content-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/calibrate-content-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Response payload with verdict and detailed explanations for collaborative calibration", "oneOf": [ @@ -13,14 +12,14 @@ "type": "number" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "explanation": { "description": "Detailed natural language explanation of the decision", "type": "string" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "features": { "description": "Per-feature breakdown with explanations", @@ -71,16 +70,16 @@ "description": "Error response", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/content-standards/content-standards.json b/schemas/cache/content-standards/content-standards.json index 808515d0c..0d07de637 100644 --- a/schemas/cache/content-standards/content-standards.json +++ b/schemas/cache/content-standards/content-standards.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/content-standards.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "A content standards configuration defining brand safety and suitability policies. Standards are scoped by brand, geography, and channel. Multiple standards can be active simultaneously for different scopes.", "properties": { @@ -9,14 +8,14 @@ "fail": { "description": "Artifacts that fail the content standards", "items": { - "$ref": "/schemas/3.0.0-rc.3/content-standards/artifact.json" + "$ref": "artifact.json" }, "type": "array" }, "pass": { "description": "Artifacts that pass the content standards", "items": { - "$ref": "/schemas/3.0.0-rc.3/content-standards/artifact.json" + "$ref": "artifact.json" }, "type": "array" } @@ -26,7 +25,7 @@ "channels_any": { "description": "Advertising channels. Standards apply to ANY of the listed channels (OR logic).", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/channels.json" + "$ref": "../enums/channels.json" }, "minItems": 1, "type": "array" @@ -40,7 +39,7 @@ "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "languages_any": { "description": "BCP 47 language tags (e.g., 'en', 'de', 'fr'). Standards apply to content in ANY of these languages (OR logic). Content in unlisted languages is not covered by these standards.", @@ -61,7 +60,7 @@ "pricing_options": { "description": "Pricing options for this content standards service. The buyer passes the selected pricing_option_id in report_usage for billing verification.", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/pricing-option.json" + "$ref": "../core/pricing-option.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/content-standards/create-content-standards-request.json b/schemas/cache/content-standards/create-content-standards-request.json index 7ceb71481..a94d37140 100644 --- a/schemas/cache/content-standards/create-content-standards-request.json +++ b/schemas/cache/content-standards/create-content-standards-request.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/create-content-standards-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Request parameters for creating a new content standards configuration", @@ -36,7 +35,7 @@ "type": "object" }, { - "$ref": "/schemas/3.0.0-rc.3/content-standards/artifact.json", + "$ref": "artifact.json", "description": "Full artifact with pre-extracted content (text, images, video, audio)" } ] @@ -72,7 +71,7 @@ "type": "object" }, { - "$ref": "/schemas/3.0.0-rc.3/content-standards/artifact.json", + "$ref": "artifact.json", "description": "Full artifact with pre-extracted content (text, images, video, audio)" } ] @@ -83,10 +82,10 @@ "type": "object" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "idempotency_key": { "description": "Client-generated unique key for this request. Prevents duplicate content standards creation on retries. MUST be unique per (seller, request) pair to prevent cross-seller correlation. Use a fresh UUID v4 for each request.", @@ -111,7 +110,7 @@ "channels_any": { "description": "Advertising channels. Standards apply to ANY of the listed channels (OR logic).", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/channels.json" + "$ref": "../enums/channels.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/content-standards/create-content-standards-response.json b/schemas/cache/content-standards/create-content-standards-response.json index 68fd4363a..3a099c2ec 100644 --- a/schemas/cache/content-standards/create-content-standards-response.json +++ b/schemas/cache/content-standards/create-content-standards-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/create-content-standards-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Response payload for creating a content standards configuration", "oneOf": [ @@ -7,10 +6,10 @@ "description": "Success response - returns the created standards identifier", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "standards_id": { "description": "Unique identifier for the created standards configuration", @@ -30,16 +29,16 @@ "type": "string" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/content-standards/get-content-standards-request.json b/schemas/cache/content-standards/get-content-standards-request.json index df3ab1c2c..4ee7f59e8 100644 --- a/schemas/cache/content-standards/get-content-standards-request.json +++ b/schemas/cache/content-standards/get-content-standards-request.json @@ -1,13 +1,12 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/get-content-standards-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Request parameters for retrieving content safety policies", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "standards_id": { "description": "Identifier for the standards configuration to retrieve", diff --git a/schemas/cache/content-standards/get-content-standards-response.json b/schemas/cache/content-standards/get-content-standards-response.json index aad62bab2..31e949035 100644 --- a/schemas/cache/content-standards/get-content-standards-response.json +++ b/schemas/cache/content-standards/get-content-standards-response.json @@ -1,18 +1,17 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/get-content-standards-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Response payload with content safety policies", "oneOf": [ { "allOf": [ { - "$ref": "/schemas/3.0.0-rc.3/content-standards/content-standards.json" + "$ref": "content-standards.json" } ], "description": "Success response - returns the content standards configuration", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" } }, "type": "object" @@ -21,16 +20,16 @@ "description": "Error response", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/content-standards/get-media-buy-artifacts-request.json b/schemas/cache/content-standards/get-media-buy-artifacts-request.json index ab5cec7e5..346e410ad 100644 --- a/schemas/cache/content-standards/get-media-buy-artifacts-request.json +++ b/schemas/cache/content-standards/get-media-buy-artifacts-request.json @@ -1,17 +1,16 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/get-media-buy-artifacts-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Request parameters for retrieving content artifacts from a media buy for validation", "properties": { "account": { - "$ref": "/schemas/3.0.0-rc.3/core/account-ref.json", + "$ref": "../core/account-ref.json", "description": "Filter artifacts to a specific account. When omitted, returns artifacts across all accessible accounts." }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "failures_only": { "default": false, diff --git a/schemas/cache/content-standards/get-media-buy-artifacts-response.json b/schemas/cache/content-standards/get-media-buy-artifacts-response.json index 185d7998a..d619add57 100644 --- a/schemas/cache/content-standards/get-media-buy-artifacts-response.json +++ b/schemas/cache/content-standards/get-media-buy-artifacts-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/get-media-buy-artifacts-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Response containing content artifacts from a media buy for validation", "oneOf": [ @@ -11,7 +10,7 @@ "items": { "properties": { "artifact": { - "$ref": "/schemas/3.0.0-rc.3/content-standards/artifact.json", + "$ref": "artifact.json", "description": "Full artifact with content assets" }, "brand_context": { @@ -90,17 +89,17 @@ "type": "object" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "media_buy_id": { "description": "Media buy these artifacts belong to", "type": "string" }, "pagination": { - "$ref": "/schemas/3.0.0-rc.3/core/pagination-response.json" + "$ref": "../core/pagination-response.json" } }, "required": [ @@ -113,16 +112,16 @@ "description": "Error response", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/content-standards/list-content-standards-request.json b/schemas/cache/content-standards/list-content-standards-request.json index b38c91adb..cbdf56207 100644 --- a/schemas/cache/content-standards/list-content-standards-request.json +++ b/schemas/cache/content-standards/list-content-standards-request.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/list-content-standards-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Request parameters for listing content standards configurations", @@ -7,13 +6,13 @@ "channels": { "description": "Filter by channel", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/channels.json" + "$ref": "../enums/channels.json" }, "minItems": 1, "type": "array" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "countries": { "description": "Filter by ISO 3166-1 alpha-2 country codes", @@ -24,7 +23,7 @@ "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "languages": { "description": "Filter by BCP 47 language tags", @@ -35,7 +34,7 @@ "type": "array" }, "pagination": { - "$ref": "/schemas/3.0.0-rc.3/core/pagination-request.json" + "$ref": "../core/pagination-request.json" } }, "title": "List Content Standards Request", diff --git a/schemas/cache/content-standards/list-content-standards-response.json b/schemas/cache/content-standards/list-content-standards-response.json index 26624133d..5423cb7a7 100644 --- a/schemas/cache/content-standards/list-content-standards-response.json +++ b/schemas/cache/content-standards/list-content-standards-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/list-content-standards-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Response payload with list of content standards configurations", "oneOf": [ @@ -7,18 +6,18 @@ "description": "Success response - returns array of content standards", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "pagination": { - "$ref": "/schemas/3.0.0-rc.3/core/pagination-response.json" + "$ref": "../core/pagination-response.json" }, "standards": { "description": "Array of content standards configurations matching the filter criteria", "items": { - "$ref": "/schemas/3.0.0-rc.3/content-standards/content-standards.json" + "$ref": "content-standards.json" }, "type": "array" } @@ -32,16 +31,16 @@ "description": "Error response", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/content-standards/update-content-standards-request.json b/schemas/cache/content-standards/update-content-standards-request.json index 20aa567a0..eb21f9d8d 100644 --- a/schemas/cache/content-standards/update-content-standards-request.json +++ b/schemas/cache/content-standards/update-content-standards-request.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/update-content-standards-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Request parameters for updating an existing content standards configuration. Creates a new version.", @@ -36,7 +35,7 @@ "type": "object" }, { - "$ref": "/schemas/3.0.0-rc.3/content-standards/artifact.json", + "$ref": "artifact.json", "description": "Full artifact with pre-extracted content (text, images, video, audio)" } ] @@ -72,7 +71,7 @@ "type": "object" }, { - "$ref": "/schemas/3.0.0-rc.3/content-standards/artifact.json", + "$ref": "artifact.json", "description": "Full artifact with pre-extracted content (text, images, video, audio)" } ] @@ -83,10 +82,10 @@ "type": "object" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "idempotency_key": { "description": "Client-generated unique key for at-most-once execution. If a request with the same key has already been processed, the server returns the original response without re-processing. MUST be unique per (seller, request) pair to prevent cross-seller correlation. Use a fresh UUID v4 for each request.", @@ -111,7 +110,7 @@ "channels_any": { "description": "Advertising channels. Standards apply to ANY of the listed channels (OR logic).", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/channels.json" + "$ref": "../enums/channels.json" }, "minItems": 1, "type": "array" diff --git a/schemas/cache/content-standards/update-content-standards-response.json b/schemas/cache/content-standards/update-content-standards-response.json index 476d21d1a..56aa8f3f2 100644 --- a/schemas/cache/content-standards/update-content-standards-response.json +++ b/schemas/cache/content-standards/update-content-standards-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/update-content-standards-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Response from updating a content standards configuration", "oneOf": [ @@ -7,10 +6,10 @@ "additionalProperties": true, "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "standards_id": { "description": "ID of the updated standards configuration", @@ -37,18 +36,18 @@ "type": "string" }, "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "description": "Errors that occurred during the update", "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "minItems": 1, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "success": { "const": false, diff --git a/schemas/cache/content-standards/validate-content-delivery-request.json b/schemas/cache/content-standards/validate-content-delivery-request.json index 0e807e8a2..94d4ee150 100644 --- a/schemas/cache/content-standards/validate-content-delivery-request.json +++ b/schemas/cache/content-standards/validate-content-delivery-request.json @@ -1,13 +1,12 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/validate-content-delivery-request.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Request parameters for batch validating delivery records against content safety policies", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "feature_ids": { "description": "Specific features to evaluate (defaults to all)", @@ -27,7 +26,7 @@ "items": { "properties": { "artifact": { - "$ref": "/schemas/3.0.0-rc.3/content-standards/artifact.json", + "$ref": "artifact.json", "description": "Artifact where ad was delivered" }, "brand_context": { diff --git a/schemas/cache/content-standards/validate-content-delivery-response.json b/schemas/cache/content-standards/validate-content-delivery-response.json index 419a2bdf9..3c322463f 100644 --- a/schemas/cache/content-standards/validate-content-delivery-response.json +++ b/schemas/cache/content-standards/validate-content-delivery-response.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/content-standards/validate-content-delivery-response.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Response payload with per-record verdicts and optional feature breakdown", "oneOf": [ @@ -7,10 +6,10 @@ "description": "Success response", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" }, "results": { "description": "Per-record evaluation results", @@ -101,16 +100,16 @@ "description": "Error response", "properties": { "context": { - "$ref": "/schemas/3.0.0-rc.3/core/context.json" + "$ref": "../core/context.json" }, "errors": { "items": { - "$ref": "/schemas/3.0.0-rc.3/core/error.json" + "$ref": "../core/error.json" }, "type": "array" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "../core/ext.json" } }, "required": [ diff --git a/schemas/cache/core/account-ref.json b/schemas/cache/core/account-ref.json index 258283f4d..c80aa84ea 100644 --- a/schemas/cache/core/account-ref.json +++ b/schemas/cache/core/account-ref.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/account-ref.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Reference to an account by seller-assigned ID or natural key. Use account_id for explicit accounts (require_operator_auth: true, discovered via list_accounts). Use the natural key (brand + operator) for implicit accounts (require_operator_auth: false, declared via sync_accounts). For sandbox: explicit accounts use account_id (pre-existing test account), implicit accounts use the natural key with sandbox: true.", "examples": [ @@ -44,7 +43,7 @@ "additionalProperties": false, "properties": { "brand": { - "$ref": "/schemas/3.0.0-rc.3/core/brand-ref.json", + "$ref": "brand-ref.json", "description": "Brand reference identifying the advertiser" }, "operator": { diff --git a/schemas/cache/core/account.json b/schemas/cache/core/account.json index 4a05cbdbe..877b5ba07 100644 --- a/schemas/cache/core/account.json +++ b/schemas/cache/core/account.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/account.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "A billing account representing the relationship between a buyer and seller. The account determines rate cards, payment terms, and billing entity.", @@ -152,7 +151,7 @@ "type": "string" }, "billing_entity": { - "$ref": "/schemas/3.0.0-rc.3/core/business-entity.json", + "$ref": "business-entity.json", "description": "Business entity details for the party responsible for payment. Contains the legal name, tax IDs, address, and bank details needed for formal B2B invoicing. Corresponds to whoever billing points to (operator, agent, or advertiser). When this account appears in a response, bank details MUST be omitted (write-only)." }, "billing_proxy": { @@ -160,7 +159,7 @@ "type": "string" }, "brand": { - "$ref": "/schemas/3.0.0-rc.3/core/brand-ref.json", + "$ref": "brand-ref.json", "description": "Brand reference identifying the advertiser" }, "credit_limit": { @@ -182,7 +181,7 @@ "type": "object" }, "ext": { - "$ref": "/schemas/3.0.0-rc.3/core/ext.json" + "$ref": "ext.json" }, "governance_agents": { "description": "Governance agent endpoints registered on this account. Authentication credentials are write-only and not included in responses \u2014 use sync_governance to set or update credentials.", @@ -268,7 +267,7 @@ "type": "object" }, "status": { - "$ref": "/schemas/3.0.0-rc.3/enums/account-status.json", + "$ref": "../enums/account-status.json", "description": "Account lifecycle status. See the Accounts Protocol overview for the operations matrix showing which tasks are permitted in each state." } }, diff --git a/schemas/cache/core/activation-key.json b/schemas/cache/core/activation-key.json index f34fa8637..6ad5331b5 100644 --- a/schemas/cache/core/activation-key.json +++ b/schemas/cache/core/activation-key.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/activation-key.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "Universal identifier for using a signal on a destination platform. Can be either a segment ID or a key-value pair depending on the platform's targeting mechanism.", "oneOf": [ diff --git a/schemas/cache/core/ad-inventory-config.json b/schemas/cache/core/ad-inventory-config.json index 67cd9c0f1..60bc1bdd6 100644 --- a/schemas/cache/core/ad-inventory-config.json +++ b/schemas/cache/core/ad-inventory-config.json @@ -1,39 +1,38 @@ { - "$id": "/schemas/3.0.0-rc.3/core/ad-inventory-config.json", "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": true, + "title": "Ad Inventory Configuration", "description": "Break-based ad inventory configuration for an installment. Describes the ad breaks available within the content. For non-break ad formats (host reads, integrations, sponsorships), use product placements instead.", + "type": "object", "properties": { "expected_breaks": { - "description": "Number of planned ad breaks in the installment", + "type": "integer", + "minimum": 0, + "description": "Number of planned ad breaks in the installment" + }, + "total_ad_seconds": { + "type": "integer", "minimum": 0, - "type": "integer" + "description": "Total seconds of ad time across all breaks" }, "max_ad_duration_seconds": { - "description": "Maximum duration in seconds for a single ad within a break. Buyers need this to know whether their creative fits.", + "type": "integer", "minimum": 1, - "type": "integer" + "description": "Maximum duration in seconds for a single ad within a break. Buyers need this to know whether their creative fits." + }, + "unplanned_breaks": { + "type": "boolean", + "description": "Whether ad breaks are dynamic and driven by live conditions (sports timeouts, election coverage). When false, all breaks are pre-defined." }, "supported_formats": { + "type": "array", "description": "Ad format types supported in breaks (e.g., 'video', 'audio', 'display')", "items": { "type": "string" - }, - "type": "array" - }, - "total_ad_seconds": { - "description": "Total seconds of ad time across all breaks", - "minimum": 0, - "type": "integer" - }, - "unplanned_breaks": { - "description": "Whether ad breaks are dynamic and driven by live conditions (sports timeouts, election coverage). When false, all breaks are pre-defined.", - "type": "boolean" + } } }, "required": [ "expected_breaks" ], - "title": "Ad Inventory Configuration", - "type": "object" + "additionalProperties": true } \ No newline at end of file diff --git a/schemas/cache/core/agent-signing-key.json b/schemas/cache/core/agent-signing-key.json index a73d5d21b..f2f1a9798 100644 --- a/schemas/cache/core/agent-signing-key.json +++ b/schemas/cache/core/agent-signing-key.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/agent-signing-key.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Publisher-attested public key material for an authorized agent. Buyers use these keys to verify signed agent responses against the trust anchor published in adagents.json rather than trusting key discovery from the agent domain alone.", diff --git a/schemas/cache/core/assets/audio-asset.json b/schemas/cache/core/assets/audio-asset.json index d49a0db4a..24eeda8ab 100644 --- a/schemas/cache/core/assets/audio-asset.json +++ b/schemas/cache/core/assets/audio-asset.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/audio-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Audio asset with URL and technical specifications", @@ -51,7 +50,7 @@ "type": "number" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../../core/provenance.json", "description": "Provenance metadata for this asset, overrides manifest-level provenance" }, "sampling_rate_hz": { diff --git a/schemas/cache/core/assets/brief-asset.json b/schemas/cache/core/assets/brief-asset.json index c3bb3810a..9d4caa4a2 100644 --- a/schemas/cache/core/assets/brief-asset.json +++ b/schemas/cache/core/assets/brief-asset.json @@ -1,9 +1,8 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/brief-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "allOf": [ { - "$ref": "/schemas/3.0.0-rc.3/core/creative-brief.json" + "$ref": "../../core/creative-brief.json" } ], "description": "Campaign-level creative context as an asset. Carries the creative brief through the manifest so it travels with the creative through regeneration, resizing, and auditing.", diff --git a/schemas/cache/core/assets/catalog-asset.json b/schemas/cache/core/assets/catalog-asset.json index 9f123cb0c..8f44df83e 100644 --- a/schemas/cache/core/assets/catalog-asset.json +++ b/schemas/cache/core/assets/catalog-asset.json @@ -1,9 +1,8 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/catalog-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "allOf": [ { - "$ref": "/schemas/3.0.0-rc.3/core/catalog.json" + "$ref": "../../core/catalog.json" } ], "description": "A typed data feed as a creative asset. Carries catalog context (products, stores, jobs, etc.) within the manifest's assets map.", diff --git a/schemas/cache/core/assets/css-asset.json b/schemas/cache/core/assets/css-asset.json index cec5b6564..094a58e58 100644 --- a/schemas/cache/core/assets/css-asset.json +++ b/schemas/cache/core/assets/css-asset.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/css-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "CSS stylesheet asset", @@ -13,7 +12,7 @@ "type": "string" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../../core/provenance.json", "description": "Provenance metadata for this asset, overrides manifest-level provenance" } }, diff --git a/schemas/cache/core/assets/daast-asset.json b/schemas/cache/core/assets/daast-asset.json index 1d9db71a0..2e2f860c9 100644 --- a/schemas/cache/core/assets/daast-asset.json +++ b/schemas/cache/core/assets/daast-asset.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/daast-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "description": "DAAST (Digital Audio Ad Serving Template) tag for third-party audio ad serving", "oneOf": [ @@ -11,7 +10,7 @@ "type": "boolean" }, "daast_version": { - "$ref": "/schemas/3.0.0-rc.3/enums/daast-version.json", + "$ref": "../../enums/daast-version.json", "description": "DAAST specification version" }, "delivery_type": { @@ -25,13 +24,13 @@ "type": "integer" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../../core/provenance.json", "description": "Provenance metadata for this asset, overrides manifest-level provenance" }, "tracking_events": { "description": "Tracking events supported by this DAAST tag", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/daast-tracking-event.json" + "$ref": "../../enums/daast-tracking-event.json" }, "type": "array" }, @@ -65,7 +64,7 @@ "type": "string" }, "daast_version": { - "$ref": "/schemas/3.0.0-rc.3/enums/daast-version.json", + "$ref": "../../enums/daast-version.json", "description": "DAAST specification version" }, "delivery_type": { @@ -79,13 +78,13 @@ "type": "integer" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../../core/provenance.json", "description": "Provenance metadata for this asset, overrides manifest-level provenance" }, "tracking_events": { "description": "Tracking events supported by this DAAST tag", "items": { - "$ref": "/schemas/3.0.0-rc.3/enums/daast-tracking-event.json" + "$ref": "../../enums/daast-tracking-event.json" }, "type": "array" }, diff --git a/schemas/cache/core/assets/html-asset.json b/schemas/cache/core/assets/html-asset.json index 3e2ddf224..fd5a718ef 100644 --- a/schemas/cache/core/assets/html-asset.json +++ b/schemas/cache/core/assets/html-asset.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/html-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "HTML content asset", @@ -32,7 +31,7 @@ "type": "string" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../../core/provenance.json", "description": "Provenance metadata for this asset, overrides manifest-level provenance" }, "version": { diff --git a/schemas/cache/core/assets/image-asset.json b/schemas/cache/core/assets/image-asset.json index fe92fac29..ee5dcb0a9 100644 --- a/schemas/cache/core/assets/image-asset.json +++ b/schemas/cache/core/assets/image-asset.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/image-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Image asset with URL and dimensions", @@ -19,7 +18,7 @@ "type": "integer" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../../core/provenance.json", "description": "Provenance metadata for this asset, overrides manifest-level provenance" }, "url": { diff --git a/schemas/cache/core/assets/javascript-asset.json b/schemas/cache/core/assets/javascript-asset.json index 950d06437..0267b7ac7 100644 --- a/schemas/cache/core/assets/javascript-asset.json +++ b/schemas/cache/core/assets/javascript-asset.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/javascript-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "JavaScript code asset", @@ -32,11 +31,11 @@ "type": "string" }, "module_type": { - "$ref": "/schemas/3.0.0-rc.3/enums/javascript-module-type.json", + "$ref": "../../enums/javascript-module-type.json", "description": "JavaScript module type" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../../core/provenance.json", "description": "Provenance metadata for this asset, overrides manifest-level provenance" } }, diff --git a/schemas/cache/core/assets/markdown-asset.json b/schemas/cache/core/assets/markdown-asset.json index e6df6ee53..a9ae34a02 100644 --- a/schemas/cache/core/assets/markdown-asset.json +++ b/schemas/cache/core/assets/markdown-asset.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/markdown-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Markdown-formatted text content following CommonMark specification", @@ -18,7 +17,7 @@ "type": "string" }, "markdown_flavor": { - "$ref": "/schemas/3.0.0-rc.3/enums/markdown-flavor.json", + "$ref": "../../enums/markdown-flavor.json", "default": "commonmark", "description": "Markdown flavor used. CommonMark for strict compatibility, GFM for tables/task lists/strikethrough." } diff --git a/schemas/cache/core/assets/text-asset.json b/schemas/cache/core/assets/text-asset.json index 6c3cae3cb..2d12e0621 100644 --- a/schemas/cache/core/assets/text-asset.json +++ b/schemas/cache/core/assets/text-asset.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/text-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "Text content asset", @@ -13,7 +12,7 @@ "type": "string" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../../core/provenance.json", "description": "Provenance metadata for this asset, overrides manifest-level provenance" } }, diff --git a/schemas/cache/core/assets/url-asset.json b/schemas/cache/core/assets/url-asset.json index 494e919b5..733ff2b85 100644 --- a/schemas/cache/core/assets/url-asset.json +++ b/schemas/cache/core/assets/url-asset.json @@ -1,5 +1,4 @@ { - "$id": "/schemas/3.0.0-rc.3/core/assets/url-asset.json", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "description": "URL reference asset", @@ -9,7 +8,7 @@ "type": "string" }, "provenance": { - "$ref": "/schemas/3.0.0-rc.3/core/provenance.json", + "$ref": "../../core/provenance.json", "description": "Provenance metadata for this asset, overrides manifest-level provenance" }, "url": { @@ -18,7 +17,7 @@ "type": "string" }, "url_type": { - "$ref": "/schemas/3.0.0-rc.3/enums/url-asset-type.json", + "$ref": "../../enums/url-asset-type.json", "description": "Type of URL asset: 'clickthrough' for user click destination (landing page), 'tracker_pixel' for impression/event tracking via HTTP request (fires GET, expects pixel/204 response), 'tracker_script' for measurement SDKs that must load as