Summary
The spec doesn't ship a closed enum for status-change `resource_type` values. Implementers inventing event-bus status changes have to guess which resource categories are first-class. The SDK shipping the v6 `DecisioningPlatform` runtime needed this taxonomy and currently uses an SDK-defined union:
```ts
type StatusChangeResourceType =
| 'media_buy'
| 'creative'
| 'audience'
| 'signal'
| 'proposal'
| 'plan'
| 'rights_grant'
| 'delivery_report'
| 'property_list'
| 'collection_list';
```
These are the resource categories adopters publish status changes against today (`publishStatusChange({ resource_type, resource_id, payload })`). They map to the URI scheme `adcp://{account_id}/{resource_type}/{resource_id}` that the framework projects to MCP Resources subscribers.
Why this matters
When MCP Resources subscription wiring lands in the AdCP spec — projecting status changes to `notifications/resources/updated` — the `resource_type` becomes a wire string buyers parse. Without a normative spec enum:
- Different SDKs invent different sets, breaking interop. A salesagent (Python) and adcp-client (TypeScript) implementation could both ship `audience` lifecycle events but use different naming.
- Buyers can't enumerate "all subscribable resource types" without inspecting capability declarations from each agent.
- Adding a new lifecycle channel (e.g., `pcim_session` for sponsored intelligence) requires every implementer to coordinate.
Proposed fix
Add `schemas/v3/enums/status-change-resource-type.json`:
```json
{
"$schema": "http://json-schema.org/draft-07/schema#\",
"$id": "/schemas/v3/enums/status-change-resource-type.json",
"title": "Status Change Resource Type",
"description": "Resource categories whose lifecycle changes can be subscribed to via MCP Resources / push-notification webhooks.",
"type": "string",
"enum": [
"media_buy", "creative", "proposal", "delivery_report",
"audience", "signal", "plan", "rights_grant",
"property_list", "collection_list"
]
}
```
Reference from `mcp-webhook-payload.json` and the MCP Resources subscription URI scheme spec.
Open question — `x-` prefix for SDK extensions?
If the spec ships a tighter set, SDKs that ship more resource categories than the spec lists would need either (a) a spec follow-up to add the missing values, or (b) an `x-` prefix convention for SDK-extended values. The proposed enum above includes everything the v6 SDK ships today; if any of these are deemed out-of-scope for the wire-level enum, the SDK would x-prefix them. Worth documenting the convention either way.
Reference
Context
Filing on behalf of the v6 SDK preview (PR #1005) which centralized the status-change taxonomy for the first time. Other implementations will hit this when they wire MCP Resources subscription on top of AdCP.
Summary
The spec doesn't ship a closed enum for status-change `resource_type` values. Implementers inventing event-bus status changes have to guess which resource categories are first-class. The SDK shipping the v6 `DecisioningPlatform` runtime needed this taxonomy and currently uses an SDK-defined union:
```ts
type StatusChangeResourceType =
| 'media_buy'
| 'creative'
| 'audience'
| 'signal'
| 'proposal'
| 'plan'
| 'rights_grant'
| 'delivery_report'
| 'property_list'
| 'collection_list';
```
These are the resource categories adopters publish status changes against today (`publishStatusChange({ resource_type, resource_id, payload })`). They map to the URI scheme `adcp://{account_id}/{resource_type}/{resource_id}` that the framework projects to MCP Resources subscribers.
Why this matters
When MCP Resources subscription wiring lands in the AdCP spec — projecting status changes to `notifications/resources/updated` — the `resource_type` becomes a wire string buyers parse. Without a normative spec enum:
Proposed fix
Add `schemas/v3/enums/status-change-resource-type.json`:
```json
{
"$schema": "http://json-schema.org/draft-07/schema#\",
"$id": "/schemas/v3/enums/status-change-resource-type.json",
"title": "Status Change Resource Type",
"description": "Resource categories whose lifecycle changes can be subscribed to via MCP Resources / push-notification webhooks.",
"type": "string",
"enum": [
"media_buy", "creative", "proposal", "delivery_report",
"audience", "signal", "plan", "rights_grant",
"property_list", "collection_list"
]
}
```
Reference from `mcp-webhook-payload.json` and the MCP Resources subscription URI scheme spec.
Open question — `x-` prefix for SDK extensions?
If the spec ships a tighter set, SDKs that ship more resource categories than the spec lists would need either (a) a spec follow-up to add the missing values, or (b) an `x-` prefix convention for SDK-extended values. The proposed enum above includes everything the v6 SDK ships today; if any of these are deemed out-of-scope for the wire-level enum, the SDK would x-prefix them. Worth documenting the convention either way.
Reference
Context
Filing on behalf of the v6 SDK preview (PR #1005) which centralized the status-change taxonomy for the first time. Other implementations will hit this when they wire MCP Resources subscription on top of AdCP.