···11+{
22+ "lexicon": 1,
33+ "id": "fm.teal.alpha.feed.defs",
44+ "defs": {
55+ "playView": {
66+ "type": "object",
77+ "required": [
88+ "trackName",
99+ "artists"
1010+ ],
1111+ "properties": {
1212+ "trackName": {
1313+ "type": "string",
1414+ "minLength": 1,
1515+ "maxLength": 256,
1616+ "maxGraphemes": 2560,
1717+ "description": "The name of the track"
1818+ },
1919+ "trackMbId": {
2020+ "type": "string",
2121+ "description": "The Musicbrainz ID of the track"
2222+ },
2323+ "recordingMbId": {
2424+ "type": "string",
2525+ "description": "The Musicbrainz recording ID of the track"
2626+ },
2727+ "duration": {
2828+ "type": "integer",
2929+ "description": "The length of the track in seconds"
3030+ },
3131+ "artists": {
3232+ "type": "array",
3333+ "items": {
3434+ "type": "ref",
3535+ "ref": "#artist"
3636+ },
3737+ "description": "Array of artists in order of original appearance."
3838+ },
3939+ "releaseName": {
4040+ "type": "string",
4141+ "maxLength": 256,
4242+ "maxGraphemes": 2560,
4343+ "description": "The name of the release/album"
4444+ },
4545+ "releaseMbId": {
4646+ "type": "string",
4747+ "description": "The Musicbrainz release ID"
4848+ },
4949+ "isrc": {
5050+ "type": "string",
5151+ "description": "The ISRC code associated with the recording"
5252+ },
5353+ "originUrl": {
5454+ "type": "string",
5555+ "description": "The URL associated with this track"
5656+ },
5757+ "musicServiceBaseDomain": {
5858+ "type": "string",
5959+ "description": "The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided."
6060+ },
6161+ "submissionClientAgent": {
6262+ "type": "string",
6363+ "maxLength": 256,
6464+ "maxGraphemes": 2560,
6565+ "description": "A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided."
6666+ },
6767+ "playedTime": {
6868+ "type": "string",
6969+ "format": "datetime",
7070+ "description": "The unix timestamp of when the track was played"
7171+ }
7272+ }
7373+ },
7474+ "artist": {
7575+ "type": "object",
7676+ "required": [
7777+ "artistName"
7878+ ],
7979+ "properties": {
8080+ "artistName": {
8181+ "type": "string",
8282+ "minLength": 1,
8383+ "maxLength": 256,
8484+ "maxGraphemes": 2560,
8585+ "description": "The name of the artist"
8686+ },
8787+ "artistMbId": {
8888+ "type": "string",
8989+ "description": "The Musicbrainz ID of the artist"
9090+ }
9191+ }
9292+ }
9393+ }
9494+}
+95
lexicons/fm/teal/alpha/feed/play.json
···11+{
22+ "lexicon": 1,
33+ "id": "fm.teal.alpha.feed.play",
44+ "defs": {
55+ "main": {
66+ "type": "record",
77+ "key": "tid",
88+ "record": {
99+ "type": "object",
1010+ "required": [
1111+ "trackName"
1212+ ],
1313+ "properties": {
1414+ "trackName": {
1515+ "type": "string",
1616+ "minLength": 1,
1717+ "maxLength": 256,
1818+ "maxGraphemes": 2560,
1919+ "description": "The name of the track"
2020+ },
2121+ "trackMbId": {
2222+ "type": "string",
2323+ "description": "The Musicbrainz ID of the track"
2424+ },
2525+ "recordingMbId": {
2626+ "type": "string",
2727+ "description": "The Musicbrainz recording ID of the track"
2828+ },
2929+ "duration": {
3030+ "type": "integer",
3131+ "description": "The length of the track in seconds"
3232+ },
3333+ "artistNames": {
3434+ "type": "array",
3535+ "items": {
3636+ "type": "string",
3737+ "minLength": 1,
3838+ "maxLength": 256,
3939+ "maxGraphemes": 2560
4040+ },
4141+ "description": "Array of artist names in order of original appearance. Prefer using 'artists'."
4242+ },
4343+ "artistMbIds": {
4444+ "type": "array",
4545+ "items": {
4646+ "type": "string"
4747+ },
4848+ "description": "Array of Musicbrainz artist IDs. Prefer using 'artists'."
4949+ },
5050+ "artists": {
5151+ "type": "array",
5252+ "items": {
5353+ "type": "ref",
5454+ "ref": "fm.teal.alpha.feed.defs#artist"
5555+ },
5656+ "description": "Array of artists in order of original appearance."
5757+ },
5858+ "releaseName": {
5959+ "type": "string",
6060+ "maxLength": 256,
6161+ "maxGraphemes": 2560,
6262+ "description": "The name of the release/album"
6363+ },
6464+ "releaseMbId": {
6565+ "type": "string",
6666+ "description": "The Musicbrainz release ID"
6767+ },
6868+ "isrc": {
6969+ "type": "string",
7070+ "description": "The ISRC code associated with the recording"
7171+ },
7272+ "originUrl": {
7373+ "type": "string",
7474+ "description": "The URL associated with this track"
7575+ },
7676+ "musicServiceBaseDomain": {
7777+ "type": "string",
7878+ "description": "The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if unavailable or not provided."
7979+ },
8080+ "submissionClientAgent": {
8181+ "type": "string",
8282+ "maxLength": 256,
8383+ "maxGraphemes": 2560,
8484+ "description": "A metadata string specifying the user agent where the format is `<app-identifier>/<version> (<kernel/OS-base>; <platform/OS-version>; <device-model>)`. If string is provided, only `app-identifier` and `version` are required. `app-identifier` is recommended to be in reverse dns format. Defaults to 'manual/unknown' if unavailable or not provided."
8585+ },
8686+ "playedTime": {
8787+ "type": "string",
8888+ "format": "datetime",
8989+ "description": "The unix timestamp of when the track was played"
9090+ }
9191+ }
9292+ }
9393+ }
9494+ }
9595+}