···1010export interface Record {
1111 /** The unix timestamp of when the item was recorded */
1212 time: string
1313+ /** The unix timestamp of the expiry time of the item. If unavailable, default to 10 minutes past the start time. */
1414+ expiry?: string
1315 item: FmTealAlphaFeedDefs.PlayView
1416 [k: string]: unknown
1517}
···1515 recordingMbId?: string
1616 /** The length of the track in seconds */
1717 duration?: number
1818- /** Array of artist names in order of original appearance. */
1919- artistNames: string[]
2020- /** Array of Musicbrainz artist IDs */
2121- artistMbIds?: string[]
1818+ /** Array of artists in order of original appearance. */
1919+ artists: Artist[]
2220 /** The name of the release/album */
2321 releaseName?: string
2422 /** The Musicbrainz release ID */
···4745export function validatePlayView(v: unknown): ValidationResult {
4846 return lexicons.validate('fm.teal.alpha.feed.defs#playView', v)
4947}
4848+4949+export interface Artist {
5050+ /** The name of the artist */
5151+ artistName: string
5252+ /** The Musicbrainz ID of the artist */
5353+ artistMbId?: string
5454+ [k: string]: unknown
5555+}
5656+5757+export function isArtist(v: unknown): v is Artist {
5858+ return (
5959+ isObj(v) &&
6060+ hasProp(v, '$type') &&
6161+ v.$type === 'fm.teal.alpha.feed.defs#artist'
6262+ )
6363+}
6464+6565+export function validateArtist(v: unknown): ValidationResult {
6666+ return lexicons.validate('fm.teal.alpha.feed.defs#artist', v)
6767+}
···55import { lexicons } from '../../../../../lexicons'
66import { isObj, hasProp } from '../../../../../util'
77import { CID } from 'multiformats/cid'
88+import * as FmTealAlphaFeedDefs from './defs'
89910export interface Record {
1011 /** The name of the track */
···1516 recordingMbId?: string
1617 /** The length of the track in seconds */
1718 duration?: number
1818- /** Array of artist names in order of original appearance. */
1919- artistNames: string[]
2020- /** Array of Musicbrainz artist IDs */
1919+ /** Array of artist names in order of original appearance. Prefer using 'artists'. */
2020+ artistNames?: string[]
2121+ /** Array of Musicbrainz artist IDs. Prefer using 'artists'. */
2122 artistMbIds?: string[]
2323+ /** Array of artists in order of original appearance. */
2424+ artists?: FmTealAlphaFeedDefs.Artist[]
2225 /** The name of the release/album */
2326 releaseName?: string
2427 /** The Musicbrainz release ID */