{
"id": "org.hypercerts.claim.activity",
"defs": {
"main": {
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"title",
"shortDescription",
"createdAt"
],
"properties": {
"image": {
"refs": [
"org.hypercerts.defs#uri",
"org.hypercerts.defs#smallImage"
],
"type": "union",
"description": "The hypercert visual representation as a URI or image blob."
},
"title": {
"type": "string",
"maxLength": 256,
"description": "Title of the hypercert."
},
"rights": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights."
},
"endDate": {
"type": "string",
"format": "datetime",
"description": "When the work ended"
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this record was originally created"
},
"locations": {
"type": "array",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"description": "An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location."
},
"startDate": {
"type": "string",
"format": "datetime",
"description": "When the work began"
},
"workScope": {
"refs": [
"com.atproto.repo.strongRef",
"#workScopeString"
],
"type": "union",
"description": "Work scope definition. Either a strongRef to a work-scope logic record (structured, nested logic), or a free-form string for simple or legacy scopes. The work scope record should conform to the org.hypercerts.helper.workScopeTag lexicon."
},
"description": {
"type": "string",
"maxLength": 30000,
"description": "Optional longer description of this activity claim, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.",
"maxGraphemes": 3000
},
"contributors": {
"type": "array",
"items": {
"ref": "#contributor",
"type": "ref"
},
"description": "An array of contributor objects, each containing contributor information, weight, and contribution details."
},
"shortDescription": {
"type": "string",
"maxLength": 3000,
"description": "Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
"maxGraphemes": 300
},
"descriptionFacets": {
"type": "array",
"items": {
"ref": "app.bsky.richtext.facet",
"type": "ref"
},
"description": "Rich text annotations for `description` (mentions, URLs, hashtags, etc)."
},
"shortDescriptionFacets": {
"type": "array",
"items": {
"ref": "app.bsky.richtext.facet",
"type": "ref"
},
"description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc)."
}
}
},
"description": "A hypercert record tracking impact work."
},
"contributor": {
"type": "object",
"required": [
"contributorIdentity"
],
"properties": {
"contributionWeight": {
"type": "string",
"description": "The relative weight/importance of this contribution (stored as a string to avoid float precision issues). Must be a positive numeric value. Weights do not need to sum to a specific total; normalization can be performed by the consuming application as needed."
},
"contributionDetails": {
"refs": [
"#contributorRole",
"com.atproto.repo.strongRef"
],
"type": "union",
"description": "Contribution details as a string via org.hypercerts.claim.activity#contributorRole, or a strong reference to a contribution details record."
},
"contributorIdentity": {
"refs": [
"#contributorIdentity",
"com.atproto.repo.strongRef"
],
"type": "union",
"description": "Contributor identity as a string (DID or identifier) via org.hypercerts.claim.activity#contributorIdentity, or a strong reference to a contributor information record."
}
}
},
"contributorRole": {
"type": "string",
"maxLength": 10000,
"description": "Contribution details as a string.",
"maxGraphemes": 1000
},
"workScopeString": {
"type": "string",
"maxLength": 10000,
"description": "A free-form string describing the work scope for simple or legacy scopes.",
"maxGraphemes": 1000
},
"contributorIdentity": {
"type": "string",
"description": "Contributor information as a string (DID or identifier)."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}