{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "One published version of an agave block or connector. A version never changes: the next version is a new record, and deleting this one withdraws it.",
      "key": "tid",
      "record": {
        "properties": {
          "archive": {
            "accept": [
              "application/x-tar"
            ],
            "description": "The directory as `git archive --format=tar <tree>` writes it: paths relative to the directory, regular files and directories only.",
            "maxSize": 2097152,
            "type": "blob"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "kind": {
            "description": "A block carries block.json and block.nix, a connector connector.json and SKILL.md. A slug keeps its kind.",
            "knownValues": [
              "block",
              "connector"
            ],
            "type": "string"
          },
          "manifest": {
            "description": "The text of the archive's block.json or connector.json, byte for byte.",
            "maxLength": 65536,
            "type": "string"
          },
          "slug": {
            "description": "The directory's name in the publisher's fleet: a lowercase letter, then up to 39 lowercase letters, digits and dashes. Equals the manifest's name.",
            "maxLength": 40,
            "minLength": 1,
            "type": "string"
          },
          "tree": {
            "description": "The directory's git tree id in lowercase hex: 40 digits for SHA-1, 64 for SHA-256. The archive's files hash to it.",
            "maxLength": 64,
            "minLength": 40,
            "type": "string"
          },
          "version": {
            "description": "Equals the manifest's version. Every version of a slug is newer than the ones before it, withdrawn ones included.",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "slug",
          "version",
          "kind",
          "archive",
          "tree",
          "manifest",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "technology.agave.blockVersion",
  "lexicon": 1
}
