art.graphik.issue

One issue or chapter. Points at its series by AT-URI rather than being nested inside it, so a series record does not have to be rewritten (and re-synced) every time a chapter ships, and so an anthology can accept an issue from another repo.

Repository @graphik.art did:plc:3vr6kzmrdua5wlmb755uvjfu namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authoritygraphik.art
Indexed
cid bafyreibeh4efbnmd3jw6z6tj2k72qu6uxwokumfpvrio3npijp65ejakni

Checks

Valid Lint pass
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "One issue or chapter. Points at its series by AT-URI rather than being nested inside it, so a series record does not have to be rewritten (and re-synced) every time a chapter ships, and so an anthology can accept an issue from another repo.",
      "key": "tid",
      "record": {
        "properties": {
          "contentRating": {
            "knownValues": [
              "all-ages",
              "teen",
              "mature",
              "explicit"
            ],
            "maxLength": 16,
            "type": "string"
          },
          "contributors": {
            "items": {
              "ref": "art.graphik.series#contributor",
              "type": "ref"
            },
            "maxLength": 64,
            "type": "array"
          },
          "cover": {
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp",
              "image/avif"
            ],
            "maxSize": 10000000,
            "type": "blob"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "description": {
            "description": "Author's note or synopsis for this issue.",
            "maxGraphemes": 1000,
            "maxLength": 10000,
            "type": "string"
          },
          "format": {
            "description": "Per-issue override; inherits from the series when absent.",
            "knownValues": [
              "page",
              "strip"
            ],
            "maxLength": 16,
            "type": "string"
          },
          "number": {
            "description": "Issue number. Fractional numbering is expressed via `numberDecimal` so an interlude can sit between 1 and 2 without renumbering anything.",
            "type": "integer"
          },
          "numberDecimal": {
            "description": "Issue number as a decimal string (e.g. \"1.5\"). Takes precedence over `number` when both are present.",
            "maxLength": 16,
            "type": "string"
          },
          "pages": {
            "description": "The pages, in reading order.",
            "items": {
              "ref": "#page",
              "type": "ref"
            },
            "maxLength": 1000,
            "type": "array"
          },
          "publishedAt": {
            "description": "The date the creator claims for this issue. Feeds sort on this, not on when we indexed it.",
            "format": "datetime",
            "type": "string"
          },
          "readingDirection": {
            "description": "Per-issue override; inherits from the series when absent.",
            "knownValues": [
              "ltr",
              "rtl"
            ],
            "maxLength": 16,
            "type": "string"
          },
          "series": {
            "description": "AT-URI of the art.graphik.series this belongs to. Absent for a one-shot.",
            "format": "at-uri",
            "type": "string"
          },
          "tags": {
            "items": {
              "maxLength": 64,
              "type": "string"
            },
            "maxLength": 32,
            "type": "array"
          },
          "title": {
            "description": "Display label when the number alone isn't the name.",
            "maxGraphemes": 100,
            "maxLength": 1000,
            "type": "string"
          }
        },
        "required": [
          "pages",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "page": {
      "properties": {
        "alt": {
          "description": "Alt text. Comics are images; without this the work is simply unavailable to a screen-reader user.",
          "maxLength": 2000,
          "type": "string"
        },
        "height": {
          "description": "Intrinsic pixel height.",
          "type": "integer"
        },
        "image": {
          "accept": [
            "image/png",
            "image/jpeg",
            "image/webp",
            "image/avif"
          ],
          "description": "The page art.",
          "maxSize": 20000000,
          "type": "blob"
        },
        "placeholder": {
          "description": "Tiny inline preview (blurhash or data URI) shown while the full page streams in.",
          "maxLength": 8000,
          "type": "string"
        },
        "spread": {
          "description": "A two-page spread that should render across the fold rather than being paired with a neighbour.",
          "type": "boolean"
        },
        "width": {
          "description": "Intrinsic pixel width, so a reader can reserve the right box before the image decodes.",
          "type": "integer"
        }
      },
      "required": [
        "image"
      ],
      "type": "object"
    }
  },
  "id": "art.graphik.issue",
  "lexicon": 1
}