# art.graphik.read

> Published by [graphik.art](https://lexicon.garden/identity/did:plc:3vr6kzmrdua5wlmb755uvjfu)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:3vr6kzmrdua5wlmb755uvjfu/art.graphik.read)
- [Documentation](https://lexicon.garden/lexicon/did:plc:3vr6kzmrdua5wlmb755uvjfu/art.graphik.read/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:3vr6kzmrdua5wlmb755uvjfu/art.graphik.read/examples)

## Definitions

### `art.graphik.read`

**Type**: `record`

An issue the reader has finished. A durable, meaningful event — not a page cursor. Page-level progress is deliberately NOT a repo record: it changes every few seconds and would mean hundreds of writes per issue against a host we don't run.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `issue` | `string` (at-uri) | Yes | AT-URI of the finished art.graphik.issue. |
| `readAt` | `string` (datetime) | No | When the reader finished it. |
| `series` | `string` (at-uri) | No | AT-URI of its series, denormalized so 'have I caught up' needs no lookup. |
| `createdAt` | `string` (datetime) | Yes |  |

## Raw Schema

```json
{
  "id": "art.graphik.read",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "issue",
          "createdAt"
        ],
        "properties": {
          "issue": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI of the finished art.graphik.issue."
          },
          "readAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the reader finished it."
          },
          "series": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI of its series, denormalized so 'have I caught up' needs no lookup."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          }
        }
      },
      "description": "An issue the reader has finished. A durable, meaningful event — not a page cursor. Page-level progress is deliberately NOT a repo record: it changes every few seconds and would mean hundreds of writes per issue against a host we don't run."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
