app.gainforest.evaluator.service

gainforest.earth

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

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-01-25 01:34 UTC
AT-URI
at://did:plc:qoti4acfmc5wg6zzmtix6hse/com.atproto.lexicon.schema/app.gainforest.evaluator.service

Referenced Schemas (1)

Lexicon Garden

@