atproto blogging
1{
2 "lexicon": 1,
3 "id": "sh.weaver.graph.defs",
4 "defs": {
5 "curatelist": {
6 "type": "token",
7 "description": "A curated collection of notebooks/entries for sharing."
8 },
9 "readinglist": {
10 "type": "token",
11 "description": "A personal reading list."
12 },
13 "serieslist": {
14 "type": "token",
15 "description": "An ordered series of related works (sequels, spin-offs)."
16 },
17 "tagView": {
18 "type": "object",
19 "description": "Aggregated view of a tag with usage statistics.",
20 "required": ["tag", "useCount"],
21 "properties": {
22 "tag": { "type": "string" },
23 "useCount": {
24 "type": "integer",
25 "description": "Total number of resources tagged with this tag."
26 },
27 "notebookCount": { "type": "integer" },
28 "entryCount": { "type": "integer" },
29 "recentUseCount": {
30 "type": "integer",
31 "description": "Uses in the last 30 days."
32 },
33 "trendingScore": {
34 "type": "integer",
35 "description": "Appview-computed trending score."
36 }
37 }
38 },
39 "tagApplicationView": {
40 "type": "object",
41 "description": "A single tag application with who applied it.",
42 "required": ["uri", "tag", "appliedBy", "createdAt"],
43 "properties": {
44 "uri": { "type": "string", "format": "at-uri" },
45 "tag": { "type": "string" },
46 "appliedBy": { "type": "ref", "ref": "sh.weaver.actor.defs#profileViewBasic" },
47 "createdAt": { "type": "string", "format": "datetime" }
48 }
49 },
50 "resourceTagsView": {
51 "type": "object",
52 "description": "All tags for a resource, grouped by source.",
53 "required": ["resource", "authorTags", "communityTags"],
54 "properties": {
55 "resource": { "type": "ref", "ref": "com.atproto.repo.strongRef" },
56 "authorTags": {
57 "type": "array",
58 "description": "Tags from the record itself (author-applied).",
59 "items": { "type": "string" }
60 },
61 "communityTags": {
62 "type": "array",
63 "description": "Aggregated community-applied tags with counts.",
64 "items": { "type": "ref", "ref": "#communityTagCount" }
65 },
66 "viewerAppliedTags": {
67 "type": "array",
68 "description": "Tags the current viewer has applied.",
69 "items": { "type": "string" }
70 }
71 }
72 },
73 "communityTagCount": {
74 "type": "object",
75 "description": "A community tag with how many people applied it.",
76 "required": ["tag", "count"],
77 "properties": {
78 "tag": { "type": "string" },
79 "count": { "type": "integer" }
80 }
81 },
82 "listView": {
83 "type": "object",
84 "description": "Hydrated view of a list.",
85 "required": ["uri", "cid", "creator", "name", "purpose", "itemCount", "indexedAt"],
86 "properties": {
87 "uri": { "type": "string", "format": "at-uri" },
88 "cid": { "type": "string", "format": "cid" },
89 "creator": { "type": "ref", "ref": "sh.weaver.actor.defs#profileViewBasic" },
90 "name": { "type": "string" },
91 "purpose": { "type": "ref", "ref": "#listPurpose" },
92 "description": { "type": "string" },
93 "avatar": { "type": "string", "format": "uri" },
94 "itemCount": { "type": "integer" },
95 "indexedAt": { "type": "string", "format": "datetime" },
96 "viewerSubscribed": { "type": "string", "format": "at-uri" }
97 }
98 },
99 "listPurpose": {
100 "type": "string",
101 "knownValues": [
102 "sh.weaver.graph.defs#curatelist",
103 "sh.weaver.graph.defs#readinglist",
104 "sh.weaver.graph.defs#serieslist"
105 ]
106 },
107 "listItemView": {
108 "type": "object",
109 "description": "An item in a list with hydrated subject.",
110 "required": ["uri", "subject"],
111 "properties": {
112 "uri": { "type": "string", "format": "at-uri" },
113 "subject": {
114 "type": "union",
115 "refs": ["sh.weaver.notebook.defs#notebookView", "sh.weaver.notebook.defs#entryView"]
116 },
117 "addedAt": { "type": "string", "format": "datetime" }
118 }
119 }
120 }
121}