org.swappulse.voiceSpace

bridge.swappulse.org

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A live stream declaration.",
      "key": "tid",
      "record": {
        "properties": {
          "autoEndAt": {
            "format": "datetime",
            "type": "string"
          },
          "cardUrisDiscussed": {
            "items": {
              "type": "string"
            },
            "maxLength": 20,
            "type": "array"
          },
          "coHostDids": {
            "items": {
              "format": "did",
              "type": "string"
            },
            "maxLength": 3,
            "type": "array"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "maxLength": 1000,
            "type": "string"
          },
          "endedAt": {
            "format": "datetime",
            "type": "string"
          },
          "hostAvatar": {
            "format": "uri",
            "type": "string"
          },
          "hostDid": {
            "format": "did",
            "type": "string"
          },
          "hostHandle": {
            "type": "string"
          },
          "hostName": {
            "type": "string"
          },
          "plannedDurationMinutes": {
            "maximum": 480,
            "minimum": 15,
            "type": "integer"
          },
          "platform": {
            "knownValues": [
              "twitch",
              "youtube",
              "kick",
              "facebook_gaming",
              "rumble",
              "custom",
              "other"
            ],
            "type": "string"
          },
          "podcastEpisodeUri": {
            "format": "at-uri",
            "type": "string"
          },
          "recordingAvailable": {
            "type": "boolean"
          },
          "startedAt": {
            "format": "datetime",
            "type": "string"
          },
          "status": {
            "knownValues": [
              "scheduled",
              "live",
              "ended",
              "cancelled"
            ],
            "type": "string"
          },
          "streamUrl": {
            "format": "uri",
            "type": "string"
          },
          "title": {
            "maxLength": 120,
            "type": "string"
          },
          "topicTags": {
            "items": {
              "maxLength": 30,
              "type": "string"
            },
            "maxLength": 5,
            "type": "array"
          },
          "viewerCountEstimate": {
            "type": "integer"
          }
        },
        "required": [
          "title",
          "status",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "Manual live stream declaration, mirrored to AT Protocol as a real org.swappulse.voiceSpace record so live streams are discoverable across instances. A collector goes live by pasting an external stream URL.",
  "id": "org.swappulse.voiceSpace",
  "lexicon": 1,
  "revision": 1
}

Validate Record

Validate a record against org.swappulse.voiceSpace

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:jwoatauidzr4lollmro2gh35
CID
bafyreiap7x475gwubj67u533t6q6qxviuxulil6jibxr36ghjwoggwj24a
Indexed At
2026-08-16 00:57 UTC
AT-URI
at://did:plc:jwoatauidzr4lollmro2gh35/com.atproto.lexicon.schema/org.swappulse.voiceSpace

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Record announcing a livestream is happening

  • Record indicating a livestream is published and available for replication at a given address. By convention, the record key is streamer::server

  • Record created by a Streamplace broadcaster to indicate that they will be replicating a livestream. NYI

  • org.swappulse.podcastEpisode recordnot from the namespace authority

    A podcast episode (often derived from a voice space recording), mirrored to AT Protocol as a real org.swappulse.podcastEpisode record so episodes are portable and playable across instances.

Lexicon Garden

@