Update the collection JSON record representation so API clients receive a single named cover set instead of the current Presto-specific flat URL fields.
Context for implementer: MusicLibraryWeb.CollectionJSON currently builds cover_url, thumb_url, mini_cover_url, and micro_cover_url from MusicLibrary.Assets.Transform. The asset controller already accepts Transform.new(hash: record.cover_hash, width: width) for resized variants and Transform.new(hash: record.cover_hash) for the original/converted image. The required named variants are: original with no width transform, large at 1000 px width, medium at 460 px width, and small at 80 px width.
Acceptance Criteria
#1 Collection API responses that render records include a named cover object with original, large, medium, and small URLs.
#2 The generated URLs encode no width for original, 1000 px for large, 460 px for medium, and 80 px for small.
#3 Legacy flat cover URL fields are removed from the collection JSON contract unless a compatibility decision is explicitly documented during implementation.
#4 Controller tests assert the new cover contract for collection record responses.
#5 Production Hurl smoke coverage captures and requests a cover URL from the new contract.
Implementation Plan
Confirm every collection API action that renders a record flows through MusicLibraryWeb.CollectionJSON.record/1.
Replace the flat cover URL fields with a named cover object, using module-level width constants for large, medium, and small so the contract is easy to audit.
Update test/music_library_web/controllers/collection_controller_test.exs expected JSON to assert the four named variants and their encoded widths.
Update test/prod.hurl to capture a cover URL from the new cover object.
Run mix test test/music_library_web/controllers/collection_controller_test.exs and any focused asset-controller test if URL generation or transform behavior changes.