Skip to content
Closed
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion lexicons/app/certified/badge/definition.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,17 @@
},
"description": {
"type": "string",
"description": "Optional short statement describing what the badge represents."
"description": "Optional short statement describing what the badge represents. Rich text annotations may be provided via `descriptionFacets`.",
"maxLength": 30000,
"maxGraphemes": 3000
},
"descriptionFacets": {
"type": "array",
"description": "Rich text annotations for `description` (mentions, URLs, hashtags, etc).",
"items": {
"type": "ref",
"ref": "app.bsky.richtext.facet"
}
},
Comment thread
holkexyz marked this conversation as resolved.
"allowedIssuers": {
"type": "array",
Expand Down
86 changes: 46 additions & 40 deletions lexicons/org/hypercerts/claim/activity.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,42 @@
"required": [
"title",
"shortDescription",
"createdAt",
"startDate",
"endDate"
"createdAt"
],
"properties": {
"title": {
"type": "string",
"description": "Title of the hypercert.",
"description": "Title of this activity claim.",
"maxLength": 256
},
"shortDescription": {
"type": "string",
"description": "Short blurb of the impact work done.",
"description": "Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
"maxLength": 3000,
"maxGraphemes": 300
},
"shortDescriptionFacets": {
"type": "array",
"description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
"items": {
"type": "ref",
"ref": "app.bsky.richtext.facet"
}
},
"description": {
"type": "string",
"description": "Optional longer description of the impact work done.",
"description": "Optional longer description of this activity claim, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.",
"maxLength": 30000,
"maxGraphemes": 3000
},
"descriptionFacets": {
"type": "array",
"description": "Rich text annotations for `description` (mentions, URLs, hashtags, etc).",
"items": {
"type": "ref",
"ref": "app.bsky.richtext.facet"
}
},
"image": {
"type": "union",
"refs": [
Expand All @@ -41,47 +55,51 @@
],
"description": "The hypercert visual representation as a URI or image blob."
},
"project": {
"type": "string",
"format": "at-uri",
"description": "A reference (AT-URI) to the project record that this activity is part of. The record referenced must conform with the lexicon org.hypercerts.claim.project. This activity must also be referenced by the project, establishing a bidirectional link."
},
"contributors": {
"type": "array",
"description": "List of contributors to this activity with optional relative weights. If omitted, `weight` defaults to 1. For richer semantics, use separate contribution records.",
"items": {
"type": "ref",
"ref": "#weightedContributor"
}
},
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Comment thread
coderabbitai[bot] marked this conversation as resolved.
"workScope": {
"type": "ref",
"ref": "#workScope"
},
"startDate": {
"type": "string",
"format": "datetime",
"description": "When the work began"
"description": "The start date and time when the work began."
},
"endDate": {
"type": "string",
"format": "datetime",
"description": "When the work ended"
"description": "The end date and time when the work ended."
},
"contributions": {
"locations": {
"type": "array",
"description": "A strong reference to the contributions done to create the impact in the hypercerts. The record referenced must conform with the lexicon org.hypercerts.claim.contribution.",
"description": "Optional geographic references related to the location of the activity. Each referenced record must conform with the app.certified.location lexicon.",
"items": {
"type": "ref",
"ref": "com.atproto.repo.strongRef"
}
},
"maxLength": 100
Comment thread
coderabbitai[bot] marked this conversation as resolved.
},
"rights": {
"type": "ref",
"ref": "com.atproto.repo.strongRef",
"description": "A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights."
},
"location": {
"type": "ref",
"ref": "com.atproto.repo.strongRef",
"description": "A strong reference to the location where the activity was performed. The record referenced must conform with the lexicon app.certified.location."
},
"project": {
"type": "string",
"format": "at-uri",
"description": "A reference (AT-URI) to the project record that this activity is part of. The record referenced must conform with the lexicon org.hypercerts.claim.project. This activity must also be referenced by the project, establishing a bidirectional link."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this record was originally created"
"description": "Client-declared timestamp when this record was originally created."
}
}
}
Expand All @@ -94,42 +112,30 @@
"type": "array",
"description": "Labels that MUST all hold for the scope to apply.",
"items": {
"type": "string"
"type": "string",
"maxLength": 128
},
"maxLength": 100
},
"withinAnyOf": {
"type": "array",
"description": "Labels of which AT LEAST ONE must hold (optional). If omitted or empty, imposes no additional condition.",
"items": {
"type": "string"
"type": "string",
"maxLength": 128
},
"maxLength": 100
},
"withinNoneOf": {
"type": "array",
"description": "Labels that MUST NOT hold for the scope to apply.",
"items": {
"type": "string"
"type": "string",
"maxLength": 128
},
"maxLength": 100
}
}
},
"activityWeight": {
"type": "object",
"required": ["activity", "weight"],
"properties": {
"activity": {
"type": "ref",
"ref": "com.atproto.repo.strongRef",
"description": "A strong reference to a hypercert activity record. This activity must conform to the lexicon org.hypercerts.claim.activity"
},
"weight": {
"type": "string",
"description": "The relative weight/importance of this hypercert activity (stored as a string to avoid float precision issues). Weights can be any positive numeric values and do not need to sum to a specific total; normalization can be performed by the consuming application as needed."
}
}
}
}
}
104 changes: 104 additions & 0 deletions lexicons/org/hypercerts/claim/attachment.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
{
"lexicon": 1,
"id": "org.hypercerts.claim.attachment",
"defs": {
"main": {
"type": "record",
"description": "An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation). Attachments may support, clarify, or challenge the referenced subject.",
"key": "tid",
"record": {
"type": "object",
"required": ["contributors", "title", "createdAt"],

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't the content also be required?

"properties": {
"subjects": {
"type": "array",
"description": "References to the subject(s) the attachment is connected to—this may be an activity claim, outcome claim, measurement, evaluation, or even another attachment. This is optional as the attachment can exist before the claim is recorded.",
"items": {
"type": "ref",
"ref": "com.atproto.repo.strongRef"
},
"maxLength": 100
},
"attachmentType": {
"type": "string",
"maxLength": 64,
"description": "The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc."
},
"relationType": {
"type": "string",
"maxLength": 64,
"description": "How this attachment relates to the subject. If omitted, the attachment is not asserting a specific relationship.",
"knownValues": ["supports", "challenges", "clarifies"]
},
"contributors": {
"type": "array",
"description": "List of contributors to this attachment with optional relative weights. If omitted, `weight` defaults to 1. For richer semantics, use separate contribution records.",
"items": {
"type": "ref",
"ref": "#weightedContributor"
}
},
Comment thread
holkexyz marked this conversation as resolved.
"title": {
"type": "string",
"maxLength": 256,
"description": "Title of this attachment."
},
"shortDescription": {
"type": "string",
"description": "Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
"maxLength": 3000,
"maxGraphemes": 300
},
"shortDescriptionFacets": {
"type": "array",
"description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
"items": {
"type": "ref",
"ref": "app.bsky.richtext.facet"
}
},
"description": {
"type": "string",
"description": "Optional longer description of this attachment, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.",
"maxLength": 30000,
"maxGraphemes": 3000
},
"descriptionFacets": {
"type": "array",
"description": "Rich text annotations for `description` (mentions, URLs, hashtags, etc).",
"items": {
"type": "ref",
"ref": "app.bsky.richtext.facet"
}
},
Comment thread
holkexyz marked this conversation as resolved.
"content": {
"type": "array",
"description": "The files, documents, or external references included in this attachment record.",
"items": {
"type": "union",
"refs": [
"org.hypercerts.defs#uri",
"org.hypercerts.defs#smallBlob"
]
},
"maxLength": 100
},
"locations": {
"type": "array",
"description": "Optional geographic references that this attachment relates to. Each referenced record must conform with the app.certified.location lexicon.",
"items": {
"type": "ref",
"ref": "com.atproto.repo.strongRef"
},
"maxLength": 100
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this record was originally created."
}
}
}
}
}
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
38 changes: 30 additions & 8 deletions lexicons/org/hypercerts/claim/collection.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,40 +12,62 @@
"properties": {
"title": {
"type": "string",
"description": "The title of this collection",
"description": "Title of this collection.",
"maxLength": 800,
"maxGraphemes": 80
},
"shortDescription": {
"type": "string",
"description": "Short summary of this collection, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
"maxLength": 3000,
"maxGraphemes": 300,
"description": "A short description of this collection"
"maxGraphemes": 300
},
"shortDescriptionFacets": {
"type": "array",
"description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
"items": {
"type": "ref",
"ref": "app.bsky.richtext.facet"
}
},
"description": {
"type": "string",
"description": "Optional longer description of this collection, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.",
"maxLength": 30000,
"maxGraphemes": 3000
},
"descriptionFacets": {
"type": "array",
"description": "Rich text annotations for `description` (mentions, URLs, hashtags, etc).",
"items": {
"type": "ref",
"ref": "app.bsky.richtext.facet"
}
},
Comment thread
holkexyz marked this conversation as resolved.
"avatar": {
"type": "blob",
"description": "Primary avatar image representing this collection across apps and views; typically a square image.",
"accept": ["image/png", "image/jpeg"],
"maxSize": 1000000
},
"coverPhoto": {
"coverImage": {
"type": "blob",
"description": "The cover photo of this collection.",
"description": "The cover image of this collection.",
"accept": ["image/png", "image/jpeg"],
"maxSize": 1000000
},
"activities": {
"type": "array",
"description": "Array of activities with their associated weights in this collection",
"description": "Array of activities with their associated weights in this collection.",
"items": {
"type": "ref",
"ref": "org.hypercerts.claim.activity#activityWeight"
"ref": "org.hypercerts.defs#weightedActivity"
}
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this record was originally created"
"description": "Client-declared timestamp when this record was originally created."
}
}
}
Expand Down
Loading
Loading