Context
7.10 ships three v1-only write-side helpers as semantic narrowing, not deprecation:
- `legacyFormatIdsFromOptions`
- `tryLegacyFormatIdsFromOptions`
- `legacyFormatIdsForCapability`
(See `src/lib/v2/projection/write-side.ts`.)
These were renamed from their pre-release names (`formatIdsFromOptions` etc.) in PR #1896 to avoid the `@deprecated` + "supported indefinitely" contradiction the original PR shipped with. The new names communicate "v1-only path, not deprecated" cleanly.
Open question
Upstream adcontextprotocol/adcp#4857 proposes tightening `capability_id` on `format_options[]` from SHOULD to MUST at AdCP 4.0. When that lands:
- Every product's `format_options[]` entry will be required to carry a `capability_id`.
- `packageRefsForCapabilities` can replace every `legacy*` call site without DX loss.
- The `capability_ids_not_published` failure mode becomes a non-conforming-seller signal rather than a product-shape signal.
- The `legacy*` helpers become actually-deprecated rather than semantically-narrowed.
What to do
- Track adcp#4857 through the 4.0 prerelease cycle.
- When the spec MUST tightening lands, file a follow-up PR that:
- Marks the three `legacy*` helpers as `@deprecated` (real this time — tied to a removal target).
- Documents the removal horizon in the 8.0 → 9.0 → 4.x migration story.
- Adds a deprecation entry to the release notes.
- Before 4.0 GA, file a removal PR that drops the `legacy*` helpers per the deprecation horizon.
Not blocking 7.10
Planning / release-notes item, not a code change for now. The current `legacy*` shape is forward-compatible with eventual removal.
Context
7.10 ships three v1-only write-side helpers as semantic narrowing, not deprecation:
(See `src/lib/v2/projection/write-side.ts`.)
These were renamed from their pre-release names (`formatIdsFromOptions` etc.) in PR #1896 to avoid the `@deprecated` + "supported indefinitely" contradiction the original PR shipped with. The new names communicate "v1-only path, not deprecated" cleanly.
Open question
Upstream adcontextprotocol/adcp#4857 proposes tightening `capability_id` on `format_options[]` from SHOULD to MUST at AdCP 4.0. When that lands:
What to do
Not blocking 7.10
Planning / release-notes item, not a code change for now. The current `legacy*` shape is forward-compatible with eventual removal.