social.colibri.sync.subscribeEvents

colibri.social

Schema Diff

+224 -7

From

CID
bafyreifdlnjyvog...
Indexed At
2026-04-19 12:22 UTC
View this version

To

CID
bafyreihrarl3uu6...
Indexed At
2026-08-15 21:21 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

23 breaking changes, 81 non-breaking changes.

Breaking Changes (23)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember", src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.did", kind: "prop", name: Some("did") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember", src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.data", kind: "prop", name: Some("data") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember", src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.handle", kind: "prop", name: Some("handle") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember", src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.roles", kind: "prop", name: Some("roles") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent", src: "social.colibri.sync.subscribeEvents#voicePresenceEvent", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEvent.type", kind: "prop", name: Some("type") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent", src: "social.colibri.sync.subscribeEvents#voicePresenceEvent", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data", kind: "prop", name: Some("data") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.did", kind: "prop", name: Some("did") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.channel", kind: "prop", name: Some("channel") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.event", kind: "prop", name: Some("event") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.ttl", kind: "prop", name: Some("ttl") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.origin", kind: "prop", name: Some("origin") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.subject", kind: "prop", name: Some("subject") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.community", kind: "prop", name: Some("community") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.id", kind: "prop", name: Some("id") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event", kind: "prop", name: Some("event") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEvent", src: "social.colibri.sync.subscribeEvents#voiceStateEvent", tgt: "social.colibri.sync.subscribeEvents#voiceStateEvent.data", kind: "prop", name: Some("data") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEvent", src: "social.colibri.sync.subscribeEvents#voiceStateEvent", tgt: "social.colibri.sync.subscribeEvents#voiceStateEvent.type", kind: "prop", name: Some("type") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData", src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.channel", kind: "prop", name: Some("channel") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData", src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.did", kind: "prop", name: Some("did") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "social.colibri.sync.subscribeEvents#memberEventData", src: "social.colibri.sync.subscribeEvents#memberEventData", tgt: "social.colibri.sync.subscribeEvents#memberEventData.membership", kind: "prop", name: Some("membership") }
  • ConstraintAdded ConstraintAdded { vertex_id: "social.colibri.sync.subscribeEvents#categoryEventData.channelOrder:items", sort: "format", value: "at-uri" }
  • ConstraintTightened ConstraintTightened { vertex_id: "social.colibri.sync.subscribeEvents#memberEventData.event", sort: "knownValues", old_value: "[\"join\",\"leave\"]", new_value: "[\"join\",\"leave\",\"roles_updated\"]" }
  • ConstraintAdded ConstraintAdded { vertex_id: "social.colibri.sync.subscribeEvents#communityEventData.categoryOrder:items", sort: "format", value: "at-uri" }
Non-Breaking Changes (81)
  • AddedVertex AddedVertex { vertex_id: "lex:social.colibri.actor.defs#actorData" }
  • AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#memberEventMember" }
  • AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#typingEvent" }
  • AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#userEvent" }
  • AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voicePresenceEvent" }
  • AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData" }
  • AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voiceStateEvent" }
  • AddedVertex AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voiceStateEventData" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#channelEventData.category" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#communityEventData.banner" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#communityEventData.requiresApprovalToJoin" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.community" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant3" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.id" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.origin" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.subject" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.ttl" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventData.member" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventData.memberDid" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.data" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.did" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.handle" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.joinedAt" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.nickname" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.roles" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.roles:items" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.vc" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.vcDeafened" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.vcMuted" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#messageEventData.live" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent.type" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.channel" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.did" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.event" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEvent" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEvent.data" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEvent.type" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.channel" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.deafened" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.did" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.muted" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.serverDeafened" }
  • AddedVertex AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.serverMuted" }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#channelEventData", tgt: "social.colibri.sync.subscribeEvents#channelEventData.category", kind: "prop", name: Some("category") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#communityEventData", tgt: "social.colibri.sync.subscribeEvents#communityEventData.banner", kind: "prop", name: Some("banner") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#communityEventData", tgt: "social.colibri.sync.subscribeEvents#communityEventData.requiresApprovalToJoin", kind: "prop", name: Some("requiresApprovalToJoin") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#userEvent") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#typingEvent") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#voicePresenceEvent") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant3", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#voiceStateEvent") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0", tgt: "lex:social.colibri.sync.subscribeEvents#userEvent", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1", tgt: "lex:social.colibri.sync.subscribeEvents#typingEvent", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2", tgt: "lex:social.colibri.sync.subscribeEvents#voicePresenceEvent", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant3", tgt: "lex:social.colibri.sync.subscribeEvents#voiceStateEvent", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventData", tgt: "social.colibri.sync.subscribeEvents#memberEventData.member", kind: "prop", name: Some("member") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventData", tgt: "social.colibri.sync.subscribeEvents#memberEventData.memberDid", kind: "prop", name: Some("memberDid") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventData.member", tgt: "lex:social.colibri.sync.subscribeEvents#memberEventMember", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.joinedAt", kind: "prop", name: Some("joinedAt") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.nickname", kind: "prop", name: Some("nickname") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.vc", kind: "prop", name: Some("vc") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.vcDeafened", kind: "prop", name: Some("vcDeafened") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.vcMuted", kind: "prop", name: Some("vcMuted") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember.data", tgt: "lex:social.colibri.actor.defs#actorData", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember.roles", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.roles:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#messageEventData", tgt: "social.colibri.sync.subscribeEvents#messageEventData.live", kind: "prop", name: Some("live") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data", tgt: "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#voiceStateEvent.data", tgt: "lex:social.colibri.sync.subscribeEvents#voiceStateEventData", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.deafened", kind: "prop", name: Some("deafened") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.muted", kind: "prop", name: Some("muted") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.serverDeafened", kind: "prop", name: Some("serverDeafened") }
  • AddedEdge AddedEdge { src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.serverMuted", kind: "prop", name: Some("serverMuted") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "lex:social.colibri.actor.defs#actorData" }
  • AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#memberEventMember" }
  • AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#typingEvent" }
  • AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#userEvent" }
  • AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voicePresenceEvent" }
  • AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData" }
  • AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voiceStateEvent" }
  • AddedVertex { vertex_id: "lex:social.colibri.sync.subscribeEvents#voiceStateEventData" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#channelEventData.category" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#communityEventData.banner" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#communityEventData.requiresApprovalToJoin" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.community" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant3" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.id" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.origin" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.subject" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope.ttl" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventData.member" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventData.memberDid" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.data" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.did" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.handle" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.joinedAt" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.nickname" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.roles" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.roles:items" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.vc" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.vcDeafened" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember.vcMuted" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#messageEventData.live" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent.type" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.channel" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.did" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData.event" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEvent" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEvent.data" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEvent.type" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.channel" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.deafened" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.did" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.muted" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.serverDeafened" }
  • AddedVertex { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData.serverMuted" }

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "social.colibri.sync.subscribeEvents#memberEventData.event", sort: "knownValues", old_value: "[\"join\",\"leave\"]", new_value: "[\"join\",\"leave\",\"roles_updated\"]" }
  • ConstraintAdded ConstraintAdded { vertex_id: "social.colibri.sync.subscribeEvents#communityEventData.categoryOrder:items", sort: "format", value: "at-uri" }
  • ConstraintAdded ConstraintAdded { vertex_id: "social.colibri.sync.subscribeEvents#categoryEventData.channelOrder:items", sort: "format", value: "at-uri" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent", src: "social.colibri.sync.subscribeEvents#voicePresenceEvent", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEvent.type", kind: "prop", name: Some("type") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEvent", src: "social.colibri.sync.subscribeEvents#voicePresenceEvent", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data", kind: "prop", name: Some("data") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEvent", src: "social.colibri.sync.subscribeEvents#voiceStateEvent", tgt: "social.colibri.sync.subscribeEvents#voiceStateEvent.data", kind: "prop", name: Some("data") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEvent", src: "social.colibri.sync.subscribeEvents#voiceStateEvent", tgt: "social.colibri.sync.subscribeEvents#voiceStateEvent.type", kind: "prop", name: Some("type") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.did", kind: "prop", name: Some("did") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.channel", kind: "prop", name: Some("channel") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voicePresenceEventData", src: "social.colibri.sync.subscribeEvents#voicePresenceEventData", tgt: "social.colibri.sync.subscribeEvents#voicePresenceEventData.event", kind: "prop", name: Some("event") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember", src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.did", kind: "prop", name: Some("did") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember", src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.data", kind: "prop", name: Some("data") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember", src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.handle", kind: "prop", name: Some("handle") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#memberEventMember", src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.roles", kind: "prop", name: Some("roles") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData", src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.channel", kind: "prop", name: Some("channel") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#voiceStateEventData", src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.did", kind: "prop", name: Some("did") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.ttl", kind: "prop", name: Some("ttl") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.origin", kind: "prop", name: Some("origin") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.subject", kind: "prop", name: Some("subject") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.community", kind: "prop", name: Some("community") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.id", kind: "prop", name: Some("id") }
  • Breaking: RequiredEdgeAdded { vertex_id: "social.colibri.sync.subscribeEvents#humEnvelope", src: "social.colibri.sync.subscribeEvents#humEnvelope", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event", kind: "prop", name: Some("event") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "social.colibri.sync.subscribeEvents#memberEventData", src: "social.colibri.sync.subscribeEvents#memberEventData", tgt: "social.colibri.sync.subscribeEvents#memberEventData.membership", kind: "prop", name: Some("membership") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#channelEventData", tgt: "social.colibri.sync.subscribeEvents#channelEventData.category", kind: "prop", name: Some("category") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#communityEventData", tgt: "social.colibri.sync.subscribeEvents#communityEventData.banner", kind: "prop", name: Some("banner") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#communityEventData", tgt: "social.colibri.sync.subscribeEvents#communityEventData.requiresApprovalToJoin", kind: "prop", name: Some("requiresApprovalToJoin") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#userEvent") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#typingEvent") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#voicePresenceEvent") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event", tgt: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant3", kind: "variant", name: Some("lex:social.colibri.sync.subscribeEvents#voiceStateEvent") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant0", tgt: "lex:social.colibri.sync.subscribeEvents#userEvent", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant1", tgt: "lex:social.colibri.sync.subscribeEvents#typingEvent", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant2", tgt: "lex:social.colibri.sync.subscribeEvents#voicePresenceEvent", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#humEnvelope.event:variant3", tgt: "lex:social.colibri.sync.subscribeEvents#voiceStateEvent", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventData", tgt: "social.colibri.sync.subscribeEvents#memberEventData.member", kind: "prop", name: Some("member") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventData", tgt: "social.colibri.sync.subscribeEvents#memberEventData.memberDid", kind: "prop", name: Some("memberDid") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventData.member", tgt: "lex:social.colibri.sync.subscribeEvents#memberEventMember", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.joinedAt", kind: "prop", name: Some("joinedAt") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.nickname", kind: "prop", name: Some("nickname") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.vc", kind: "prop", name: Some("vc") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.vcDeafened", kind: "prop", name: Some("vcDeafened") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.vcMuted", kind: "prop", name: Some("vcMuted") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember.data", tgt: "lex:social.colibri.actor.defs#actorData", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#memberEventMember.roles", tgt: "social.colibri.sync.subscribeEvents#memberEventMember.roles:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#messageEventData", tgt: "social.colibri.sync.subscribeEvents#messageEventData.live", kind: "prop", name: Some("live") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#voicePresenceEvent.data", tgt: "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#voiceStateEvent.data", tgt: "lex:social.colibri.sync.subscribeEvents#voiceStateEventData", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.deafened", kind: "prop", name: Some("deafened") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.muted", kind: "prop", name: Some("muted") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.serverDeafened", kind: "prop", name: Some("serverDeafened") }
  • Non-breaking: AddedEdge { src: "social.colibri.sync.subscribeEvents#voiceStateEventData", tgt: "social.colibri.sync.subscribeEvents#voiceStateEventData.serverMuted", kind: "prop", name: Some("serverMuted") }
1 1
{
2 2
  "id": "social.colibri.sync.subscribeEvents",
3 3
  "defs": {
4 4
    "ack": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "type"
8 8
      ],
9 9
      "properties": {
10 10
        "type": {
11 11
          "type": "string",
12 12
          "const": "ack"
13 13
        }
14 14
      },
15 15
      "description": "Sent in response to a heartbeat message."
16 16
    },
17 17
    "main": {
18 18
      "type": "subscription",
19 19
      "errors": [
20 20
        {
21 -
          "name": "AuthRequired"
21 +
          "name": "AuthRequired",
22 +
          "description": "Missing, malformed, or unverifiable service auth."
22 23
        }
23 24
      ],
24 25
      "message": {
25 26
        "schema": {
26 27
          "refs": [
27 28
            "lex:social.colibri.sync.subscribeEvents#ack",
28 29
            "lex:social.colibri.sync.subscribeEvents#communityEvent",
29 30
            "lex:social.colibri.sync.subscribeEvents#memberEvent",
30 31
            "lex:social.colibri.sync.subscribeEvents#categoryEvent",
31 32
            "lex:social.colibri.sync.subscribeEvents#channelEvent",
32 33
            "lex:social.colibri.sync.subscribeEvents#messageEvent",
33 34
            "lex:social.colibri.sync.subscribeEvents#reactionEvent",
34 35
            "lex:social.colibri.sync.subscribeEvents#userEvent",
35 -
            "lex:social.colibri.sync.subscribeEvents#typingEvent"
36 +
            "lex:social.colibri.sync.subscribeEvents#typingEvent",
37 +
            "lex:social.colibri.sync.subscribeEvents#voicePresenceEvent",
38 +
            "lex:social.colibri.sync.subscribeEvents#voiceStateEvent"
36 39
          ],
37 40
          "type": "union"
38 41
        }
39 42
      },
40 43
      "description": "Opens a WebSocket stream that transmits relevant events for the authenticated user."
41 44
    },
42 45
    "userEvent": {
43 46
      "type": "object",
44 47
      "required": [
45 48
        "type",
46 49
        "data"
47 50
      ],
48 51
      "properties": {
49 52
        "data": {
50 53
          "ref": "lex:social.colibri.sync.subscribeEvents#userEventData",
51 54
          "type": "ref"
52 55
        },
53 56
        "type": {
54 57
          "type": "string",
55 58
          "const": "user_event"
56 59
        }
57 60
      },
58 61
      "description": "Sent when a known user has updated their profile or Colibri status."
59 62
    },
60 63
    "userStatus": {
61 64
      "type": "object",
62 65
      "required": [
63 66
        "state",
64 67
        "text"
65 68
      ],
66 69
      "properties": {
67 70
        "text": {
68 71
          "type": "string"
69 72
        },
70 73
        "emoji": {
71 74
          "type": "string"
72 75
        },
73 76
        "state": {
74 77
          "type": "string",
75 78
          "knownValues": [
76 79
            "online",
77 80
            "away",
78 81
            "dnd",
79 82
            "offline"
80 83
          ]
81 84
        }
82 85
      }
83 86
    },
87 +
    "humEnvelope": {
88 +
      "type": "object",
89 +
      "required": [
90 +
        "origin",
91 +
        "id",
92 +
        "ttl",
93 +
        "subject",
94 +
        "community",
95 +
        "event"
96 +
      ],
97 +
      "properties": {
98 +
        "id": {
99 +
          "type": "string",
100 +
          "maxLength": 64,
101 +
          "description": "Unique id for this Hum, used by receivers to dedup across relay paths."
102 +
        },
103 +
        "ttl": {
104 +
          "type": "integer",
105 +
          "maximum": 8,
106 +
          "minimum": 0,
107 +
          "description": "Remaining relay hops. Decremented on each forward; a Hum at ttl 0 is delivered locally but never relayed."
108 +
        },
109 +
        "event": {
110 +
          "refs": [
111 +
            "lex:social.colibri.sync.subscribeEvents#userEvent",
112 +
            "lex:social.colibri.sync.subscribeEvents#typingEvent",
113 +
            "lex:social.colibri.sync.subscribeEvents#voicePresenceEvent",
114 +
            "lex:social.colibri.sync.subscribeEvents#voiceStateEvent"
115 +
          ],
116 +
          "type": "union",
117 +
          "description": "Ephemeral event payload. Only off-protocol types are permitted."
118 +
        },
119 +
        "origin": {
120 +
          "type": "string",
121 +
          "format": "did",
122 +
          "description": "DID of the AppView that first emitted this Hum."
123 +
        },
124 +
        "subject": {
125 +
          "type": "string",
126 +
          "format": "did",
127 +
          "description": "The user this event is about. Receiver MUST verify origin equals subject's declared presenceService before trusting or relaying."
128 +
        },
129 +
        "community": {
130 +
          "type": "string",
131 +
          "format": "at-uri",
132 +
          "description": "Community the event is scoped to. Receiver relays to local clients only if they are members of this community."
133 +
        }
134 +
      },
135 +
      "description": "An off-protocol event relayed between AppViews. The authenticated sender (inter-service auth JWT: aud = receiving AppView did:web, lxm = social.colibri.sync.sendHum) is the origin of record; `origin` is echoed for relay/loop control and MUST match the JWT issuer. Only off-protocol event types are permitted — on-protocol events are never carried by a Hum and are derived from the firehose instead."
136 +
    },
84 137
    "memberEvent": {
85 138
      "type": "object",
86 139
      "required": [
87 140
        "type",
88 141
        "data"
89 142
      ],
90 143
      "properties": {
91 144
        "data": {
92 145
          "ref": "lex:social.colibri.sync.subscribeEvents#memberEventData",
93 146
          "type": "ref"
94 147
        },
95 148
        "type": {
96 149
          "type": "string",
97 150
          "const": "member_event"
98 151
        }
99 152
      },
100 153
      "description": "Sent when a member has joined or left a community."
101 154
    },
102 155
    "typingEvent": {
103 156
      "type": "object",
104 157
      "required": [
105 158
        "type",
106 159
        "data"
107 160
      ],
108 161
      "properties": {
109 162
        "data": {
110 163
          "ref": "lex:social.colibri.sync.subscribeEvents#typingEventData",
111 164
          "type": "ref"
112 165
        },
113 166
        "type": {
114 167
          "type": "string",
115 168
          "const": "typing_event"
116 169
        }
117 170
      },
118 171
      "description": "Sent when a user is typing in a channel the client is viewing."
119 172
    },
120 173
    "userProfile": {
121 174
      "type": "object",
122 175
      "required": [
123 176
        "handle"
124 177
      ],
125 178
      "properties": {
126 179
        "avatar": {
127 180
          "type": "blob"
128 181
        },
129 182
        "banner": {
130 183
          "type": "blob"
131 184
        },
132 185
        "handle": {
133 186
          "type": "string",
134 187
          "format": "handle"
135 188
        },
136 189
        "description": {
137 190
          "type": "string"
138 191
        },
139 192
        "displayName": {
140 193
          "type": "string"
141 194
        }
142 195
      }
143 196
    },
144 197
    "channelEvent": {
145 198
      "type": "object",
146 199
      "required": [
147 200
        "type",
148 201
        "data"
149 202
      ],
150 203
      "properties": {
151 204
        "data": {
152 205
          "ref": "lex:social.colibri.sync.subscribeEvents#channelEventData",
153 206
          "type": "ref"
154 207
        },
155 208
        "type": {
156 209
          "type": "string",
157 210
          "const": "channel_event"
158 211
        }
159 212
      },
160 213
      "description": "Sent when a channel has been created, updated, or deleted."
161 214
    },
162 215
    "messageEvent": {
163 216
      "type": "object",
164 217
      "required": [
165 218
        "type",
166 219
        "data"
167 220
      ],
168 221
      "properties": {
169 222
        "data": {
170 223
          "ref": "lex:social.colibri.sync.subscribeEvents#messageEventData",
171 224
          "type": "ref"
172 225
        },
173 226
        "type": {
174 227
          "type": "string",
175 228
          "const": "message_event"
176 229
        }
177 230
      },
178 231
      "description": "Sent when a message has been sent, edited, or deleted."
179 232
    },
180 233
    "categoryEvent": {
181 234
      "type": "object",
182 235
      "required": [
183 236
        "type",
184 237
        "data"
185 238
      ],
186 239
      "properties": {
187 240
        "data": {
188 241
          "ref": "lex:social.colibri.sync.subscribeEvents#categoryEventData",
189 242
          "type": "ref"
190 243
        },
191 244
        "type": {
192 245
          "type": "string",
193 246
          "const": "category_event"
194 247
        }
195 248
      },
196 249
      "description": "Sent when a category has been created, updated, or deleted."
197 250
    },
198 251
    "reactionEvent": {
199 252
      "type": "object",
200 253
      "required": [
201 254
        "type",
202 255
        "data"
203 256
      ],
204 257
      "properties": {
205 258
        "data": {
206 259
          "ref": "lex:social.colibri.sync.subscribeEvents#reactionEventData",
207 260
          "type": "ref"
208 261
        },
209 262
        "type": {
210 263
          "type": "string",
211 264
          "const": "reaction_event"
212 265
        }
213 266
      },
214 267
      "description": "Sent when a reaction has been added to or removed from a message."
215 268
    },
216 269
    "userEventData": {
217 270
      "type": "object",
218 271
      "required": [
219 272
        "did",
220 273
        "profile"
221 274
      ],
222 275
      "properties": {
223 276
        "did": {
224 277
          "type": "string",
225 278
          "format": "did"
226 279
        },
227 280
        "status": {
228 281
          "ref": "lex:social.colibri.sync.subscribeEvents#userStatus",
229 282
          "type": "ref"
230 283
        },
231 284
        "profile": {
232 285
          "ref": "lex:social.colibri.sync.subscribeEvents#userProfile",
233 286
          "type": "ref"
234 287
        }
235 288
      }
236 289
    },
237 290
    "communityEvent": {
238 291
      "type": "object",
239 292
      "required": [
240 293
        "type",
241 294
        "data"
242 295
      ],
243 296
      "properties": {
244 297
        "data": {
245 298
          "ref": "lex:social.colibri.sync.subscribeEvents#communityEventData",
246 299
          "type": "ref"
247 300
        },
248 301
        "type": {
249 302
          "type": "string",
250 303
          "const": "community_event"
251 304
        }
252 305
      },
253 306
      "description": "Sent when a community has been updated or deleted."
254 307
    },
255 308
    "memberEventData": {
256 309
      "type": "object",
257 310
      "required": [
258 311
        "event",
259 -
        "community",
260 -
        "membership"
312 +
        "community"
261 313
      ],
262 314
      "properties": {
263 315
        "event": {
264 316
          "type": "string",
265 317
          "knownValues": [
266 318
            "join",
267 -
            "leave"
319 +
            "leave",
320 +
            "roles_updated"
268 321
          ]
269 322
        },
323 +
        "member": {
324 +
          "ref": "lex:social.colibri.sync.subscribeEvents#memberEventMember",
325 +
          "type": "ref",
326 +
          "description": "The affected member, hydrated. Present on `join` and `roles_updated`."
327 +
        },
270 328
        "community": {
271 329
          "type": "string",
272 330
          "format": "at-uri"
273 331
        },
332 +
        "memberDid": {
333 +
          "type": "string",
334 +
          "format": "did",
335 +
          "description": "DID of the member who left. Present on `leave`."
336 +
        },
274 337
        "membership": {
275 338
          "type": "string",
276 339
          "format": "at-uri"
277 340
        }
278 341
      }
279 342
    },
280 343
    "typingEventData": {
281 344
      "type": "object",
282 345
      "required": [
283 346
        "event",
284 347
        "channel",
285 348
        "did"
286 349
      ],
287 350
      "properties": {
288 351
        "did": {
289 352
          "type": "string",
290 353
          "format": "did"
291 354
        },
292 355
        "event": {
293 356
          "type": "string",
294 357
          "knownValues": [
295 358
            "start",
296 359
            "stop"
297 360
          ]
298 361
        },
299 362
        "channel": {
300 363
          "type": "string",
301 364
          "format": "at-uri"
302 365
        }
303 366
      }
304 367
    },
368 +
    "voiceStateEvent": {
369 +
      "type": "object",
370 +
      "required": [
371 +
        "type",
372 +
        "data"
373 +
      ],
374 +
      "properties": {
375 +
        "data": {
376 +
          "ref": "lex:social.colibri.sync.subscribeEvents#voiceStateEventData",
377 +
          "type": "ref"
378 +
        },
379 +
        "type": {
380 +
          "type": "string",
381 +
          "const": "voice_state_event"
382 +
        }
383 +
      },
384 +
      "description": "Sent when a user's voice state changes within a voice channel. `muted` and `deafened` are the user's own choices; `serverMuted` and `serverDeafened` are moderator-applied and enforced by the SFU. Each field is absent when unchanged."
385 +
    },
305 386
    "channelEventData": {
306 387
      "type": "object",
307 388
      "required": [
308 389
        "event",
309 390
        "uri",
310 391
        "community"
311 392
      ],
312 393
      "properties": {
313 394
        "uri": {
314 395
          "type": "string",
315 396
          "format": "at-uri"
316 397
        },
317 398
        "name": {
318 399
          "type": "string"
319 400
        },
320 401
        "type": {
321 402
          "type": "string"
322 403
        },
323 404
        "event": {
324 405
          "type": "string",
325 406
          "knownValues": [
326 407
            "upsert",
327 408
            "delete"
328 409
          ]
329 410
        },
411 +
        "category": {
412 +
          "type": "string",
413 +
          "format": "at-uri"
414 +
        },
330 415
        "community": {
331 416
          "type": "string",
332 417
          "format": "at-uri"
333 418
        },
334 419
        "description": {
335 420
          "type": "string"
336 421
        }
337 422
      }
338 423
    },
339 424
    "messageEventData": {
340 425
      "type": "object",
341 426
      "required": [
342 427
        "event",
343 428
        "uri",
344 429
        "channel"
345 430
      ],
346 431
      "properties": {
347 432
        "uri": {
348 433
          "type": "string",
349 434
          "format": "at-uri"
350 435
        },
436 +
        "live": {
437 +
          "type": "boolean"
438 +
        },
351 439
        "text": {
352 440
          "type": "string"
353 441
        },
354 442
        "event": {
355 443
          "type": "string",
356 444
          "knownValues": [
357 445
            "upsert",
358 446
            "delete"
359 447
          ]
360 448
        },
361 449
        "edited": {
362 450
          "type": "boolean"
363 451
        },
364 452
        "facets": {
365 453
          "type": "array",
366 454
          "items": {
367 455
            "ref": "lex:social.colibri.richtext.facet",
368 456
            "type": "ref"
369 457
          }
370 458
        },
371 459
        "parent": {
372 460
          "type": "string",
373 461
          "format": "at-uri"
374 462
        },
375 463
        "channel": {
376 464
          "type": "string",
377 465
          "format": "at-uri"
378 466
        },
379 467
        "createdAt": {
380 468
          "type": "string",
381 469
          "format": "datetime"
382 470
        },
383 471
        "indexedAt": {
384 472
          "type": "string",
385 473
          "format": "datetime"
386 474
        },
387 475
        "attachments": {
388 476
          "type": "array",
389 477
          "items": {
390 478
            "type": "blob"
391 479
          }
392 480
        }
393 481
      }
394 482
    },
395 483
    "categoryEventData": {
396 484
      "type": "object",
397 485
      "required": [
398 486
        "event",
399 487
        "uri",
400 488
        "community"
401 489
      ],
402 490
      "properties": {
403 491
        "uri": {
404 492
          "type": "string",
405 493
          "format": "at-uri"
406 494
        },
407 495
        "name": {
408 496
          "type": "string"
409 497
        },
410 498
        "event": {
411 499
          "type": "string",
412 500
          "knownValues": [
413 501
            "upsert",
414 502
            "delete"
415 503
          ]
416 504
        },
417 505
        "community": {
418 506
          "type": "string",
419 507
          "format": "at-uri"
420 508
        },
421 509
        "channelOrder": {
422 510
          "type": "array",
423 511
          "items": {
424 -
            "type": "string"
512 +
            "type": "string",
513 +
            "format": "at-uri"
425 514
          }
426 515
        }
427 516
      }
428 517
    },
518 +
    "memberEventMember": {
519 +
      "type": "object",
520 +
      "required": [
521 +
        "did",
522 +
        "handle",
523 +
        "roles",
524 +
        "data"
525 +
      ],
526 +
      "properties": {
527 +
        "vc": {
528 +
          "type": "string",
529 +
          "format": "at-uri",
530 +
          "description": "AT-URI of the voice channel the member is currently connected to, if any. Only set when that channel belongs to `community`."
531 +
        },
532 +
        "did": {
533 +
          "type": "string",
534 +
          "format": "did"
535 +
        },
536 +
        "data": {
537 +
          "ref": "lex:social.colibri.actor.defs#actorData",
538 +
          "type": "ref"
539 +
        },
540 +
        "roles": {
541 +
          "type": "array",
542 +
          "items": {
543 +
            "type": "string",
544 +
            "format": "at-uri"
545 +
          }
546 +
        },
547 +
        "handle": {
548 +
          "type": "string",
549 +
          "format": "handle"
550 +
        },
551 +
        "vcMuted": {
552 +
          "type": "boolean"
553 +
        },
554 +
        "joinedAt": {
555 +
          "type": "string",
556 +
          "format": "datetime"
557 +
        },
558 +
        "nickname": {
559 +
          "type": "string"
560 +
        },
561 +
        "vcDeafened": {
562 +
          "type": "boolean"
563 +
        }
564 +
      },
565 +
      "description": "The affected member as carried by a member event. Mirrors `social.colibri.community.defs#memberView`, including the member's current voice channel state so a receiving client can place them in a voice channel without refetching."
566 +
    },
429 567
    "reactionEventData": {
430 568
      "type": "object",
431 569
      "required": [
432 570
        "event",
433 571
        "uri",
434 572
        "emoji",
435 573
        "target",
436 574
        "channel"
437 575
      ],
438 576
      "properties": {
439 577
        "uri": {
440 578
          "type": "string",
441 579
          "format": "at-uri"
442 580
        },
443 581
        "emoji": {
444 582
          "type": "string"
445 583
        },
446 584
        "event": {
447 585
          "type": "string",
448 586
          "knownValues": [
449 587
            "added",
450 588
            "removed"
451 589
          ]
452 590
        },
453 591
        "target": {
454 592
          "type": "string",
455 593
          "format": "at-uri"
456 594
        },
457 595
        "channel": {
458 596
          "type": "string",
459 597
          "format": "at-uri"
460 598
        }
461 599
      }
462 600
    },
463 601
    "communityEventData": {
464 602
      "type": "object",
465 603
      "required": [
466 604
        "event",
467 605
        "uri"
468 606
      ],
469 607
      "properties": {
470 608
        "uri": {
471 609
          "type": "string",
472 610
          "format": "at-uri"
473 611
        },
474 612
        "name": {
475 613
          "type": "string"
476 614
        },
477 615
        "event": {
478 616
          "type": "string",
479 617
          "knownValues": [
480 618
            "upsert",
481 619
            "delete"
482 620
          ]
483 621
        },
622 +
        "banner": {
623 +
          "type": "blob"
624 +
        },
484 625
        "picture": {
485 626
          "type": "blob"
486 627
        },
487 628
        "description": {
488 629
          "type": "string"
489 630
        },
490 631
        "categoryOrder": {
491 632
          "type": "array",
492 633
          "items": {
493 -
            "type": "string"
634 +
            "type": "string",
635 +
            "format": "at-uri"
494 636
          }
637 +
        },
638 +
        "requiresApprovalToJoin": {
639 +
          "type": "boolean"
640 +
        }
641 +
      }
642 +
    },
643 +
    "voicePresenceEvent": {
644 +
      "type": "object",
645 +
      "required": [
646 +
        "type",
647 +
        "data"
648 +
      ],
649 +
      "properties": {
650 +
        "data": {
651 +
          "ref": "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData",
652 +
          "type": "ref"
653 +
        },
654 +
        "type": {
655 +
          "type": "string",
656 +
          "const": "voice_presence_event"
657 +
        }
658 +
      },
659 +
      "description": "Sent when a user joins or leaves a voice channel."
660 +
    },
661 +
    "voiceStateEventData": {
662 +
      "type": "object",
663 +
      "required": [
664 +
        "channel",
665 +
        "did"
666 +
      ],
667 +
      "properties": {
668 +
        "did": {
669 +
          "type": "string",
670 +
          "format": "did"
671 +
        },
672 +
        "muted": {
673 +
          "type": "boolean"
674 +
        },
675 +
        "channel": {
676 +
          "type": "string",
677 +
          "format": "at-uri"
678 +
        },
679 +
        "deafened": {
680 +
          "type": "boolean"
681 +
        },
682 +
        "serverMuted": {
683 +
          "type": "boolean"
684 +
        },
685 +
        "serverDeafened": {
686 +
          "type": "boolean"
687 +
        }
688 +
      }
689 +
    },
690 +
    "voicePresenceEventData": {
691 +
      "type": "object",
692 +
      "required": [
693 +
        "event",
694 +
        "channel",
695 +
        "did"
696 +
      ],
697 +
      "properties": {
698 +
        "did": {
699 +
          "type": "string",
700 +
          "format": "did"
701 +
        },
702 +
        "event": {
703 +
          "type": "string",
704 +
          "knownValues": [
705 +
            "join",
706 +
            "leave"
707 +
          ]
708 +
        },
709 +
        "channel": {
710 +
          "type": "string",
711 +
          "format": "at-uri"
495 712
        }
496 713
      }
497 714
    }
498 715
  },
499 716
  "$type": "com.atproto.lexicon.schema",
500 717
  "lexicon": 1,
501 718
  "revision": 1
502 719
}

Compare Other Versions

Lexicon Garden

@