Problem
url-asset is ambiguous in practice. The schema (static/schemas/source/core/assets/url-asset.json) requires only asset_type and url; url_type is optional. As a result, a conformant asset can look like:
{ "asset_type": "url", "url": "https://..." }
…and a receiving agent cannot tell whether this is a clickthrough, a tracker pixel, a tracker script, or something else. There is no fallback rule in the spec.
Proposal
Require one of:
url_type present (preferred — explicit), or
- a shape-defining field that implies intent (e.g., dimensions for a pixel)
The simplest fix: make url_type required on url-asset. Current optionality doesn't buy us meaningful flexibility and pushes disambiguation onto buyer heuristics.
Impact
Buyer-side: removes the "everyone's just guessing" failure mode.
Seller-side: one additional required field on an already-small asset shape.
Back-compat: existing agents emitting url_type continue to work; agents omitting it need to start including it (straightforward migration).
Source
Reported by Nastassia Fulconis (Scope3) in early 3.0 feedback, 2026-04-23.
Problem
url-assetis ambiguous in practice. The schema (static/schemas/source/core/assets/url-asset.json) requires onlyasset_typeandurl;url_typeis optional. As a result, a conformant asset can look like:{ "asset_type": "url", "url": "https://..." }…and a receiving agent cannot tell whether this is a clickthrough, a tracker pixel, a tracker script, or something else. There is no fallback rule in the spec.
Proposal
Require one of:
url_typepresent (preferred — explicit), orThe simplest fix: make
url_typerequired onurl-asset. Current optionality doesn't buy us meaningful flexibility and pushes disambiguation onto buyer heuristics.Impact
Buyer-side: removes the "everyone's just guessing" failure mode.
Seller-side: one additional required field on an already-small asset shape.
Back-compat: existing agents emitting
url_typecontinue to work; agents omitting it need to start including it (straightforward migration).Source
Reported by Nastassia Fulconis (Scope3) in early 3.0 feedback, 2026-04-23.