Skip to content

MMA format

MMA (Mankai Manga Archive) is a ZIP-based book format for Mankai. One .mma file contains a manga’s metadata, chapter groups, cover, and page images. Use it to package a book with multiple chapters in a single file.

For importing or opening an archive from a local folder or network share, see Add books and sources.

Property Value
Extension .mma
MIME type application/vnd.mankai.mma+zip
Apple Uniform Type Identifier app.mankai.mma
Container ZIP

Place a file named exactly metadata.json at the ZIP root. Cover and page paths in the metadata are relative to that root. Image folders and filenames are up to you. The metadata explicitly identifies the files to read.

example.mma
├── metadata.json
├── cover.jpg
└── chapters/
├── chapter-1/
│ ├── 001.jpg
│ └── 002.jpg
└── chapter-2/
└── 001.jpg

The root of metadata.json is a manga object. It uses Mankai’s detailed manga fields, with a required chapters array of chapter groups and an additional images array on each chapter.

{
"id": "example-manga",
"title": "Example Manga",
"cover": "cover.jpg",
"status": 1,
"readingDirection": 2,
"authors": ["Example Author"],
"genres": ["adventure"],
"description": "A two-chapter example.",
"chapters": [
{
"id": "main",
"title": "Main story",
"chapters": [
{
"id": "chapter-1",
"title": "Chapter 1",
"images": ["chapters/chapter-1/001.jpg", "chapters/chapter-1/002.jpg"]
},
{
"id": "chapter-2",
"title": "Chapter 2",
"images": ["chapters/chapter-2/001.jpg"]
}
]
}
]
}
Field Type Required Meaning
id string Yes Manga identifier in the metadata. File-based sources replace it with their own file identity when opening the book.
title string No Display title.
cover string No Path to a cover image inside the archive.
status number No 0 = any, 1 = ongoing, 2 = completed.
readingDirection number No 1 = left to right, 2 = right to left, 3 = vertical.
latestChapter object No A chapter reference with required id and optional title and locked fields. Its ID must match a chapter in chapters. No images field is required here.
description string No Manga description.
externalLink string No Link to an external page about the manga.
updatedAt number No Unix timestamp in milliseconds.
authors string[] No Author names. Defaults to [].
genres string[] No Mankai genre values, such as action or adventure. Defaults to [].
chapters object[] Yes Ordered chapter groups, containing at least one chapter overall.
remarks string No Additional remarks.

Each entry in the top-level chapters array is a group:

Field Type Required Meaning
id string No Group identifier.
title string Yes Group title.
chapters object[] Yes Ordered chapters in this group. A group may be empty, but the archive must contain at least one chapter overall.

Each chapter in a group has these fields:

Field Type Required Meaning
id string Yes Nonempty chapter ID, unique across all groups in the archive.
title string No Chapter title.
locked boolean No Whether the chapter is locked in the app. Omit it or use false for readable chapters.
images string[] Yes Nonempty list of archive-relative image paths in reading order.

Use forward-slash paths that match regular file entries in the ZIP, such as cover.jpg or chapters/chapter-1/001.jpg. Use the image formats supported by the client platform, such as JPEG and PNG.

Both cover and every images entry must satisfy these rules:

  • The path is nonempty and relative to the ZIP root. It cannot start with /.
  • No component is empty, . or ... Leading, trailing, and repeated slashes are invalid.
  • Backslashes and null characters are forbidden.
  • The first component cannot contain :. Absolute URLs and drive-prefixed paths are invalid.