app.tempomusic.feed.defs

lexicons.tempomusic.fan

{
  "id": "app.tempomusic.feed.defs",
  "defs": {
    "songRef": {
      "type": "object",
      "required": [
        "title",
        "artist"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "Optional DID of a verified Tempo record for this song (e.g. owned by a verified artist account)."
        },
        "title": {
          "type": "string",
          "maxLength": 512
        },
        "artist": {
          "ref": "#artistInfo",
          "type": "ref",
          "description": "The performing artist. Carries display name plus optional DID and external identifiers."
        },
        "albumTitle": {
          "type": "string",
          "maxLength": 512,
          "description": "Display hint for the album this song is from. Optional. For posts about the album itself as a subject, use albumRef instead."
        },
        "artworkUrl": {
          "type": "string",
          "format": "uri",
          "description": "Fallback artwork URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available."
        },
        "platformIds": {
          "type": "array",
          "items": {
            "ref": "#platformId",
            "type": "ref"
          },
          "description": "Commercial platform identifiers (Spotify track ID, Apple Music ID, etc.)."
        },
        "releaseYear": {
          "type": "integer",
          "maximum": 2100,
          "minimum": 1860,
          "description": "Year of release. For finer precision (full date, time), AppViews should resolve via platformIds against the music-catalogue rather than encoding it here."
        },
        "standardIds": {
          "type": "array",
          "items": {
            "ref": "#standardId",
            "type": "ref"
          },
          "description": "Canonical identifiers (ISRC, MusicBrainz recording MBID, etc.)."
        }
      },
      "description": "A specific song. Used as a post subject and as an inline music facet target."
    },
    "albumRef": {
      "type": "object",
      "required": [
        "title",
        "artist"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "Optional DID of a verified Tempo record for this album."
        },
        "title": {
          "type": "string",
          "maxLength": 512
        },
        "artist": {
          "ref": "#artistInfo",
          "type": "ref"
        },
        "artworkUrl": {
          "type": "string",
          "format": "uri",
          "description": "Fallback artwork URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available."
        },
        "platformIds": {
          "type": "array",
          "items": {
            "ref": "#platformId",
            "type": "ref"
          },
          "description": "Commercial platform identifiers (Spotify album ID, Apple Music album ID, etc.)."
        },
        "releaseYear": {
          "type": "integer",
          "maximum": 2100,
          "minimum": 1860,
          "description": "Year of release. For finer precision (full date, time), AppViews should resolve via platformIds against the music-catalogue rather than encoding it here."
        },
        "standardIds": {
          "type": "array",
          "items": {
            "ref": "#standardId",
            "type": "ref"
          },
          "description": "Canonical identifiers (UPC, MusicBrainz release MBID, etc.)."
        }
      },
      "description": "An album, EP, single, or any long-form release."
    },
    "postView": {
      "type": "object",
      "required": [
        "uri",
        "cid",
        "author",
        "record",
        "indexedAt"
      ],
      "properties": {
        "cid": {
          "type": "string",
          "format": "cid"
        },
        "uri": {
          "type": "string",
          "format": "at-uri"
        },
        "author": {
          "ref": "#authorView",
          "type": "ref"
        },
        "record": {
          "type": "unknown",
          "description": "The underlying app.tempomusic.feed.post record. Carried verbatim with its $type discriminator; lexicon-typed as unknown to match the AT Protocol convention for embedded records."
        },
        "viewer": {
          "ref": "#viewerState",
          "type": "ref",
          "description": "Viewer-relative projection. Absent when the request omitted the viewer parameter."
        },
        "indexedAt": {
          "type": "string",
          "format": "datetime",
          "description": "Timestamp at which the AppView indexed this post."
        },
        "likeCount": {
          "type": "integer",
          "minimum": 0,
          "description": "Number of likes indexed against this post."
        },
        "replyCount": {
          "type": "integer",
          "minimum": 0,
          "description": "Number of replies indexed against this post."
        }
      },
      "description": "AppView projection of an app.tempomusic.feed.post record."
    },
    "artistRef": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "Optional DID of the verified Tempo account for this artist."
        },
        "name": {
          "type": "string",
          "maxLength": 256
        },
        "artworkUrl": {
          "type": "string",
          "format": "uri",
          "description": "Fallback artist photo or avatar URL. AppViews should prefer artwork resolved via platformIds against the music-catalogue when available."
        },
        "platformIds": {
          "type": "array",
          "items": {
            "ref": "#platformId",
            "type": "ref"
          },
          "description": "Commercial platform identifiers (Spotify artist ID, Apple Music artist ID, etc.)."
        },
        "standardIds": {
          "type": "array",
          "items": {
            "ref": "#standardId",
            "type": "ref"
          },
          "description": "Canonical identifiers (MusicBrainz artist MBID, etc.)."
        }
      },
      "description": "A music artist as the standalone subject of a post (no specific release referenced). For artist as an attribute of a song or album, see #artistInfo."
    },
    "replyView": {
      "type": "object",
      "required": [
        "uri",
        "cid",
        "author",
        "record",
        "indexedAt"
      ],
      "properties": {
        "cid": {
          "type": "string",
          "format": "cid"
        },
        "uri": {
          "type": "string",
          "format": "at-uri"
        },
        "author": {
          "ref": "#authorView",
          "type": "ref"
        },
        "record": {
          "type": "unknown",
          "description": "The underlying app.tempomusic.feed.reply record. Carried verbatim with its $type discriminator; lexicon-typed as unknown to match the AT Protocol convention for embedded records."
        },
        "viewer": {
          "ref": "#viewerState",
          "type": "ref",
          "description": "Viewer-relative projection. Absent when the request omitted the viewer parameter."
        },
        "indexedAt": {
          "type": "string",
          "format": "datetime",
          "description": "Timestamp at which the AppView indexed this reply."
        },
        "likeCount": {
          "type": "integer",
          "minimum": 0,
          "description": "Number of likes indexed against this reply."
        }
      },
      "description": "AppView projection of an app.tempomusic.feed.reply record."
    },
    "artistInfo": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "Optional DID of the verified Tempo account for this artist."
        },
        "name": {
          "type": "string",
          "maxLength": 256
        },
        "platformIds": {
          "type": "array",
          "items": {
            "ref": "#platformId",
            "type": "ref"
          }
        },
        "standardIds": {
          "type": "array",
          "items": {
            "ref": "#standardId",
            "type": "ref"
          }
        }
      },
      "description": "Artist information embedded as an attribute of a song or album. Distinct from artistRef, which represents an artist as the standalone subject of a post. Notably omits artworkUrl, since artwork in this context belongs to the parent entity (the song or album)."
    },
    "authorView": {
      "type": "object",
      "required": [
        "did"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did"
        },
        "avatar": {
          "type": "string",
          "maxLength": 64,
          "description": "Avatar catalog identifier from the author's most recent actor.profile record. Bounds mirror app.tempomusic.actor.profile#catalogAvatar.id."
        },
        "displayName": {
          "type": "string",
          "maxLength": 180,
          "description": "Display name from the author's most recent actor.profile record. Bounds mirror app.tempomusic.actor.profile#displayName.",
          "maxGraphemes": 18
        },
        "avatarBackgroundColor": {
          "type": "string",
          "maxLength": 32,
          "description": "Avatar background color palette token from the author's most recent actor.profile record. Bounds mirror app.tempomusic.actor.profile#catalogAvatar.backgroundColor."
        }
      },
      "description": "AppView projection of an actor profile for use as a post or reply author."
    },
    "platformId": {
      "type": "object",
      "required": [
        "provider",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 256
        },
        "uri": {
          "type": "string",
          "format": "uri",
          "description": "Optional deep-link URI (e.g. spotify:track:xxx, https://music.apple.com/...)."
        },
        "provider": {
          "type": "string",
          "maxLength": 100,
          "description": "The platform issuing the identifier. knownValues is informational; AppViews should accept unknown providers and skip them.",
          "knownValues": [
            "spotify",
            "appleMusic",
            "deezer",
            "tidal",
            "amazonMusic",
            "youtubeMusic"
          ]
        }
      },
      "description": "An identifier issued by a commercial music platform. May change or disappear over time; multiple per entity are possible (regional variants, re-releases, remasters)."
    },
    "standardId": {
      "type": "object",
      "required": [
        "format",
        "value"
      ],
      "properties": {
        "value": {
          "type": "string",
          "maxLength": 128
        },
        "format": {
          "type": "string",
          "maxLength": 100,
          "description": "The identifier format. knownValues is informational; AppViews should accept unknown formats and skip them.",
          "knownValues": [
            "isrc",
            "iswc",
            "upc",
            "ean",
            "musicBrainz"
          ]
        }
      },
      "description": "A canonical, normative identifier issued by a standards body or community-curated database. Stable across platforms; intended for cross-service resolution and deduplication."
    },
    "viewerState": {
      "type": "object",
      "properties": {
        "like": {
          "type": "string",
          "format": "at-uri",
          "description": "AT-URI of the viewer's like record on this subject, when one exists."
        }
      },
      "description": "Per-viewer projection on a post or reply view."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against app.tempomusic.feed.defs

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:pxsuqmultto34oks44m2lgxm
CID
bafyreignxgxri34obk2uhsfb5z47vn2oiiivjsitzpjtmll2qlgiraildq
Indexed At
2026-08-24 09:06 UTC
AT-URI
at://did:plc:pxsuqmultto34oks44m2lgxm/com.atproto.lexicon.schema/app.tempomusic.feed.defs

Lexicon Garden

@