···4747 }, {
4848 description: 'Array of strings used to tag or categorize the document. Avoid prepending tags with hashtags.'
4949 }),
5050+ labels: lx.union(["com.atproto.label.defs#selfLabels"], {
5151+ description: "Self-label values for this post. Effectively content warnings.",
5252+ }),
5353+ links: lx.union([], {
5454+ description: "Array of values describing relationships between this document and external resources"
5555+ }),
5656+ contributors: lx.array({
5757+ type:"ref", ref:"#contributor"
5858+ }),
5059 publishedAt: lx.string({
5160 required: true,
5261 format: 'datetime',
···5867 })
5968 }),
6069 description: 'A document record representing a published article, blog post, or other content. Documents can belong to a publication or exist independently.'
7070+ }),
7171+ contributor: lx.object({
7272+ did: lx.string({format:"did", required: true}),
7373+ role: lx.string({
7474+ maxLength: 1000,
7575+ maxGraphemes: 100,
7676+ }),
7777+ displayName: lx.string({
7878+ maxLength: 1000,
7979+ maxGraphemes: 100,
8080+ })
6181 })
6282})
+21
src/lexicons/site.standard.graph.recommend.ts
···11+import { lx } from "prototypey";
22+33+export const siteStandardGraphRecommend = lx.lexicon(
44+ "site.standard.graph.recommend",
55+ {
66+ main: lx.record({
77+ key: "tid",
88+ type: "record",
99+ record: lx.object({
1010+ document: lx.string({
1111+ required: true,
1212+ format: "at-uri",
1313+ description:
1414+ "AT-URI reference to the document record being recommended (ex: at://did:plc:abc123/site.standard.document/xyz789).",
1515+ }),
1616+ createdAt: lx.string({ format: "datetime", required: true }),
1717+ }),
1818+ description: "Record declaring a recommendation of a document.",
1919+ }),
2020+ },
2121+);
+3
src/lexicons/site.standard.graph.subscription.ts
···99 required: true,
1010 format: 'at-uri',
1111 description: 'AT-URI reference to the publication record being subscribed to (ex: at://did:plc:abc123/site.standard.publication/xyz789).'
1212+ }),
1313+ createdAt: lx.string({
1414+ format: "datetime"
1215 })
1316 }),
1417 description: 'Record declaring a subscription to a publication.'
+5-3
src/lexicons/site.standard.publication.ts
···3333 }),
3434 preferences: lx.ref('#preferences', {
3535 description: 'Object containing platform specific preferences (with a few shared properties).'
3636+ }),
3737+ labels: lx.union(["com.atproto.label.defs#selfLabels"], {
3838+ description: "Self-label values for this publication. Effectively content warnings.",
3639 })
3740 }),
3841 description: 'A publication record representing a blog, website, or content platform. Publications serve as containers for documents and define the overall branding and settings.'
···4245 default: true,
4346 description: 'Boolean which decides whether the publication should appear in discovery feeds.'
4447 }),
4545- }, {
4646- description: 'Platform-specific preferences for the publication, including discovery and visibility settings.'
4747- })
4848+ }),
4949+4850})