{
  "lexicon": 1,
  "id": "net.bisks.blocknotes.entry",
  "defs": {
    "main": {
      "type": "record",
      "description": "A dated note explaining why a person was blocked or muted, kept alongside the real app.bsky.graph.block record (for blocks) or the account-side mute (for mutes, which have no repo record of their own). One entry per (subject, kind) pair. Written and read by blocknotes (https://blocknotes.bisks.net).",
      "key": "tid",
      "record": {
        "type": "object",
        "required": ["subject", "kind", "createdAt"],
        "properties": {
          "subject": {
            "type": "string",
            "format": "did",
            "description": "DID of the person this note is about."
          },
          "subjectHandle": {
            "type": "string",
            "maxLength": 300,
            "description": "The handle subject resolved to at the time this note was written, kept for display/search without a re-lookup. May go stale if they change handles."
          },
          "kind": {
            "type": "string",
            "enum": ["block", "mute"],
            "description": "Which action this note explains."
          },
          "reason": {
            "type": "string",
            "maxLength": 2000,
            "maxGraphemes": 2000,
            "description": "Why — the reminder note. Written to your own public PDS repo like every atproto record; see notes/50-oauth-scopes.md and blocknotes' own privacy note for what that means."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the block/mute (and this note) was made, as an ISO 8601 datetime."
          }
        }
      }
    }
  }
}
