A reusable vocabulary term for classifying any Hypercerts record — for example a land-cover class, a zone role, or a methodology. The vocabulary is domain-general; geospatial categories are simply its first entries. The schema carries portable term data; named vocabulary profiles decide which published terms and attachment points they recognize. Recommended record key: the deterministic form <category>.<key> (for example zone-role.site), as defined by the governing vocabulary profile; Lexicon validation cannot bind a record key to body fields, so writers and indexers enforce that agreement. A tag reference pins the specific version (CID) of the term that the referencing record classified against; consumers resolve the term's current status and supersession by its URI.
any
Any valid record key
Properties
aliases
array
of
string
Optional
Alternative human-readable labels and abbreviations for search and display. Aliases carry no identity: references always point at the record, not at a label.
maxLength: 50 itemsbroader
array
of
ref
com.atproto.repo.strongRef
Optional
Optional references to directly broader terms, forming a polyhierarchy (a term may have several broader terms). Each referenced record must conform with org.hypercerts.vocab.tag.
maxLength: 20 itemscategory
string
record-key
Required
The classification axis this term belongs to, for example land-cover or zone-role. One term belongs to one category; a subject may carry tags from many categories at once. Values beyond the known set are permitted. Must not contain dots, so that the recommended <category>.<key> record key remains unambiguous.
maxLength: 50 byteszone-role, land-cover, ecosystem-type, stratum-class, tenure, methodology, outcome-class, evidence-typecreatedAt
string
datetime
Required
Client-declared timestamp when this record was originally created.
description
string
Optional
Definition and scope notes for the term, written so a reader outside the publishing organization can apply it consistently.
maxLength: 10000 bytesmaxGraphemes: 1000 graphemeskey
string
record-key
Required
Stable lowercase machine identifier for this term within its publisher and category, for example boundary or mangrove. Must not contain dots, so that the recommended <category>.<key> record key remains unambiguous.
maxLength: 120 bytesname
string
Required
Human-readable display name of the term.
maxLength: 200 bytesreferenceDocument
union
Optional
A document defining or motivating this term, as a URI or an attached small blob.
sameAs
array
of
string
uri
Optional
URIs of exactly equivalent concepts in external vocabularies, for example ENVO, IUCN GET, OSM tag conventions, or registry methodology identifiers. Exact matches only; typed broader/narrower/close mappings are a named future field.
maxLength: 20 itemssignatures
ref
app.certified.signature.defs#list
Optional
Optional cryptographic signatures attesting to this record's content.
status
string
Required
Lifecycle status of the term: proposed (submitted, not yet governed), accepted (in active governed use), or deprecated (retired; see supersededBy). Values beyond the known set are permitted.
maxLength: 20 bytesproposed, accepted, deprecatedsupersededBy
ref
com.atproto.repo.strongRef
Optional
The replacement term for a deprecated term, letting consumers roll classifications forward without rewriting published records. The referenced record must conform with org.hypercerts.vocab.tag.
View raw schema
{
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"key",
"name",
"category",
"status",
"createdAt"
],
"properties": {
"key": {
"type": "string",
"format": "record-key",
"maxLength": 120,
"description": "Stable lowercase machine identifier for this term within its publisher and category, for example boundary or mangrove. Must not contain dots, so that the recommended <category>.<key> record key remains unambiguous."
},
"name": {
"type": "string",
"maxLength": 200,
"description": "Human-readable display name of the term."
},
"sameAs": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"maxLength": 20,
"description": "URIs of exactly equivalent concepts in external vocabularies, for example ENVO, IUCN GET, OSM tag conventions, or registry methodology identifiers. Exact matches only; typed broader/narrower/close mappings are a named future field."
},
"status": {
"type": "string",
"maxLength": 20,
"description": "Lifecycle status of the term: proposed (submitted, not yet governed), accepted (in active governed use), or deprecated (retired; see supersededBy). Values beyond the known set are permitted.",
"knownValues": [
"proposed",
"accepted",
"deprecated"
]
},
"aliases": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxLength": 50,
"description": "Alternative human-readable labels and abbreviations for search and display. Aliases carry no identity: references always point at the record, not at a label."
},
"broader": {
"type": "array",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"maxLength": 20,
"description": "Optional references to directly broader terms, forming a polyhierarchy (a term may have several broader terms). Each referenced record must conform with org.hypercerts.vocab.tag."
},
"category": {
"type": "string",
"format": "record-key",
"maxLength": 50,
"description": "The classification axis this term belongs to, for example land-cover or zone-role. One term belongs to one category; a subject may carry tags from many categories at once. Values beyond the known set are permitted. Must not contain dots, so that the recommended <category>.<key> record key remains unambiguous.",
"knownValues": [
"zone-role",
"land-cover",
"ecosystem-type",
"stratum-class",
"tenure",
"methodology",
"outcome-class",
"evidence-type"
]
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when this record was originally created."
},
"signatures": {
"ref": "app.certified.signature.defs#list",
"type": "ref",
"description": "Optional cryptographic signatures attesting to this record's content."
},
"description": {
"type": "string",
"maxLength": 10000,
"description": "Definition and scope notes for the term, written so a reader outside the publishing organization can apply it consistently.",
"maxGraphemes": 1000
},
"supersededBy": {
"ref": "com.atproto.repo.strongRef",
"type": "ref",
"description": "The replacement term for a deprecated term, letting consumers roll classifications forward without rewriting published records. The referenced record must conform with org.hypercerts.vocab.tag."
},
"referenceDocument": {
"refs": [
"org.hypercerts.defs#uri",
"org.hypercerts.defs#smallBlob"
],
"type": "union",
"description": "A document defining or motivating this term, as a URI or an attached small blob."
}
}
},
"description": "A reusable vocabulary term for classifying any Hypercerts record — for example a land-cover class, a zone role, or a methodology. The vocabulary is domain-general; geospatial categories are simply its first entries. The schema carries portable term data; named vocabulary profiles decide which published terms and attachment points they recognize. Recommended record key: the deterministic form <category>.<key> (for example zone-role.site), as defined by the governing vocabulary profile; Lexicon validation cannot bind a record key to body fields, so writers and indexers enforce that agreement. A tag reference pins the specific version (CID) of the term that the referencing record classified against; consumers resolve the term's current status and supersession by its URI."
}