{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "User subscription to an evaluator service. Published by the user (not the evaluator) to declare they want evaluations.",
      "key": "tid",
      "record": {
        "properties": {
          "collections": {
            "description": "Which of the user's record collections should be evaluated (NSIDs). Must be a subset of the evaluator's subjectCollections. If omitted, all supported collections are evaluated.",
            "items": {
              "maxGraphemes": 128,
              "type": "string"
            },
            "maxLength": 20,
            "type": "array"
          },
          "createdAt": {
            "description": "Timestamp of when this subscription was created.",
            "format": "datetime",
            "type": "string"
          },
          "evaluationTypes": {
            "description": "Which evaluation types the user wants. If omitted, all types the evaluator supports are applied.",
            "items": {
              "maxGraphemes": 64,
              "type": "string"
            },
            "maxLength": 20,
            "type": "array"
          },
          "evaluator": {
            "description": "DID of the evaluator service to subscribe to.",
            "format": "did",
            "type": "string"
          }
        },
        "required": [
          "evaluator",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "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 record unsubscribes.",
  "id": "app.gainforest.evaluator.subscription",
  "lexicon": 1
}
