at main 3.2 kB view raw
1{ 2 "lexicon": 1, 3 "id": "fm.plyr.track", 4 "defs": { 5 "main": { 6 "type": "record", 7 "description": "A music track published to the AT Protocol network.", 8 "key": "tid", 9 "record": { 10 "type": "object", 11 "required": ["title", "artist", "audioUrl", "fileType", "createdAt"], 12 "properties": { 13 "title": { 14 "type": "string", 15 "description": "The title of the track.", 16 "minLength": 1, 17 "maxLength": 256 18 }, 19 "artist": { 20 "type": "string", 21 "description": "The artist name (display name of the uploader).", 22 "minLength": 1, 23 "maxLength": 256 24 }, 25 "audioUrl": { 26 "type": "string", 27 "format": "uri", 28 "description": "URL to the audio file (currently R2 CDN URL)." 29 }, 30 "fileType": { 31 "type": "string", 32 "description": "Audio file format extension (e.g., mp3, wav, flac).", 33 "minLength": 1, 34 "maxLength": 16 35 }, 36 "album": { 37 "type": "string", 38 "description": "Album name this track belongs to.", 39 "maxLength": 256 40 }, 41 "duration": { 42 "type": "integer", 43 "description": "Duration in seconds.", 44 "minimum": 0 45 }, 46 "features": { 47 "type": "array", 48 "description": "Featured artists on this track.", 49 "items": { 50 "type": "ref", 51 "ref": "#featuredArtist" 52 }, 53 "maxLength": 10 54 }, 55 "imageUrl": { 56 "type": "string", 57 "format": "uri", 58 "description": "URL to cover artwork image." 59 }, 60 "createdAt": { 61 "type": "string", 62 "format": "datetime", 63 "description": "Timestamp when the track was uploaded." 64 }, 65 "supportGate": { 66 "type": "ref", 67 "ref": "#supportGate", 68 "description": "If set, this track requires viewer to be a supporter of the artist via atprotofans." 69 } 70 } 71 } 72 }, 73 "supportGate": { 74 "type": "object", 75 "description": "Configuration for supporter-gated content.", 76 "required": ["type"], 77 "properties": { 78 "type": { 79 "type": "string", 80 "description": "The type of support required to access this content.", 81 "knownValues": ["any"] 82 } 83 } 84 }, 85 "featuredArtist": { 86 "type": "object", 87 "description": "A featured artist on a track.", 88 "required": ["did", "handle"], 89 "properties": { 90 "did": { 91 "type": "string", 92 "format": "did", 93 "description": "The DID of the featured artist." 94 }, 95 "handle": { 96 "type": "string", 97 "format": "handle", 98 "description": "The handle of the featured artist." 99 }, 100 "displayName": { 101 "type": "string", 102 "description": "Display name of the featured artist.", 103 "maxLength": 256 104 } 105 } 106 } 107 } 108}