{
  "lexicon": 1,
  "id": "net.bisks.velvetrope.decision",
  "defs": {
    "main": {
      "type": "record",
      "description": "A list owner's approve/deny decision on a batch of pending net.bisks.velvetrope.request records for one of their lists. Written to the owner's own repo — this is the only trustworthy record of what the owner decided, since only the owner's own credentials can produce it. When the decision is 'approve', the owner's app.bsky.graph.listitem membership is also updated in the same session (add or remove the requester), separately from this record. Also written by the auto-approve sweep on the owner's behalf when their net.bisks.velvetrope.policy for the list has autoApproveRemove set, always with decision 'approve'. Written and read by velvetrope (https://velvetrope.bisks.net).",
      "key": "tid",
      "record": {
        "type": "object",
        "required": ["list", "decision", "requests", "createdAt"],
        "properties": {
          "list": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI of the app.bsky.graph.list record (moderation list) this decision concerns."
          },
          "decision": {
            "type": "string",
            "knownValues": ["approve", "deny"],
            "description": "Whether the batch of requests was approved or denied. Auto-approved removals always use 'approve'."
          },
          "requests": {
            "type": "array",
            "maxLength": 200,
            "items": {
              "type": "string",
              "format": "at-uri"
            },
            "description": "AT-URIs of the net.bisks.velvetrope.request records this decision resolves — one decision record can cover a bulk selection from the owner's queue."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the decision was recorded, as an ISO 8601 datetime."
          }
        }
      }
    }
  }
}
