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.
File identification
Section titled “File identification”| Property | Value |
|---|---|
| Extension | .mma |
| MIME type | application/vnd.mankai.mma+zip |
| Apple Uniform Type Identifier | app.mankai.mma |
| Container | ZIP |
Archive layout
Section titled “Archive layout”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.jpgMetadata
Section titled “Metadata”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"] } ] } ]}Manga fields
Section titled “Manga fields”| 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. |
Chapter groups
Section titled “Chapter groups”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. |
Chapters
Section titled “Chapters”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. |
Image paths and covers
Section titled “Image paths and covers”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.