{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A talk, podcast appearance, workshop, stream, or similar event.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "date": {
            "description": "Start date of the talk/event. Date-only values are stored as midnight UTC.",
            "format": "datetime",
            "type": "string"
          },
          "demo": {
            "format": "uri",
            "type": "string"
          },
          "description": {
            "maxGraphemes": 5000,
            "maxLength": 50000,
            "type": "string"
          },
          "endDate": {
            "description": "End date for multi-day events. Optional.",
            "format": "datetime",
            "type": "string"
          },
          "group": {
            "description": "Strong-ref to a dev.roe.talkGroup record.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "image": {
            "description": "Event or conference logo, shown on the home page carousel.",
            "ref": "community.lexicon.app.defs#image",
            "type": "ref"
          },
          "link": {
            "description": "Event page, podcast episode URL, etc.",
            "format": "uri",
            "type": "string"
          },
          "location": {
            "description": "Free-form: city, country, or 'Online'.",
            "maxGraphemes": 512,
            "maxLength": 5120,
            "type": "string"
          },
          "repo": {
            "format": "uri",
            "type": "string"
          },
          "slides": {
            "description": "Identifier for slides; historically a GitHub release tag from danielroe/slides.",
            "maxLength": 512,
            "type": "string"
          },
          "source": {
            "description": "Conference name, meetup, podcast title, etc.",
            "maxGraphemes": 512,
            "maxLength": 5120,
            "type": "string"
          },
          "tags": {
            "items": {
              "maxGraphemes": 64,
              "maxLength": 640,
              "type": "string"
            },
            "maxLength": 32,
            "type": "array"
          },
          "title": {
            "description": "Optional for upcoming events with no announced title. Required for past talks unless the talk is part of a group.",
            "maxGraphemes": 512,
            "maxLength": 5120,
            "type": "string"
          },
          "type": {
            "knownValues": [
              "conference",
              "meetup",
              "podcast",
              "workshop",
              "stream",
              "talk"
            ],
            "type": "string"
          },
          "video": {
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "source",
          "date",
          "type",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "dev.roe.talk",
  "lexicon": 1
}
