site.mochott.comic.defs

tokimeki.blue

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "aspectRatio": {
      "properties": {
        "height": {
          "minimum": 1,
          "type": "integer"
        },
        "width": {
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "width",
        "height"
      ],
      "type": "object"
    },
    "bounds": {
      "description": "Rectangle on an image in ten-thousandths of its width and height (0-10000), origin top left.",
      "properties": {
        "height": {
          "maximum": 10000,
          "minimum": 1,
          "type": "integer"
        },
        "width": {
          "maximum": 10000,
          "minimum": 1,
          "type": "integer"
        },
        "x": {
          "maximum": 10000,
          "minimum": 0,
          "type": "integer"
        },
        "y": {
          "maximum": 10000,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "x",
        "y",
        "width",
        "height"
      ],
      "type": "object"
    },
    "category": {
      "description": "Series category, e.g. fantasy or sliceOfLife.",
      "maxGraphemes": 64,
      "maxLength": 640,
      "type": "string"
    },
    "credit": {
      "description": "A person credited on the work.",
      "properties": {
        "did": {
          "format": "did",
          "type": "string"
        },
        "displayName": {
          "maxGraphemes": 100,
          "maxLength": 1000,
          "type": "string"
        },
        "role": {
          "knownValues": [
            "writer",
            "penciler",
            "inker",
            "colorist",
            "flats",
            "letterer",
            "cover",
            "creator",
            "editor",
            "editorInChief",
            "associateEditor",
            "assistantEditor",
            "designer",
            "artist",
            "translator",
            "painter",
            "backgrounds"
          ],
          "maxGraphemes": 64,
          "maxLength": 640,
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "role"
      ],
      "type": "object"
    },
    "localizedAlt": {
      "description": "Alt text in one language: describes the art and transcribes dialogue, captions and sound effects.",
      "properties": {
        "lang": {
          "description": "BCP-47 language tag.",
          "format": "language",
          "type": "string"
        },
        "text": {
          "maxGraphemes": 10000,
          "maxLength": 100000,
          "type": "string"
        }
      },
      "required": [
        "lang",
        "text"
      ],
      "type": "object"
    },
    "localizedDescription": {
      "description": "A description in one language.",
      "properties": {
        "lang": {
          "description": "BCP-47 language tag.",
          "format": "language",
          "type": "string"
        },
        "text": {
          "maxGraphemes": 3000,
          "maxLength": 30000,
          "type": "string"
        }
      },
      "required": [
        "lang",
        "text"
      ],
      "type": "object"
    },
    "localizedImage": {
      "description": "An image in one language.",
      "properties": {
        "image": {
          "accept": [
            "image/jpeg",
            "image/png",
            "image/webp",
            "image/avif"
          ],
          "description": "The image.",
          "maxSize": 4194304,
          "type": "blob"
        },
        "lang": {
          "description": "BCP-47 language tag.",
          "format": "language",
          "type": "string"
        }
      },
      "required": [
        "image",
        "lang"
      ],
      "type": "object"
    },
    "localizedShortDescription": {
      "description": "A short blurb in one language.",
      "properties": {
        "lang": {
          "description": "BCP-47 language tag.",
          "format": "language",
          "type": "string"
        },
        "text": {
          "maxGraphemes": 255,
          "maxLength": 2550,
          "type": "string"
        }
      },
      "required": [
        "lang",
        "text"
      ],
      "type": "object"
    },
    "localizedText": {
      "description": "Text in one language.",
      "properties": {
        "lang": {
          "description": "BCP-47 language tag.",
          "format": "language",
          "type": "string"
        },
        "text": {
          "maxGraphemes": 1000,
          "maxLength": 10000,
          "type": "string"
        }
      },
      "required": [
        "lang",
        "text"
      ],
      "type": "object"
    },
    "localizedTitle": {
      "description": "A title in one language.",
      "properties": {
        "lang": {
          "description": "BCP-47 language tag.",
          "format": "language",
          "type": "string"
        },
        "text": {
          "maxGraphemes": 100,
          "maxLength": 1000,
          "type": "string"
        }
      },
      "required": [
        "lang",
        "text"
      ],
      "type": "object"
    },
    "minisiteCategory": {
      "description": "A reference to a category defined in a site.mochott.minisite record.",
      "properties": {
        "minisite": {
          "description": "AT URI of the site.mochott.minisite record.",
          "format": "at-uri",
          "type": "string"
        },
        "slug": {
          "description": "Slug of a category in that minisite.",
          "maxLength": 64,
          "type": "string"
        }
      },
      "required": [
        "minisite",
        "slug"
      ],
      "type": "object"
    },
    "panel": {
      "description": "A panel on a page or strip, in reading order. All fields are optional; a panel without bounds carries alt text for the whole image.",
      "properties": {
        "alt": {
          "description": "Alt text for the panel.",
          "items": {
            "ref": "site.mochott.comic.defs#localizedAlt",
            "type": "ref"
          },
          "maxLength": 100,
          "type": "array"
        },
        "background": {
          "description": "Fill around the panel when reading panel by panel.",
          "ref": "site.mochott.comic.defs#rgba",
          "type": "ref"
        },
        "bounds": {
          "ref": "site.mochott.comic.defs#bounds",
          "type": "ref"
        },
        "mask": {
          "accept": [
            "image/png"
          ],
          "description": "Black and white PNG of the exact panel shape, covering its bounds.",
          "maxSize": 4194304,
          "type": "blob"
        },
        "transition": {
          "description": "How a panel-by-panel reader moves to this panel.",
          "knownValues": [
            "none",
            "pan",
            "fade",
            "zoom"
          ],
          "maxLength": 64,
          "type": "string"
        }
      },
      "type": "object"
    },
    "rgba": {
      "description": "Color; a is opacity from 0 to 100.",
      "properties": {
        "a": {
          "maximum": 100,
          "minimum": 0,
          "type": "integer"
        },
        "b": {
          "maximum": 255,
          "minimum": 0,
          "type": "integer"
        },
        "g": {
          "maximum": 255,
          "minimum": 0,
          "type": "integer"
        },
        "r": {
          "maximum": 255,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "r",
        "g",
        "b",
        "a"
      ],
      "type": "object"
    },
    "sequentialWork": {
      "description": "Points a site.standard.document (content union) at the canonical comic it announces.",
      "properties": {
        "series": {
          "description": "AT URI of the work.sequential.series.",
          "format": "at-uri",
          "type": "string"
        },
        "work": {
          "description": "AT URI of the work.sequential.chapter or work.sequential.strip.",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "work"
      ],
      "type": "object"
    },
    "tag": {
      "description": "Free-form tag without a leading #.",
      "maxGraphemes": 64,
      "maxLength": 640,
      "type": "string"
    },
    "version": {
      "description": "Another version of the same artwork.",
      "properties": {
        "image": {
          "accept": [
            "image/jpeg",
            "image/png",
            "image/webp",
            "image/avif"
          ],
          "description": "The version image.",
          "maxSize": 4194304,
          "type": "blob"
        },
        "kind": {
          "description": "Production stage or treatment.",
          "knownValues": [
            "thumbnails",
            "layout",
            "roughs",
            "pencils",
            "lineart",
            "inks",
            "flats",
            "colors",
            "letters"
          ],
          "maxGraphemes": 64,
          "maxLength": 640,
          "type": "string"
        }
      },
      "required": [
        "image",
        "kind"
      ],
      "type": "object"
    }
  },
  "description": "Shared definitions for mochott comic records. A superset of the work.sequential.defs shapes, so a work published with work.sequential.* can be reproduced in the site.mochott.comic.* namespace.",
  "id": "site.mochott.comic.defs",
  "lexicon": 1
}

Validate Record

Validate a record against site.mochott.comic.defs

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:4tr5dqti7nmu6g2czpthntak
CID
bafyreigsi7epbt3653pucnd4ptemzffm4lgxvbupqsmzudv7elz3pwkq44
Indexed At
2026-10-19 15:42 UTC
AT-URI
at://did:plc:4tr5dqti7nmu6g2czpthntak/com.atproto.lexicon.schema/site.mochott.comic.defs

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • A rectangle relative to an image, in ten-thousandths of the image's width and height (0-10000), with the origin at the top left.

  • A comic strip on mochott. Written beside the work.sequential.strip of the same record key as a complete copy that also holds mochott extensions.

  • A page of a page-format comic; a copy of the work.sequential.page of the same record key.

  • A slice of a vertical comic; a copy of the work.sequential.slice of the same record key.

  • A comic strip in a series. Strips belong directly to a series, without chapters, and are ordered by createdAt.

Lexicon Garden

@