A community or team member of an organization
tid
Timestamp-based ID
Properties
bio
ref
app.gainforest.common.defs#richtext
Optional
Biography of the member
createdAt
string
datetime
Required
The date and time the record was created
did
string
did
Required
ATProto DID if the member has their own account
displayName
string
Required
Full display name of the member
maxGraphemes: 256 graphemesdisplayOrder
integer
Optional
Ordering priority for display (lower values appear first)
minimum: 0email
string
Optional
Contact email address of the member
maxGraphemes: 256 graphemesexpertise
array
of
string
Optional
Areas of expertise (e.g. 'botany', 'remote sensing', 'community engagement')
maxLength: 10 itemsfirstName
string
Optional
First name of the member
maxGraphemes: 128 graphemesisPublic
boolean
Optional
Whether this member profile is publicly visible
joinedAt
string
datetime
Optional
When the member joined the organization
languages
array
of
string
Optional
Languages spoken by the member as BCP-47 codes
maxLength: 10 itemslastName
string
Optional
Last name of the member
maxGraphemes: 128 graphemesorcid
string
Optional
ORCID identifier of the member
maxGraphemes: 64 graphemesprofileImage
ref
org.hypercerts.defs#smallImage
Optional
Profile photo of the member
role
string
Required
Role or title of the member within the organization
maxGraphemes: 128 graphemeswalletAddresses
array
of
ref
#walletAddress
Optional
Blockchain wallet addresses for receiving funds
maxLength: 5 itemsView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"displayName",
"role",
"did",
"createdAt"
],
"properties": {
"bio": {
"ref": "app.gainforest.common.defs#richtext",
"type": "ref",
"description": "Biography of the member"
},
"did": {
"type": "string",
"format": "did",
"description": "ATProto DID if the member has their own account"
},
"role": {
"type": "string",
"description": "Role or title of the member within the organization",
"maxGraphemes": 128
},
"email": {
"type": "string",
"description": "Contact email address of the member",
"maxGraphemes": 256
},
"orcid": {
"type": "string",
"description": "ORCID identifier of the member",
"maxGraphemes": 64
},
"isPublic": {
"type": "boolean",
"description": "Whether this member profile is publicly visible"
},
"joinedAt": {
"type": "string",
"format": "datetime",
"description": "When the member joined the organization"
},
"lastName": {
"type": "string",
"description": "Last name of the member",
"maxGraphemes": 128
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "The date and time the record was created"
},
"expertise": {
"type": "array",
"items": {
"type": "string",
"maxGraphemes": 128
},
"maxLength": 10,
"description": "Areas of expertise (e.g. 'botany', 'remote sensing', 'community engagement')"
},
"firstName": {
"type": "string",
"description": "First name of the member",
"maxGraphemes": 128
},
"languages": {
"type": "array",
"items": {
"type": "string",
"maxGraphemes": 32
},
"maxLength": 10,
"description": "Languages spoken by the member as BCP-47 codes"
},
"displayName": {
"type": "string",
"description": "Full display name of the member",
"maxGraphemes": 256
},
"displayOrder": {
"type": "integer",
"minimum": 0,
"description": "Ordering priority for display (lower values appear first)"
},
"profileImage": {
"ref": "org.hypercerts.defs#smallImage",
"type": "ref",
"description": "Profile photo of the member"
},
"walletAddresses": {
"type": "array",
"items": {
"ref": "#walletAddress",
"type": "ref"
},
"maxLength": 5,
"description": "Blockchain wallet addresses for receiving funds"
}
}
},
"description": "A community or team member of an organization"
}