{ "lexicon": 1, "id": "sh.weaver.actor.defs", "defs": { "profileView": { "type": "object", "required": ["did", "handle"], "properties": { "did": { "type": "string", "format": "did" }, "handle": { "type": "string", "format": "handle" }, "displayName": { "type": "string", "maxGraphemes": 64, "maxLength": 640 }, "description": { "type": "string", "maxGraphemes": 1024, "maxLength": 10240 }, "avatar": { "type": "string", "format": "uri" }, "banner": { "type": "string", "format": "uri" }, "location": { "type": "string", "description": "Free-form location text.", "maxGraphemes": 40, "maxLength": 400 }, "links": { "type": "array", "minLength": 0, "maxLength": 5, "items": { "type": "string", "description": "Any URI, intended for social profiles or websites, can be used to link DIDs/AT-URIs too.", "format": "uri" } }, "indexedAt": { "type": "string", "format": "datetime" }, "createdAt": { "type": "string", "format": "datetime" }, "pinned": { "description": "Notebooks or other records pinned for display.", "type": "ref", "ref": "#pinnedList" }, "bluesky": { "type": "boolean", "description": "Include link to this account on Bluesky." }, "tangled": { "type": "boolean", "description": "Include link to this account on Tangled." }, "streamplace": { "type": "boolean", "description": "Include link to this account on stream.place." }, "labels": { "type": "array", "items": { "type": "ref", "ref": "com.atproto.label.defs#label" } }, "pronouns": { "type": "ref", "description": "Pronouns to use in user-generated content.", "ref": "#pronounsList" }, "subscriberCount": { "type": "integer" }, "subscribedCount": { "type": "integer" } } }, "profileViewBasic": { "type": "object", "required": ["did", "handle"], "properties": { "did": { "type": "string", "format": "did" }, "handle": { "type": "string", "format": "handle" }, "displayName": { "type": "string", "maxGraphemes": 64, "maxLength": 640 }, "avatar": { "type": "string", "format": "uri" }, "indexedAt": { "type": "string", "format": "datetime" }, "createdAt": { "type": "string", "format": "datetime" }, "labels": { "type": "array", "items": { "type": "ref", "ref": "com.atproto.label.defs#label" } }, "pronouns": { "type": "ref", "description": "Pronouns to use in user-generated content.", "ref": "#pronounsList" } } }, "subscribedNotebook": { "type": "object", "description": "A notebook the viewer subscribes to without a global follow.", "required": ["uri"], "properties": { "uri": { "type": "string", "format": "at-uri" }, "title": { "type": "string" }, "path": { "type": "string" } } }, "viewerState": { "type": "object", "description": "Viewer's relationship state with an actor (detailed version).", "properties": { "following": { "type": "string", "format": "at-uri" }, "followedBy": { "type": "string", "format": "at-uri" }, "followRequested": { "type": "string", "format": "at-uri" }, "followRequestedBy": { "type": "string", "format": "at-uri" }, "subscribedNotebooks": { "type": "array", "items": { "type": "ref", "ref": "#subscribedNotebook" } }, "muted": { "type": "string", "format": "at-uri" }, "blocked": { "type": "string", "format": "at-uri" }, "blockedBy": { "type": "boolean" } } }, "viewerStateBasic": { "type": "object", "description": "Viewer's relationship state with an actor (basic version).", "properties": { "following": { "type": "string", "format": "at-uri" }, "followedBy": { "type": "string", "format": "at-uri" }, "followRequested": { "type": "string", "format": "at-uri" }, "followRequestedBy": { "type": "string", "format": "at-uri" }, "subscribedNotebookCount": { "type": "integer" }, "muted": { "type": "string", "format": "at-uri" }, "blocked": { "type": "string", "format": "at-uri" }, "blockedBy": { "type": "boolean" } } }, "profileDataView": { "type": "object", "required": ["inner"], "properties": { "inner": { "type": "union", "refs": ["#profileView", "app.bsky.actor.defs#profileViewDetailed", "#tangledProfileView"] }, "viewer": { "type": "ref", "ref": "#viewerState" }, "notebookCount": { "type": "integer" }, "entryCount": { "type": "integer" }, "collaborationCount": { "type": "integer" }, "followerCount": { "type": "integer" }, "followingCount": { "type": "integer" } } }, "profileDataViewBasic": { "type": "object", "required": ["inner"], "properties": { "inner": { "type": "union", "refs": ["#profileViewBasic", "app.bsky.actor.defs#profileViewBasic", "#tangledProfileView"] }, "viewer": { "type": "ref", "ref": "#viewerStateBasic" }, "followerCount": { "type": "integer" }, "followingCount": { "type": "integer" } } }, "author": { "type": "object", "description": "A single author in a Weaver notebook.", "required": ["did"], "properties": { "did": { "type": "string", "format": "did" }, "signature": { "type": "bytes", "description": "signed bytes of the corresponding notebook record in the author's repo" } } }, "pronounsList": { "type": "array", "items": { "type": "string", "maxLength": 500, "maxGraphemes": 50, "knownValues": [ "she/her", "he/him", "they/them", "it/its", "she/they", "he/they", "they/he", "they/she", "any/all" ] }, "maxLength": 5 }, "pinnedList": { "type": "array", "items": { "type": "ref", "ref": "com.atproto.repo.strongRef" } }, "tangledProfileView": { "type": "object", "required": ["bluesky", "did", "handle"], "properties": { "did": { "type": "string", "format": "did" }, "handle": { "type": "string", "format": "handle" }, "description": { "type": "string", "description": "Free-form profile description text.", "maxGraphemes": 256, "maxLength": 2560 }, "links": { "type": "array", "minLength": 0, "maxLength": 5, "items": { "type": "string", "description": "Any URI, intended for social profiles or websites, can be used to link DIDs/AT-URIs too.", "format": "uri" } }, "stats": { "type": "array", "minLength": 0, "maxLength": 2, "items": { "type": "string", "description": "Vanity stats.", "enum": [ "merged-pull-request-count", "closed-pull-request-count", "open-pull-request-count", "open-issue-count", "closed-issue-count", "repository-count" ] } }, "bluesky": { "type": "boolean", "description": "Include link to this account on Bluesky." }, "location": { "type": "string", "description": "Free-form location text.", "maxGraphemes": 40, "maxLength": 400 }, "pinnedRepositories": { "type": "array", "description": "Any ATURI, it is up to appviews to validate these fields.", "minLength": 0, "maxLength": 6, "items": { "type": "string", "format": "at-uri" } } } } } }