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
Kindrecord
Record keytid
Authorityalgorave.org
Indexed
cid bafyreih4xwyc3hefnyysikhelpdv2csb5dx2nv2b5zbmbscp56t5f3lyzu

Checks

Valid
JSONDownload
{
  "$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"
}