···11+{
22+ "lexicon": 1,
33+ "id": "network.cosmik.card",
44+ "description": "A single record type for all cards.",
55+ "defs": {
66+ "main": {
77+ "type": "record",
88+ "description": "A record representing a card with content.",
99+ "key": "tid",
1010+ "record": {
1111+ "type": "object",
1212+ "required": ["type", "content"],
1313+ "properties": {
1414+ "type": {
1515+ "type": "string",
1616+ "description": "The type of card",
1717+ "knownValues": ["URL", "NOTE"]
1818+ },
1919+ "content": {
2020+ "type": "union",
2121+ "description": "The specific content of the card, determined by the card type.",
2222+ "refs": ["#urlContent", "#noteContent"]
2323+ },
2424+ "url": {
2525+ "type": "string",
2626+ "format": "uri",
2727+ "description": "Optional URL associated with the card. Required for URL cards, optional for NOTE cards."
2828+ },
2929+ "parentCard": {
3030+ "type": "ref",
3131+ "description": "Optional strong reference to a parent card (for NOTE cards).",
3232+ "ref": "com.atproto.repo.strongRef"
3333+ },
3434+ "createdAt": {
3535+ "type": "string",
3636+ "format": "datetime",
3737+ "description": "Timestamp when this card was created (usually set by PDS)."
3838+ },
3939+ "originalCard": {
4040+ "type": "ref",
4141+ "description": "Optional strong reference to the original card (for NOTE cards).",
4242+ "ref": "com.atproto.repo.strongRef"
4343+ },
4444+ "provenance": {
4545+ "type": "ref",
4646+ "description": "Optional provenance information for this card.",
4747+ "ref": "network.cosmik.defs#provenance"
4848+ }
4949+ }
5050+ }
5151+ },
5252+ "urlContent": {
5353+ "type": "object",
5454+ "description": "Content structure for a URL card.",
5555+ "required": ["url"],
5656+ "properties": {
5757+ "url": {
5858+ "type": "string",
5959+ "format": "uri",
6060+ "description": "The URL being saved"
6161+ },
6262+ "metadata": {
6363+ "type": "ref",
6464+ "ref": "#urlMetadata",
6565+ "description": "Optional metadata about the URL"
6666+ }
6767+ }
6868+ },
6969+ "noteContent": {
7070+ "type": "object",
7171+ "description": "Content structure for a note card.",
7272+ "required": ["text"],
7373+ "properties": {
7474+ "text": {
7575+ "type": "string",
7676+ "description": "The note text content",
7777+ "maxLength": 10000
7878+ }
7979+ }
8080+ },
8181+ "urlMetadata": {
8282+ "type": "object",
8383+ "description": "Metadata about a URL.",
8484+ "properties": {
8585+ "title": {
8686+ "type": "string",
8787+ "description": "Title of the page"
8888+ },
8989+ "description": {
9090+ "type": "string",
9191+ "description": "Description of the page"
9292+ },
9393+ "author": {
9494+ "type": "string",
9595+ "description": "Author of the content"
9696+ },
9797+ "publishedDate": {
9898+ "type": "string",
9999+ "format": "datetime",
100100+ "description": "When the content was published"
101101+ },
102102+ "siteName": {
103103+ "type": "string",
104104+ "description": "Name of the site"
105105+ },
106106+ "imageUrl": {
107107+ "type": "string",
108108+ "format": "uri",
109109+ "description": "URL of a representative image"
110110+ },
111111+ "type": {
112112+ "type": "string",
113113+ "description": "Type of content (e.g., 'video', 'article')"
114114+ },
115115+ "retrievedAt": {
116116+ "type": "string",
117117+ "format": "datetime",
118118+ "description": "When the metadata was retrieved"
119119+ },
120120+ "doi": {
121121+ "type": "string",
122122+ "description": "Digital Object Identifier (DOI) for academic content"
123123+ },
124124+ "isbn": {
125125+ "type": "string",
126126+ "description": "International Standard Book Number (ISBN) for books"
127127+ }
128128+ }
129129+ }
130130+ }
131131+}
+51
lexicons/network/cosmik/collection.json
···11+{
22+ "lexicon": 1,
33+ "id": "network.cosmik.collection",
44+ "description": "A single record type for collections of cards.",
55+ "defs": {
66+ "main": {
77+ "type": "record",
88+ "description": "A record representing a collection of cards.",
99+ "key": "tid",
1010+ "record": {
1111+ "type": "object",
1212+ "required": ["name", "accessType"],
1313+ "properties": {
1414+ "name": {
1515+ "type": "string",
1616+ "description": "Name of the collection",
1717+ "maxLength": 100
1818+ },
1919+ "description": {
2020+ "type": "string",
2121+ "description": "Description of the collection",
2222+ "maxLength": 500
2323+ },
2424+ "accessType": {
2525+ "type": "string",
2626+ "description": "Access control for the collection",
2727+ "knownValues": ["OPEN", "CLOSED"]
2828+ },
2929+ "collaborators": {
3030+ "type": "array",
3131+ "description": "List of collaborator DIDs who can add cards to closed collections",
3232+ "items": {
3333+ "type": "string",
3434+ "description": "DID of a collaborator"
3535+ }
3636+ },
3737+ "createdAt": {
3838+ "type": "string",
3939+ "format": "datetime",
4040+ "description": "Timestamp when this collection was created (usually set by PDS)."
4141+ },
4242+ "updatedAt": {
4343+ "type": "string",
4444+ "format": "datetime",
4545+ "description": "Timestamp when this collection was last updated."
4646+ }
4747+ }
4848+ }
4949+ }
5050+ }
5151+}
+52
lexicons/network/cosmik/collectionLink.json
···11+{
22+ "lexicon": 1,
33+ "id": "network.cosmik.collectionLink",
44+ "description": "A record that links a card to a collection.",
55+ "defs": {
66+ "main": {
77+ "type": "record",
88+ "description": "A record representing the relationship between a card and a collection.",
99+ "key": "tid",
1010+ "record": {
1111+ "type": "object",
1212+ "required": ["collection", "card", "addedBy", "addedAt"],
1313+ "properties": {
1414+ "collection": {
1515+ "type": "ref",
1616+ "description": "Strong reference to the collection record.",
1717+ "ref": "com.atproto.repo.strongRef"
1818+ },
1919+ "card": {
2020+ "type": "ref",
2121+ "description": "Strong reference to the card record in the users library.",
2222+ "ref": "com.atproto.repo.strongRef"
2323+ },
2424+ "originalCard": {
2525+ "type": "ref",
2626+ "description": "Strong reference to the original card record (may be in another library).",
2727+ "ref": "com.atproto.repo.strongRef"
2828+ },
2929+ "addedBy": {
3030+ "type": "string",
3131+ "description": "DID of the user who added the card to the collection"
3232+ },
3333+ "addedAt": {
3434+ "type": "string",
3535+ "format": "datetime",
3636+ "description": "Timestamp when the card was added to the collection."
3737+ },
3838+ "createdAt": {
3939+ "type": "string",
4040+ "format": "datetime",
4141+ "description": "Timestamp when this link record was created (usually set by PDS)."
4242+ },
4343+ "provenance": {
4444+ "type": "ref",
4545+ "description": "Optional provenance information for this link.",
4646+ "ref": "network.cosmik.defs#provenance"
4747+ }
4848+ }
4949+ }
5050+ }
5151+ }
5252+}
+18
lexicons/network/cosmik/defs.json
···11+{
22+ "lexicon": 1,
33+ "id": "network.cosmik.defs",
44+ "description": "Common definitions for annotation types and references",
55+ "defs": {
66+ "provenance": {
77+ "type": "object",
88+ "description": "Represents the provenance or source of a record.",
99+ "properties": {
1010+ "via": {
1111+ "type": "ref",
1212+ "description": "Strong reference to the card that led to this record.",
1313+ "ref": "com.atproto.repo.strongRef"
1414+ }
1515+ }
1616+ }
1717+ }
1818+}