TrackEnrichmentData
releaseDateis a string and notdatetimebecause it is a partial date: MusicBrainz answers1997,1997-06or1997-06-24depending on what is actually known about the release, and the SDK types it the same way. Adatetimewould reject the first two or invent a day and a time for them, which is a precision the source never claimed.
Attributes (17)
| Attribute | Type | Required | Description |
|---|---|---|---|
artist | string | No | |
title | string | No | |
album | string | No | |
year | number | No | |
releaseDate | string | No | |
genres | string[] | No | |
moods | string[] | No | |
biography | string | No | |
facts | string[] | No | Short lines, each independently speakable |
bpm | number | No | Not an integer: a tempo a source measured rather than declared is fractional |
musicalKey | string | No | |
label | string | No | |
isrc | string | No | |
artworkUrl | string | No | The provider's picture as the station serves it: art/<id> once cached, else the station's proxy art/source/<token>. Never the URL the plugin supplied |
externalIds | EnrichmentExternalId[] | No | |
links | EnrichmentLink[] | No | |
extra | Record<string, unknown> | No | What the plugin said that the SDK has no field for. Per provider only: the merged view drops it. Never holds a URL: any string with one is dropped when read, along with the key or array element that held it |