···11+{
22+ "lexicon": 1,
33+ "id": "fm.teal.alpha.play",
44+ "description": "This lexicon is in a not officially released state. It is subject to change. | Plays are submitted as a result of a user listening to a track. Plays should be submitted when a user has listened to a track for at least 30 seconds, or half of the track's duration up to 4 minutes, whichever is longest.",
55+ "defs": {
66+ "main": {
77+ "type": "record",
88+ "key": "tid",
99+ "record": {
1010+ "type": "object",
1111+ "required": [
1212+ "trackName",
1313+ "artistName",
1414+ "isTracked"
1515+ ],
1616+ "properties": {
1717+ "trackName": {
1818+ "type": "string",
1919+ "minLength": 1,
2020+ "maxLength": 256,
2121+ "description": "The name of the track"
2222+ },
2323+ "trackMbid": {
2424+ "type": "string",
2525+2626+ "description": "The Musicbrainz ID of the track"
2727+ },
2828+ "recordingMbid": {
2929+ "type": "string",
3030+3131+ "description": "The Musicbrainz recording ID of the track"
3232+ },
3333+ "duration": {
3434+ "type": "integer",
3535+ "description": "The length of the track in seconds"
3636+ },
3737+ "artistName": {
3838+ "type": "string",
3939+ "minLength": 1,
4040+ "maxLength": 256,
4141+ "description": "The name of the artist"
4242+ },
4343+ "artistMbids": {
4444+ "type": "array",
4545+ "items": {
4646+ "type": "string"
4747+ },
4848+ "description": "Array of Musicbrainz artist IDs"
4949+ },
5050+ "releaseName": {
5151+ "type": "string",
5252+ "maxLength": 256,
5353+ "description": "The name of the release/album"
5454+ },
5555+ "releaseMbid": {
5656+ "type": "string",
5757+ "description": "The Musicbrainz release ID"
5858+ },
5959+ "isrc": {
6060+ "type": "string",
6161+ "description": "The ISRC code associated with the recording"
6262+ },
6363+ "originUrl": {
6464+ "type": "string",
6565+ "description": "The URL associated with this track"
6666+ },
6767+ "musicServiceBaseDomain": {
6868+ "type": "string",
6969+ "description": "The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com."
7070+ },
7171+ "submissionClientAgent": {
7272+ "type": "string",
7373+ "maxLength": 256,
7474+ "description": "A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b"
7575+ },
7676+ "isTracked": {
7777+ "type": "boolean",
7878+ "description": "Whether or not this play is being tracked. If false, the play will not be shown past the length of the track, or 10 minutes, whichever is shorter. It is expected the App View or the user delete the play after this time."
7979+ },
8080+ "playedTime": {
8181+ "type": "string",
8282+ "format": "datetime",
8383+ "description": "The unix timestamp of when the track was played"
8484+ }
8585+ }
8686+ }
8787+ }
8888+ }
8989+ }