app.gainforest.evaluator.service

gainforest.earth

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "evaluationTypeDefinition": {
      "description": "Definition of a single evaluation type produced by this evaluator.",
      "properties": {
        "identifier": {
          "description": "The evaluation type identifier (must match an entry in evaluationTypes).",
          "maxGraphemes": 64,
          "type": "string"
        },
        "locales": {
          "description": "Human-readable names and descriptions in various languages.",
          "items": {
            "ref": "#evaluationTypeLocale",
            "type": "ref"
          },
          "maxLength": 20,
          "type": "array"
        },
        "method": {
          "description": "Default method info for this evaluation type (can be overridden per-evaluation).",
          "ref": "app.gainforest.evaluator.defs#methodInfo",
          "type": "ref"
        },
        "resultType": {
          "description": "The lexicon reference for the result type (e.g., 'app.gainforest.evaluator.defs#speciesIdResult').",
          "maxGraphemes": 128,
          "type": "string"
        }
      },
      "required": [
        "identifier",
        "resultType"
      ],
      "type": "object"
    },
    "evaluationTypeLocale": {
      "description": "Localized name and description for an evaluation type.",
      "properties": {
        "description": {
          "description": "Longer description of what this evaluation type does.",
          "maxGraphemes": 2048,
          "type": "string"
        },
        "lang": {
          "description": "Language code (BCP-47, e.g., 'en', 'pt-BR').",
          "maxGraphemes": 16,
          "type": "string"
        },
        "name": {
          "description": "Short human-readable name for this evaluation type.",
          "maxGraphemes": 128,
          "type": "string"
        }
      },
      "required": [
        "lang",
        "name",
        "description"
      ],
      "type": "object"
    },
    "evaluatorPolicies": {
      "description": "Policies declaring what this evaluator does and how it operates.",
      "properties": {
        "accessModel": {
          "description": "Whether this evaluator requires user subscription ('subscription') or processes all matching records ('open').",
          "knownValues": [
            "open",
            "subscription"
          ],
          "maxGraphemes": 64,
          "type": "string"
        },
        "evaluationTypeDefinitions": {
          "description": "Detailed definitions for each evaluation type, including human-readable descriptions.",
          "items": {
            "ref": "#evaluationTypeDefinition",
            "type": "ref"
          },
          "maxLength": 20,
          "type": "array"
        },
        "evaluationTypes": {
          "description": "List of evaluation type identifiers this evaluator produces (e.g., 'species-id', 'data-quality').",
          "items": {
            "maxGraphemes": 64,
            "type": "string"
          },
          "maxLength": 20,
          "type": "array"
        },
        "subjectCollections": {
          "description": "NSIDs of record collections this evaluator can evaluate (e.g., 'app.gainforest.dwc.occurrence').",
          "items": {
            "maxGraphemes": 128,
            "type": "string"
          },
          "maxLength": 20,
          "type": "array"
        }
      },
      "required": [
        "evaluationTypes"
      ],
      "type": "object"
    },
    "main": {
      "description": "An evaluator service declaration. Publish at /app.gainforest.evaluator.service/self to declare this account as an evaluator.",
      "key": "literal:self",
      "record": {
        "properties": {
          "createdAt": {
            "description": "Timestamp of when this evaluator service was declared.",
            "format": "datetime",
            "type": "string"
          },
          "policies": {
            "description": "The evaluator's policies including supported evaluation types and access model.",
            "ref": "#evaluatorPolicies",
            "type": "ref"
          }
        },
        "required": [
          "policies",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "Declaration record published at rkey 'self' to register an account as an evaluator service. Analogous to app.bsky.labeler.service for labelers.",
  "id": "app.gainforest.evaluator.service",
  "lexicon": 1
}

Validate Record

Validate a record against app.gainforest.evaluator.service

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:qoti4acfmc5wg6zzmtix6hse
CID
bafyreid33g65fyrsg24okjqx5vvuh4r4m4ft4pkf3tfqjcp57x3fw6eo34
Indexed At
2026-02-18 18:06 UTC
AT-URI
at://did:plc:qoti4acfmc5wg6zzmtix6hse/com.atproto.lexicon.schema/app.gainforest.evaluator.service

Referenced Schemas (1)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • An evaluation record published by an evaluator in their own repo. Contains structured, typed results about a target record (or batch of records). Discovered by AppViews via the atproto-accept-evaluators HTTP header patt…

  • A subscription record published by a user in their own repo to request evaluations from a specific evaluator service. The evaluator detects subscriptions via Jetstream and processes matching records. Deleting this recor…

Lexicon Garden

@