{
"id": "social.popfeed.feed.review",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"identifiers",
"creativeWorkType",
"rating",
"createdAt"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 50
}
},
"text": {
"type": "string",
"maxLength": 100000
},
"title": {
"type": "string",
"maxLength": 1000,
"description": "Title of the creative work."
},
"facets": {
"type": "array",
"items": {
"ref": "social.popfeed.richtext.facet",
"type": "ref"
},
"description": "Annotations of text (mentions, URLs, hashtags, etc)"
},
"genres": {
"type": "array",
"items": {
"type": "string",
"maxLength": 50
}
},
"poster": {
"type": "blob",
"accept": [
"image/*"
],
"maxSize": 2000000
},
"rating": {
"type": "integer",
"maximum": 10,
"minimum": 0
},
"backdrop": {
"type": "blob",
"accept": [
"image/*"
],
"maxSize": 4000000,
"description": "Backdrop image for the review post. Have not fully cut over yet so may not be shown"
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"isRevisit": {
"type": "boolean",
"description": "Indicates if the user has experienced this work before (re-watch, re-read, replay)."
},
"posterUrl": {
"type": "string",
"format": "uri",
"description": "Poster or cover image URL for the creative work. Soon to be deprecated in favor of the 'poster' blob field"
},
"crossPosts": {
"ref": "#crossPosts",
"type": "ref",
"description": "Information about cross-posting to other platforms."
},
"mainCredit": {
"type": "string",
"maxLength": 1000,
"description": "Main actor, director, author, or artist of the creative work."
},
"backdropUrl": {
"type": "string",
"format": "uri",
"description": "Backdrop image URL for the creative work. Soon to be deprecated in favor of the 'backdrop' blob field"
},
"identifiers": {
"ref": "#identifiers",
"type": "ref"
},
"releaseDate": {
"type": "string",
"format": "datetime",
"description": "Release date of the creative work."
},
"mainCreditRole": {
"enum": [
"director",
"author",
"artist",
"showrunner",
"lead_actor",
"creator",
"studio",
"publisher",
"developer",
"performer",
"network"
],
"type": "string",
"description": "The role of the main credit."
},
"containsSpoilers": {
"type": "boolean",
"description": "Indicates if the review contains spoilers."
},
"creativeWorkType": {
"enum": [
"movie",
"tv_show",
"video_game",
"album",
"book",
"book_series",
"episode",
"album",
"ep",
"tv_season",
"tv_episode",
"track"
],
"type": "string"
}
}
}
},
"crossPosts": {
"type": "object",
"properties": {
"bluesky": {
"type": "string",
"format": "uri",
"description": "The URI of the original Bluesky post being cross-posted."
},
"leaflet": {
"type": "string",
"format": "uri",
"description": "The URI of the original Leaflet post being cross-posted."
}
}
},
"identifiers": {
"type": "object",
"properties": {
"asin": {
"type": "string"
},
"mbId": {
"type": "string",
"description": "DEPRECATED - soon to be ignored"
},
"other": {
"type": "string"
},
"igdbId": {
"type": "string"
},
"imdbId": {
"type": "string"
},
"isbn10": {
"type": "string"
},
"isbn13": {
"type": "string"
},
"tmdbId": {
"type": "string"
},
"mbReleaseId": {
"type": "string",
"description": "MusicBrainz ID for specific releases (albums, EPs, tracks)"
},
"seasonNumber": {
"type": "integer",
"description": "Season number for TV shows or series"
},
"episodeNumber": {
"type": "integer",
"description": "Episode number for TV shows or series"
},
"tmdbTvSeriesId": {
"type": "string",
"description": "TMDb ID for TV series"
},
"parentMbReleaseId": {
"type": "string",
"description": "MusicBrainz ID for parent release (e.g., album for a track)"
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}