org.algorave.set
Schema for an Algorave live coding set. Each record captures a live coding performance: performer, source code, metadata, and links.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | algorave.org |
| Indexed |
Checks
Validunlimited-stringdefs.codeMeta.properties.engineNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.codeMeta.properties.engineVersionNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.codeMeta.properties.languageNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.codeMeta.properties.languageVersionNo maxLength, maxGraphemes or format limits this string.large-stringdefs.codeMeta.properties.sourcemaxLength is over 20 KB. Use a blob for content that large.unlimited-stringdefs.eventMeta.properties.dateNo maxLength, maxGraphemes or format limits this string.missing-primary-descriptiondefs.mainThe record has no description.unlimited-stringdefs.main.record.properties.typeNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.metadataMeta.properties.licenseNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.metadataMeta.properties.supersedesNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.performer.properties.didNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.performer.properties.displayNameNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.performer.properties.handleNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.setMeta.properties.genre.itemsNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.setMeta.properties.tags.itemsNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"codeMeta": {
"properties": {
"dependencies": {
"description": "Additional dependencies (freeform key-value)",
"type": "object"
},
"engine": {
"description": "Audio engine used (e.g. superdirt, webaudio, scsynth)",
"type": "string"
},
"engineVersion": {
"description": "Version of the audio engine",
"type": "string"
},
"language": {
"description": "Live coding language (e.g. tidalcycles, strudel, sonic-pi)",
"type": "string"
},
"languageVersion": {
"description": "Version of the language",
"type": "string"
},
"seed": {
"description": "Random seed for reproducibility",
"nullable": true,
"type": "integer"
},
"source": {
"description": "The live coding source code",
"maxLength": 65536,
"type": "string"
}
},
"required": [
"language",
"source"
],
"type": "object"
},
"eventMeta": {
"properties": {
"date": {
"description": "Event date",
"type": "string"
},
"location": {
"description": "Event location",
"maxLength": 256,
"type": "string"
},
"name": {
"description": "Event name",
"maxLength": 256,
"type": "string"
},
"url": {
"description": "Event URL",
"format": "uri",
"maxLength": 2048,
"type": "string"
}
},
"type": "object"
},
"linksMeta": {
"properties": {
"github": {
"description": "URL to GitHub repository",
"format": "uri",
"maxLength": 2048,
"type": "string"
},
"social": {
"description": "URL to social media profile",
"format": "uri",
"maxLength": 2048,
"type": "string"
}
},
"type": "object"
},
"main": {
"key": "tid",
"record": {
"properties": {
"code": {
"description": "Source code and language details",
"ref": "#codeMeta",
"type": "ref"
},
"event": {
"description": "Event where the set was performed (optional)",
"ref": "#eventMeta",
"type": "ref"
},
"links": {
"description": "Social and source repository links (optional)",
"ref": "#linksMeta",
"type": "ref"
},
"metadata": {
"description": "Publication metadata (license, timestamps)",
"ref": "#metadataMeta",
"type": "ref"
},
"performer": {
"description": "The performer who created the set",
"ref": "#performer",
"type": "ref"
},
"recording": {
"description": "Links to audio/video recordings (optional)",
"ref": "#recordingMeta",
"type": "ref"
},
"set": {
"description": "Set metadata (title, BPM, genre, tags)",
"ref": "#setMeta",
"type": "ref"
},
"type": {
"const": "org.algorave.set",
"description": "NSID of the record",
"type": "string"
},
"version": {
"description": "Schema version",
"minimum": 1,
"type": "integer"
}
},
"required": [
"type",
"version",
"performer",
"set",
"code",
"metadata"
],
"type": "object"
},
"type": "record"
},
"metadataMeta": {
"properties": {
"createdAt": {
"description": "ISO 8601 creation timestamp",
"format": "datetime",
"type": "string"
},
"isLive": {
"default": true,
"description": "Whether the set was performed live",
"type": "boolean"
},
"license": {
"description": "License under which the set is published (e.g. CC-BY-SA-4.0)",
"type": "string"
},
"publishedAt": {
"description": "ISO 8601 publication timestamp",
"format": "datetime",
"type": "string"
},
"supersedes": {
"description": "AT URI of the set this one supersedes",
"nullable": true,
"type": "string"
}
},
"required": [
"license"
],
"type": "object"
},
"performer": {
"properties": {
"did": {
"description": "AT Protocol DID of the performer",
"type": "string"
},
"displayName": {
"description": "Display name of the performer",
"type": "string"
},
"handle": {
"description": "Handle of the performer",
"type": "string"
}
},
"required": [
"handle"
],
"type": "object"
},
"recordingMeta": {
"properties": {
"audio": {
"description": "URL to audio recording",
"format": "uri",
"maxLength": 2048,
"type": "string"
},
"video": {
"description": "URL to video recording",
"format": "uri",
"maxLength": 2048,
"type": "string"
}
},
"type": "object"
},
"setMeta": {
"properties": {
"bpm": {
"description": "Beats per minute",
"maximum": 300,
"minimum": 40,
"type": "integer"
},
"description": {
"description": "Description of the set",
"maxLength": 2048,
"type": "string"
},
"duration": {
"description": "Duration in seconds",
"minimum": 0,
"type": "integer"
},
"genre": {
"description": "Genre tags",
"items": {
"type": "string"
},
"type": "array"
},
"tags": {
"description": "Freeform tags",
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"description": "Title of the set",
"maxLength": 256,
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
}
},
"description": "Schema for an Algorave live coding set. Each record captures a live coding performance: performer, source code, metadata, and links.",
"id": "org.algorave.set",
"lexicon": 1,
"revision": 1,
"type": "record"
}