fyi.opensocial.defs

lexicons.opensocial.fyi

Schema Diff

+257 -0

From

CID
bafyreiduf53blp7...
Indexed At
2026-09-24 00:10 UTC
View this version

To

CID
bafyreiegrwzxbpa...
Indexed At
2026-10-09 00:22 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

15 breaking changes, 101 non-breaking changes.

Breaking Changes (15)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#spaceView", src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.type", kind: "prop", name: Some("type") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#spaceView", src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.uri", kind: "prop", name: Some("uri") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#actorView", src: "fyi.opensocial.defs#actorView", tgt: "fyi.opensocial.defs#actorView.did", kind: "prop", name: Some("did") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#viewerState", src: "fyi.opensocial.defs#viewerState", tgt: "fyi.opensocial.defs#viewerState.member", kind: "prop", name: Some("member") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#viewerState", src: "fyi.opensocial.defs#viewerState", tgt: "fyi.opensocial.defs#viewerState.roles", kind: "prop", name: Some("roles") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#viewerState", src: "fyi.opensocial.defs#viewerState", tgt: "fyi.opensocial.defs#viewerState.actions", kind: "prop", name: Some("actions") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#memberView", src: "fyi.opensocial.defs#memberView", tgt: "fyi.opensocial.defs#memberView.roles", kind: "prop", name: Some("roles") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#memberView", src: "fyi.opensocial.defs#memberView", tgt: "fyi.opensocial.defs#memberView.actor", kind: "prop", name: Some("actor") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewBasic", src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.handle", kind: "prop", name: Some("handle") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewBasic", src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.did", kind: "prop", name: Some("did") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewDetailed", src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.members", kind: "prop", name: Some("members") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewDetailed", src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.did", kind: "prop", name: Some("did") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewDetailed", src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.handle", kind: "prop", name: Some("handle") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewDetailed", src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.meta", kind: "prop", name: Some("meta") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#roleView", src: "fyi.opensocial.defs#roleView", tgt: "fyi.opensocial.defs#roleView.key", kind: "prop", name: Some("key") }
Non-Breaking Changes (101)
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.access#roleScopes" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#actorView" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#actorView.avatar" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#actorView.description" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#actorView.did" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#actorView.displayName" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#actorView.handle" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupRule.createdAt" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupView.banner" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupView.deactivated" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.avatar" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.did" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.displayName" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.handle" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.url" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.avatar" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.banner" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.deactivated" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.description" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.did" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.displayName" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.handle" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.joinPolicy" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.members" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.meta" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.rules" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.rules:items" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.url" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.viewer" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#joinRequestView.actor" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#memberView" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#memberView.actor" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#memberView.roles" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#memberView.roles:items" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#roleView" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#roleView.description" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#roleView.key" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#roleView.name" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.credentialScopes" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.credentialScopes:items" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.name" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.readableBy" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.readableBy:items" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.type" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.uri" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.writableBy" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.writableBy:items" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.accepted" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.actions" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.actions:items" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.member" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.request" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.roles" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.roles:items" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.permissions#action" }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#actorView", tgt: "fyi.opensocial.defs#actorView.avatar", kind: "prop", name: Some("avatar") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#actorView", tgt: "fyi.opensocial.defs#actorView.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#actorView", tgt: "fyi.opensocial.defs#actorView.displayName", kind: "prop", name: Some("displayName") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#actorView", tgt: "fyi.opensocial.defs#actorView.handle", kind: "prop", name: Some("handle") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupRule", tgt: "fyi.opensocial.defs#groupRule.createdAt", kind: "prop", name: Some("createdAt") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupView", tgt: "fyi.opensocial.defs#groupView.banner", kind: "prop", name: Some("banner") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupView", tgt: "fyi.opensocial.defs#groupView.deactivated", kind: "prop", name: Some("deactivated") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.avatar", kind: "prop", name: Some("avatar") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.displayName", kind: "prop", name: Some("displayName") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.url", kind: "prop", name: Some("url") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.avatar", kind: "prop", name: Some("avatar") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.banner", kind: "prop", name: Some("banner") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.deactivated", kind: "prop", name: Some("deactivated") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.displayName", kind: "prop", name: Some("displayName") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.joinPolicy", kind: "prop", name: Some("joinPolicy") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.rules", kind: "prop", name: Some("rules") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.url", kind: "prop", name: Some("url") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.viewer", kind: "prop", name: Some("viewer") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed.rules", tgt: "fyi.opensocial.defs#groupViewDetailed.rules:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed.rules:items", tgt: "fyi.opensocial.defs#groupRule", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed.viewer", tgt: "fyi.opensocial.defs#viewerState", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#joinRequestView", tgt: "fyi.opensocial.defs#joinRequestView.actor", kind: "prop", name: Some("actor") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#joinRequestView.actor", tgt: "fyi.opensocial.defs#actorView", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#memberView.actor", tgt: "fyi.opensocial.defs#actorView", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#memberView.roles", tgt: "fyi.opensocial.defs#memberView.roles:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#roleView", tgt: "fyi.opensocial.defs#roleView.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#roleView", tgt: "fyi.opensocial.defs#roleView.name", kind: "prop", name: Some("name") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.credentialScopes", kind: "prop", name: Some("credentialScopes") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.name", kind: "prop", name: Some("name") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.readableBy", kind: "prop", name: Some("readableBy") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.writableBy", kind: "prop", name: Some("writableBy") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#spaceView.credentialScopes", tgt: "fyi.opensocial.defs#spaceView.credentialScopes:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#spaceView.credentialScopes:items", tgt: "fyi.opensocial.access#roleScopes", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#spaceView.readableBy", tgt: "fyi.opensocial.defs#spaceView.readableBy:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#spaceView.writableBy", tgt: "fyi.opensocial.defs#spaceView.writableBy:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#viewerState", tgt: "fyi.opensocial.defs#viewerState.accepted", kind: "prop", name: Some("accepted") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#viewerState", tgt: "fyi.opensocial.defs#viewerState.request", kind: "prop", name: Some("request") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#viewerState.actions", tgt: "fyi.opensocial.defs#viewerState.actions:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#viewerState.actions:items", tgt: "fyi.opensocial.permissions#action", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#viewerState.request", tgt: "fyi.opensocial.defs#joinRequestView", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.defs#viewerState.roles", tgt: "fyi.opensocial.defs#viewerState.roles:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "fyi.opensocial.access#roleScopes" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#actorView" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#actorView.avatar" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#actorView.description" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#actorView.did" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#actorView.displayName" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#actorView.handle" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupRule.createdAt" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupView.banner" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupView.deactivated" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.avatar" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.did" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.displayName" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.handle" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewBasic.url" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.avatar" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.banner" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.deactivated" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.description" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.did" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.displayName" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.handle" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.joinPolicy" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.members" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.meta" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.rules" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.rules:items" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.url" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#groupViewDetailed.viewer" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#joinRequestView.actor" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#memberView" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#memberView.actor" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#memberView.roles" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#memberView.roles:items" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#roleView" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#roleView.description" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#roleView.key" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#roleView.name" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.credentialScopes" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.credentialScopes:items" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.name" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.readableBy" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.readableBy:items" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.type" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.uri" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.writableBy" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#spaceView.writableBy:items" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.accepted" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.actions" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.actions:items" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.member" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.request" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.roles" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#viewerState.roles:items" }
  • AddedVertex { vertex_id: "fyi.opensocial.permissions#action" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#spaceView", src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.type", kind: "prop", name: Some("type") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#spaceView", src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.uri", kind: "prop", name: Some("uri") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#viewerState", src: "fyi.opensocial.defs#viewerState", tgt: "fyi.opensocial.defs#viewerState.member", kind: "prop", name: Some("member") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#viewerState", src: "fyi.opensocial.defs#viewerState", tgt: "fyi.opensocial.defs#viewerState.roles", kind: "prop", name: Some("roles") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#viewerState", src: "fyi.opensocial.defs#viewerState", tgt: "fyi.opensocial.defs#viewerState.actions", kind: "prop", name: Some("actions") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#actorView", src: "fyi.opensocial.defs#actorView", tgt: "fyi.opensocial.defs#actorView.did", kind: "prop", name: Some("did") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#roleView", src: "fyi.opensocial.defs#roleView", tgt: "fyi.opensocial.defs#roleView.key", kind: "prop", name: Some("key") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewDetailed", src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.members", kind: "prop", name: Some("members") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewDetailed", src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.did", kind: "prop", name: Some("did") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewDetailed", src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.handle", kind: "prop", name: Some("handle") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewDetailed", src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.meta", kind: "prop", name: Some("meta") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#memberView", src: "fyi.opensocial.defs#memberView", tgt: "fyi.opensocial.defs#memberView.roles", kind: "prop", name: Some("roles") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#memberView", src: "fyi.opensocial.defs#memberView", tgt: "fyi.opensocial.defs#memberView.actor", kind: "prop", name: Some("actor") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewBasic", src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.handle", kind: "prop", name: Some("handle") }
  • Breaking: RequiredEdgeAdded { vertex_id: "fyi.opensocial.defs#groupViewBasic", src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.did", kind: "prop", name: Some("did") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#actorView", tgt: "fyi.opensocial.defs#actorView.avatar", kind: "prop", name: Some("avatar") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#actorView", tgt: "fyi.opensocial.defs#actorView.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#actorView", tgt: "fyi.opensocial.defs#actorView.displayName", kind: "prop", name: Some("displayName") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#actorView", tgt: "fyi.opensocial.defs#actorView.handle", kind: "prop", name: Some("handle") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupRule", tgt: "fyi.opensocial.defs#groupRule.createdAt", kind: "prop", name: Some("createdAt") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupView", tgt: "fyi.opensocial.defs#groupView.banner", kind: "prop", name: Some("banner") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupView", tgt: "fyi.opensocial.defs#groupView.deactivated", kind: "prop", name: Some("deactivated") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.avatar", kind: "prop", name: Some("avatar") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.displayName", kind: "prop", name: Some("displayName") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewBasic", tgt: "fyi.opensocial.defs#groupViewBasic.url", kind: "prop", name: Some("url") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.avatar", kind: "prop", name: Some("avatar") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.banner", kind: "prop", name: Some("banner") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.deactivated", kind: "prop", name: Some("deactivated") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.displayName", kind: "prop", name: Some("displayName") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.joinPolicy", kind: "prop", name: Some("joinPolicy") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.rules", kind: "prop", name: Some("rules") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.url", kind: "prop", name: Some("url") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed", tgt: "fyi.opensocial.defs#groupViewDetailed.viewer", kind: "prop", name: Some("viewer") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed.rules", tgt: "fyi.opensocial.defs#groupViewDetailed.rules:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed.rules:items", tgt: "fyi.opensocial.defs#groupRule", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#groupViewDetailed.viewer", tgt: "fyi.opensocial.defs#viewerState", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#joinRequestView", tgt: "fyi.opensocial.defs#joinRequestView.actor", kind: "prop", name: Some("actor") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#joinRequestView.actor", tgt: "fyi.opensocial.defs#actorView", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#memberView.actor", tgt: "fyi.opensocial.defs#actorView", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#memberView.roles", tgt: "fyi.opensocial.defs#memberView.roles:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#roleView", tgt: "fyi.opensocial.defs#roleView.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#roleView", tgt: "fyi.opensocial.defs#roleView.name", kind: "prop", name: Some("name") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.credentialScopes", kind: "prop", name: Some("credentialScopes") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.name", kind: "prop", name: Some("name") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.readableBy", kind: "prop", name: Some("readableBy") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#spaceView", tgt: "fyi.opensocial.defs#spaceView.writableBy", kind: "prop", name: Some("writableBy") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#spaceView.credentialScopes", tgt: "fyi.opensocial.defs#spaceView.credentialScopes:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#spaceView.credentialScopes:items", tgt: "fyi.opensocial.access#roleScopes", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#spaceView.readableBy", tgt: "fyi.opensocial.defs#spaceView.readableBy:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#spaceView.writableBy", tgt: "fyi.opensocial.defs#spaceView.writableBy:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#viewerState", tgt: "fyi.opensocial.defs#viewerState.accepted", kind: "prop", name: Some("accepted") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#viewerState", tgt: "fyi.opensocial.defs#viewerState.request", kind: "prop", name: Some("request") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#viewerState.actions", tgt: "fyi.opensocial.defs#viewerState.actions:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#viewerState.actions:items", tgt: "fyi.opensocial.permissions#action", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#viewerState.request", tgt: "fyi.opensocial.defs#joinRequestView", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.defs#viewerState.roles", tgt: "fyi.opensocial.defs#viewerState.roles:items", kind: "items", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 +
    "actorView": {
5 +
      "description": "A person, as a view names them: their handle from their DID document, their name, words about themselves and face from the Bluesky profile in their own repo, or Grain's for somebody with none.",
6 +
      "properties": {
7 +
        "avatar": {
8 +
          "description": "Served renderably by the host, at /img/actor/{did}/{cid}.",
9 +
          "format": "uri",
10 +
          "type": "string"
11 +
        },
12 +
        "description": {
13 +
          "type": "string"
14 +
        },
15 +
        "did": {
16 +
          "format": "did",
17 +
          "type": "string"
18 +
        },
19 +
        "displayName": {
20 +
          "type": "string"
21 +
        },
22 +
        "handle": {
23 +
          "format": "handle",
24 +
          "type": "string"
25 +
        }
26 +
      },
27 +
      "required": [
28 +
        "did"
29 +
      ],
30 +
      "type": "object"
31 +
    },
4 32
    "eventView": {
5 33
      "properties": {
6 34
        "actor": {
7 35
          "format": "did",
8 36
          "type": "string"
9 37
        },
10 38
        "createdAt": {
11 39
          "format": "datetime",
12 40
          "type": "string"
13 41
        },
14 42
        "note": {
15 43
          "type": "string"
16 44
        },
17 45
        "reason": {
18 46
          "type": "string"
19 47
        },
20 48
        "reasonType": {
21 49
          "type": "string"
22 50
        },
23 51
        "type": {
24 52
          "knownValues": [
25 53
            "report",
26 54
            "label",
27 55
            "negate",
28 56
            "resolve",
29 57
            "escalate",
30 58
            "note",
31 59
            "eject"
32 60
          ],
33 61
          "type": "string"
34 62
        },
35 63
        "val": {
36 64
          "type": "string"
37 65
        }
38 66
      },
39 67
      "required": [
40 68
        "type",
41 69
        "createdAt"
42 70
      ],
43 71
      "type": "object"
44 72
    },
45 73
    "groupRule": {
46 74
      "properties": {
75 +
        "createdAt": {
76 +
          "format": "datetime",
77 +
          "type": "string"
78 +
        },
47 79
        "rkey": {
48 80
          "type": "string"
49 81
        },
50 82
        "text": {
51 83
          "type": "string"
52 84
        },
53 85
        "title": {
54 86
          "type": "string"
55 87
        }
56 88
      },
57 89
      "required": [
58 90
        "rkey",
59 91
        "title"
60 92
      ],
61 93
      "type": "object"
62 94
    },
63 95
    "groupView": {
64 96
      "properties": {
65 97
        "avatar": {
66 98
          "description": "CID of the avatar blob; the host serves it at /img/{did}/avatar.",
67 99
          "type": "string"
68 100
        },
101 +
        "banner": {
102 +
          "description": "CID of the banner blob; the host serves it at /img/{did}/banner.",
103 +
          "type": "string"
104 +
        },
105 +
        "deactivated": {
106 +
          "description": "Set while a steward has the group switched off. Its spaces cannot be read until one of the stewards who could switch it off switches it back on.",
107 +
          "type": "boolean"
108 +
        },
69 109
        "description": {
70 110
          "type": "string"
71 111
        },
72 112
        "did": {
73 113
          "format": "did",
74 114
          "type": "string"
75 115
        },
76 116
        "displayName": {
77 117
          "type": "string"
78 118
        },
79 119
        "handle": {
80 120
          "format": "handle",
81 121
          "type": "string"
82 122
        },
83 123
        "joinPolicy": {
84 124
          "description": "How new members get in, as the profile states it.",
85 125
          "type": "string"
86 126
        },
87 127
        "members": {
88 128
          "format": "space-ref",
89 129
          "type": "string"
90 130
        },
91 131
        "meta": {
92 132
          "format": "space-ref",
93 133
          "type": "string"
94 134
        },
95 135
        "rules": {
96 136
          "items": {
97 137
            "ref": "#groupRule",
98 138
            "type": "ref"
99 139
          },
100 140
          "type": "array"
101 141
        },
102 142
        "url": {
103 143
          "description": "The group's own site, if it keeps one.",
104 144
          "format": "uri",
105 145
          "type": "string"
106 146
        }
107 147
      },
108 148
      "required": [
109 149
        "did",
110 150
        "handle",
111 151
        "meta",
112 152
        "members"
113 153
      ],
114 154
      "type": "object"
115 155
    },
156 +
    "groupViewBasic": {
157 +
      "properties": {
158 +
        "avatar": {
159 +
          "description": "CID of the group's picture.",
160 +
          "type": "string"
161 +
        },
162 +
        "did": {
163 +
          "format": "did",
164 +
          "type": "string"
165 +
        },
166 +
        "displayName": {
167 +
          "type": "string"
168 +
        },
169 +
        "handle": {
170 +
          "format": "handle",
171 +
          "type": "string"
172 +
        },
173 +
        "url": {
174 +
          "description": "The group's own site, if not at its handle.",
175 +
          "format": "uri",
176 +
          "type": "string"
177 +
        }
178 +
      },
179 +
      "required": [
180 +
        "did",
181 +
        "handle"
182 +
      ],
183 +
      "type": "object"
184 +
    },
185 +
    "groupViewDetailed": {
186 +
      "description": "A group in full, as the viewer may see it. Profile fields and rules are present only when the viewer may read the meta space.",
187 +
      "properties": {
188 +
        "avatar": {
189 +
          "description": "CID of the avatar blob; the host serves it at /img/{did}/avatar.",
190 +
          "type": "string"
191 +
        },
192 +
        "banner": {
193 +
          "description": "CID of the banner blob; the host serves it at /img/{did}/banner.",
194 +
          "type": "string"
195 +
        },
196 +
        "deactivated": {
197 +
          "description": "Set while a steward has the group switched off. Its spaces cannot be read until one of the stewards who could switch it off switches it back on.",
198 +
          "type": "boolean"
199 +
        },
200 +
        "description": {
201 +
          "type": "string"
202 +
        },
203 +
        "did": {
204 +
          "format": "did",
205 +
          "type": "string"
206 +
        },
207 +
        "displayName": {
208 +
          "type": "string"
209 +
        },
210 +
        "handle": {
211 +
          "format": "handle",
212 +
          "type": "string"
213 +
        },
214 +
        "joinPolicy": {
215 +
          "description": "How new members get in, as the profile states it.",
216 +
          "type": "string"
217 +
        },
218 +
        "members": {
219 +
          "format": "space-ref",
220 +
          "type": "string"
221 +
        },
222 +
        "meta": {
223 +
          "format": "space-ref",
224 +
          "type": "string"
225 +
        },
226 +
        "rules": {
227 +
          "description": "In the order they are presented. Absent when the meta space is closed to the viewer.",
228 +
          "items": {
229 +
            "ref": "#groupRule",
230 +
            "type": "ref"
231 +
          },
232 +
          "type": "array"
233 +
        },
234 +
        "url": {
235 +
          "description": "The group's own site, if it keeps one.",
236 +
          "format": "uri",
237 +
          "type": "string"
238 +
        },
239 +
        "viewer": {
240 +
          "ref": "#viewerState",
241 +
          "type": "ref"
242 +
        }
243 +
      },
244 +
      "required": [
245 +
        "did",
246 +
        "handle",
247 +
        "meta",
248 +
        "members"
249 +
      ],
250 +
      "type": "object"
251 +
    },
116 252
    "inviteView": {
117 253
      "properties": {
118 254
        "createdAt": {
119 255
          "format": "datetime",
120 256
          "type": "string"
121 257
        },
122 258
        "expiresAt": {
123 259
          "format": "datetime",
124 260
          "type": "string"
125 261
        },
126 262
        "invitee": {
127 263
          "format": "did",
128 264
          "type": "string"
129 265
        },
130 266
        "message": {
131 267
          "type": "string"
132 268
        },
133 269
        "uri": {
134 270
          "format": "at-uri",
135 271
          "type": "string"
136 272
        }
137 273
      },
138 274
      "required": [
139 275
        "uri",
140 276
        "invitee",
141 277
        "createdAt"
142 278
      ],
143 279
      "type": "object"
144 280
    },
145 281
    "joinRequestView": {
146 282
      "properties": {
283 +
        "actor": {
284 +
          "description": "Who is asking, as a view names them.",
285 +
          "ref": "#actorView",
286 +
          "type": "ref"
287 +
        },
147 288
        "createdAt": {
148 289
          "format": "datetime",
149 290
          "type": "string"
150 291
        },
151 292
        "did": {
152 293
          "format": "did",
153 294
          "type": "string"
154 295
        },
155 296
        "invite": {
156 297
          "format": "at-uri",
157 298
          "type": "string"
158 299
        },
159 300
        "message": {
160 301
          "type": "string"
161 302
        }
162 303
      },
163 304
      "required": [
164 305
        "did",
165 306
        "createdAt"
166 307
      ],
167 308
      "type": "object"
168 309
    },
310 +
    "memberView": {
311 +
      "properties": {
312 +
        "actor": {
313 +
          "ref": "#actorView",
314 +
          "type": "ref"
315 +
        },
316 +
        "roles": {
317 +
          "items": {
318 +
            "type": "string"
319 +
          },
320 +
          "type": "array"
321 +
        }
322 +
      },
323 +
      "required": [
324 +
        "actor",
325 +
        "roles"
326 +
      ],
327 +
      "type": "object"
328 +
    },
329 +
    "roleView": {
330 +
      "properties": {
331 +
        "description": {
332 +
          "type": "string"
333 +
        },
334 +
        "key": {
335 +
          "description": "The role id: its record key.",
336 +
          "type": "string"
337 +
        },
338 +
        "name": {
339 +
          "type": "string"
340 +
        }
341 +
      },
342 +
      "required": [
343 +
        "key"
344 +
      ],
345 +
      "type": "object"
346 +
    },
347 +
    "spaceView": {
348 +
      "properties": {
349 +
        "credentialScopes": {
350 +
          "description": "What each role may write there as the group, when the viewer may read the space.",
351 +
          "items": {
352 +
            "ref": "fyi.opensocial.access#roleScopes",
353 +
            "type": "ref"
354 +
          },
355 +
          "type": "array"
356 +
        },
357 +
        "name": {
358 +
          "type": "string"
359 +
        },
360 +
        "readableBy": {
361 +
          "description": "The space's read gate, when the viewer may read the space.",
362 +
          "items": {
363 +
            "type": "string"
364 +
          },
365 +
          "type": "array"
366 +
        },
367 +
        "type": {
368 +
          "format": "nsid",
369 +
          "type": "string"
370 +
        },
371 +
        "uri": {
372 +
          "format": "space-ref",
373 +
          "type": "string"
374 +
        },
375 +
        "writableBy": {
376 +
          "description": "Who may write there in their own name, when the viewer may read the space. Absent is any member.",
377 +
          "items": {
378 +
            "type": "string"
379 +
          },
380 +
          "type": "array"
381 +
        }
382 +
      },
383 +
      "required": [
384 +
        "uri",
385 +
        "type"
386 +
      ],
387 +
      "type": "object"
388 +
    },
169 389
    "subjectView": {
170 390
      "properties": {
171 391
        "createdAt": {
172 392
          "format": "datetime",
173 393
          "type": "string"
174 394
        },
175 395
        "lastReportedAt": {
176 396
          "format": "datetime",
177 397
          "type": "string"
178 398
        },
179 399
        "reportCount": {
180 400
          "type": "integer"
181 401
        },
182 402
        "status": {
183 403
          "knownValues": [
184 404
            "open",
185 405
            "escalated",
186 406
            "resolved"
187 407
          ],
188 408
          "type": "string"
189 409
        },
190 410
        "subject": {
191 411
          "description": "A record's at-uri, or an account's DID.",
192 412
          "format": "uri",
193 413
          "type": "string"
194 414
        },
195 415
        "updatedAt": {
196 416
          "format": "datetime",
197 417
          "type": "string"
198 418
        }
199 419
      },
200 420
      "required": [
201 421
        "subject",
202 422
        "status",
203 423
        "createdAt"
204 424
      ],
205 425
      "type": "object"
426 +
    },
427 +
    "viewerState": {
428 +
      "description": "The requesting account's standing in the group. Only present for authed requests.",
429 +
      "properties": {
430 +
        "accepted": {
431 +
          "description": "For a member: whether their own acceptance is in the members space.",
432 +
          "type": "boolean"
433 +
        },
434 +
        "actions": {
435 +
          "description": "The union of actions across the viewer's roles: what the host would let them do.",
436 +
          "items": {
437 +
            "ref": "fyi.opensocial.permissions#action",
438 +
            "type": "ref"
439 +
          },
440 +
          "type": "array"
441 +
        },
442 +
        "member": {
443 +
          "type": "boolean"
444 +
        },
445 +
        "request": {
446 +
          "description": "The viewer's own pending request to join, when they are not a member and have one.",
447 +
          "ref": "#joinRequestView",
448 +
          "type": "ref"
449 +
        },
450 +
        "roles": {
451 +
          "items": {
452 +
            "type": "string"
453 +
          },
454 +
          "type": "array"
455 +
        }
456 +
      },
457 +
      "required": [
458 +
        "member",
459 +
        "roles",
460 +
        "actions"
461 +
      ],
462 +
      "type": "object"
206 463
    }
207 464
  },
208 465
  "id": "fyi.opensocial.defs",
209 466
  "lexicon": 1
210 467
}

Compare Other Versions

Lexicon Garden

@