{
  "schemaVersion": 4,
  "moduleCatalog": {
    "catalogVersion": 3,
    "groups": [
      {
        "key": "app",
        "labels": {
          "zh-CN": "应用外观",
          "zh-TW": "應用外觀",
          "en": "App appearance"
        }
      },
      {
        "key": "reading",
        "labels": {
          "zh-CN": "阅读外观",
          "zh-TW": "閱讀外觀",
          "en": "Reading appearance"
        }
      },
      {
        "key": "typography",
        "labels": {
          "zh-CN": "字体",
          "zh-TW": "字體",
          "en": "Fonts"
        }
      }
    ],
    "modules": [
      {
        "key": "palette",
        "group": "app",
        "minSchemaVersion": 1,
        "labels": {
          "zh-CN": "应用配色",
          "zh-TW": "應用配色",
          "en": "App colors"
        }
      },
      {
        "key": "icons",
        "group": "app",
        "minSchemaVersion": 1,
        "labels": {
          "zh-CN": "界面图标",
          "zh-TW": "介面圖示",
          "en": "Interface icons"
        }
      },
      {
        "key": "pageBackground",
        "group": "app",
        "minSchemaVersion": 1,
        "labels": {
          "zh-CN": "页面背景",
          "zh-TW": "頁面背景",
          "en": "Page background"
        }
      },
      {
        "key": "navigation",
        "group": "app",
        "minSchemaVersion": 1,
        "labels": {
          "zh-CN": "导航装饰",
          "zh-TW": "導覽裝飾",
          "en": "Navigation decoration"
        }
      },
      {
        "key": "launchScreen",
        "group": "app",
        "minSchemaVersion": 4,
        "labels": {
          "zh-CN": "启动图",
          "zh-TW": "啟動畫面",
          "en": "Launch screen"
        },
        "descriptions": {
          "zh-CN": "App 冷启动时跟随主题显示的静态图片；首页准备好后立即退出，不强制停留。",
          "zh-TW": "App 冷啟動時跟隨主題顯示的靜態圖片；首頁準備好後立即離開，不強制停留。",
          "en": "A theme-aware static image shown during cold launch; it exits as soon as the home screen is ready, with no forced dwell time."
        }
      },
      {
        "key": "readerPaper",
        "group": "reading",
        "minSchemaVersion": 2,
        "labels": {
          "zh-CN": "阅读纸张",
          "zh-TW": "閱讀紙張",
          "en": "Reading paper"
        }
      },
      {
        "key": "paragraphReview",
        "group": "reading",
        "minSchemaVersion": 2,
        "labels": {
          "zh-CN": "段评装饰",
          "zh-TW": "段評裝飾",
          "en": "Paragraph review decoration"
        }
      },
      {
        "key": "openingIndicator",
        "group": "reading",
        "minSchemaVersion": 2,
        "labels": {
          "zh-CN": "加载动画",
          "zh-TW": "載入動畫",
          "en": "Loading animation"
        }
      },
      {
        "key": "informationBars",
        "group": "reading",
        "minSchemaVersion": 2,
        "labels": {
          "zh-CN": "信息栏样式",
          "zh-TW": "資訊列樣式",
          "en": "Information bar styling"
        },
        "descriptions": {
          "zh-CN": "可调整字体、字号、字重、颜色、透明度和密度，并提供有限的内容预设；保留设备位置与边距，应用时默认不勾选。",
          "zh-TW": "可調整字型、字號、字重、顏色、透明度和密度，並提供有限的內容預設；保留裝置位置與邊距，套用時預設不勾選。",
          "en": "Adjusts font, font size, font weight, color, opacity, and density, with limited content presets; preserves device position and margins, and is not selected by default when applying."
        }
      },
      {
        "key": "commentCard",
        "group": "reading",
        "minSchemaVersion": 3,
        "labels": {
          "zh-CN": "评论卡片",
          "zh-TW": "評論卡片",
          "en": "Comment cards"
        }
      },
      {
        "key": "fonts",
        "group": "typography",
        "minSchemaVersion": 2,
        "labels": {
          "zh-CN": "字体",
          "zh-TW": "字體",
          "en": "Fonts"
        }
      }
    ]
  },
  "format": "origo.theme-suite",
  "scope": "marketplace-local-import-and-temporary-sharing",
  "marketplaceEligible": true,
  "iconSlots": [
    "home",
    "library",
    "discover",
    "ai",
    "profile",
    "back",
    "search",
    "more",
    "close",
    "forward",
    "settings",
    "refresh",
    "add",
    "share",
    "delete",
    "check",
    "bookmark",
    "catalog",
    "readAloud",
    "locate",
    "play",
    "pause",
    "stop",
    "previous",
    "next",
    "rewind",
    "fastForward",
    "speed",
    "timer",
    "volume",
    "volumeOff",
    "expand",
    "collapse",
    "remove",
    "filter",
    "sort",
    "layoutGrid",
    "layoutList",
    "download",
    "upload",
    "folder",
    "createFolder",
    "moveFolder",
    "edit",
    "copy",
    "note",
    "highlight",
    "history",
    "help",
    "info",
    "cloud",
    "sync",
    "save",
    "restore",
    "link",
    "palette",
    "font",
    "image",
    "device",
    "key",
    "extension",
    "network",
    "visibility",
    "visibilityOff",
    "lightMode",
    "darkMode",
    "autoMode",
    "swap",
    "warning",
    "offline",
    "favorite",
    "selectAll",
    "security",
    "mail",
    "chat",
    "logout",
    "schedule",
    "tag",
    "stats",
    "award"
  ],
  "artworkSlots": [
    "pageBackground",
    "navigation",
    "launchScreen",
    "launchScreenLandscape"
  ],
  "uiCoverage": {
    "description": "UI usage guidance, not additional manifest keys. Theme assets supply colors and artwork; shared app components own geometry, spring motion and glass/solid behavior.",
    "settingsSubpages": {
      "description": "Settings rows and section headings use fixed frames for themed artwork and system fallback. Only artwork scales; text starts, row spacing and trailing controls do not move.",
      "actions": {
        "glassEffectStyleAndOpacity": "palette",
        "appFontAndTextSize": "font",
        "readingFont": "library",
        "epubFont": "catalog",
        "customFonts": "folder",
        "libraryLayout": "layoutGrid",
        "floatingNavigationScreenAndPower": "device",
        "volumeKeyPageTurn": "volume",
        "resumeReading": "restore",
        "readerTopInformation": "settings",
        "language": "network",
        "autoSave": "save",
        "inlineExplanation": "info",
        "enterSetting": "forward",
        "feedback": "chat",
        "privacyAndLicenses": "security",
        "changelog": "history",
        "activities": "tag",
        "welcomeGuide": "library",
        "checkUpdates": "download"
      },
      "fallback": "Missing slots or unreadable images retain the original glyph inside the same frame. App/vendor logos retain their brand assets. Explanations open from a small info action; current values remain visible."
    },
    "readerSettings": {
      "description": "Text, layout, theme, paging, chapter-title, coloring and listening menus use caller-owned icon frames. Artwork and system fallbacks keep the same title and control columns; existing V1 keys and reader palettes remain independent.",
      "iconFrameDp": 36,
      "accessoryColumnDp": 60,
      "actions": {
        "fontChoiceAndColoring": "font",
        "chapterProgress": "catalog",
        "tapZoneGrid": "layoutGrid",
        "bookmarks": "bookmark",
        "paragraphComments": "chat",
        "autoPageTurnAndSleep": "timer",
        "systemSpeech": "device",
        "cloudSpeech": "cloud",
        "credentials": "key",
        "enter": "forward",
        "selectedChoice": "check",
        "explanation": "info"
      },
      "fallback": "Missing or unreadable artwork and precise glyphs without a V1 semantic slot keep the original symbol inside a fixed frame. Selection, loading and retry do not move text; iconScale affects artwork only. Font samples and reader paper previews retain their own content."
    },
    "officialCloudSync": {
      "status": "planned",
      "description": "Official cloud sync UI is in design. These existing V1 slots are reserved by meaning for its future integration; this does not claim the feature is live.",
      "actions": {
        "cloudEntry": "cloud",
        "synchronize": "sync",
        "bookSources": "discover",
        "bookshelf": "library",
        "readingPositionAndBookmarks": "bookmark",
        "notes": "note",
        "highlights": "highlight",
        "readingHistory": "history",
        "sourceLoginState": "key",
        "syncDevices": "device",
        "download": "download",
        "export": "share",
        "restore": "restore",
        "deleteReadingData": "delete",
        "back": "back",
        "openDetails": "forward",
        "close": "close",
        "confirm": "check",
        "help": "help",
        "information": "info"
      },
      "stateOwnership": "Success, offline, conflicts, errors, loading and quota are real app states. Do not replace their meaning with a static decorative status image."
    }
  },
  "limits": {
    "compressedBytes": 134217728,
    "uncompressedBytes": 201326592,
    "temporaryShareBytes": 33554432,
    "temporaryShareMaxSeconds": 21600,
    "launchScreenBytes": 2097152,
    "launchScreenMaxSide": 2048
  },
  "manifestSchema": {
    "$defs": {
      "BackgroundImage": {
        "additionalProperties": false,
        "properties": {
          "asset": {
            "title": "Asset",
            "type": "string"
          },
          "mode": {
            "default": "cover",
            "enum": [
              "cover",
              "contain",
              "tile",
              "slice"
            ],
            "title": "Mode",
            "type": "string"
          },
          "alignment": {
            "anyOf": [
              {
                "items": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "maxItems": 2,
                "minItems": 2,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Alignment"
          },
          "tileSize": {
            "anyOf": [
              {
                "items": {
                  "maximum": 1024,
                  "minimum": 8,
                  "type": "number"
                },
                "maxItems": 2,
                "minItems": 2,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Tilesize"
          },
          "center": {
            "anyOf": [
              {
                "items": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "maxItems": 4,
                "minItems": 4,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Center"
          }
        },
        "required": [
          "asset"
        ],
        "title": "BackgroundImage",
        "type": "object"
      },
      "BackgroundSpec": {
        "additionalProperties": false,
        "properties": {
          "base": {
            "$ref": "#/$defs/BackgroundImage"
          },
          "variants": {
            "additionalProperties": {
              "$ref": "#/$defs/BackgroundImage"
            },
            "maxProperties": 2,
            "propertyNames": {
              "enum": [
                "tall",
                "regular",
                "wide"
              ]
            },
            "title": "Variants",
            "type": "object"
          },
          "spread": {
            "default": "canvas",
            "enum": [
              "canvas",
              "page"
            ],
            "title": "Spread",
            "type": "string"
          }
        },
        "required": [
          "base"
        ],
        "title": "BackgroundSpec",
        "type": "object"
      },
      "BuiltinFontTarget": {
        "additionalProperties": false,
        "properties": {
          "builtin": {
            "const": "system",
            "title": "Builtin",
            "type": "string"
          }
        },
        "required": [
          "builtin"
        ],
        "title": "BuiltinFontTarget",
        "type": "object"
      },
      "CommentBadge": {
        "additionalProperties": false,
        "properties": {
          "background": {
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Background",
            "type": "string"
          },
          "foreground": {
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Foreground",
            "type": "string"
          },
          "radius": {
            "maximum": 16,
            "minimum": 0,
            "title": "Radius",
            "type": "number"
          }
        },
        "required": [
          "background",
          "foreground",
          "radius"
        ],
        "title": "CommentBadge",
        "type": "object"
      },
      "CommentBadges": {
        "additionalProperties": false,
        "properties": {
          "god": {
            "$ref": "#/$defs/CommentBadge"
          },
          "chapter": {
            "$ref": "#/$defs/CommentBadge"
          }
        },
        "required": [
          "god",
          "chapter"
        ],
        "title": "CommentBadges",
        "type": "object"
      },
      "CommentCard": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "anyOf": [
              {
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Name"
          },
          "light": {
            "anyOf": [
              {
                "$ref": "#/$defs/CommentCardSide"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "dark": {
            "anyOf": [
              {
                "$ref": "#/$defs/CommentCardSide"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "title": "CommentCard",
        "type": "object"
      },
      "CommentCardSide": {
        "additionalProperties": false,
        "properties": {
          "background": {
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Background",
            "type": "string"
          },
          "radius": {
            "maximum": 28,
            "minimum": 0,
            "title": "Radius",
            "type": "number"
          },
          "padding": {
            "maximum": 28,
            "minimum": 8,
            "title": "Padding",
            "type": "number"
          },
          "border": {
            "anyOf": [
              {
                "pattern": "^#[0-9A-Fa-f]{6}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Border"
          },
          "borderWidth": {
            "anyOf": [
              {
                "maximum": 2,
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Borderwidth"
          },
          "bodyLines": {
            "maximum": 4,
            "minimum": 1,
            "title": "Bodylines",
            "type": "integer"
          },
          "nameWeight": {
            "enum": [
              400,
              600
            ],
            "title": "Nameweight",
            "type": "integer"
          },
          "badges": {
            "$ref": "#/$defs/CommentBadges"
          }
        },
        "required": [
          "background",
          "radius",
          "padding",
          "bodyLines",
          "nameWeight",
          "badges"
        ],
        "title": "CommentCardSide",
        "type": "object"
      },
      "FontResource": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "pattern": "^[a-z][a-z0-9-]{0,47}$",
            "title": "Id",
            "type": "string"
          },
          "family": {
            "minLength": 1,
            "title": "Family",
            "type": "string"
          },
          "asset": {
            "title": "Asset",
            "type": "string"
          },
          "license": {
            "minLength": 1,
            "title": "License",
            "type": "string"
          },
          "licenseAsset": {
            "title": "Licenseasset",
            "type": "string"
          }
        },
        "required": [
          "id",
          "family",
          "asset",
          "license",
          "licenseAsset"
        ],
        "title": "FontResource",
        "type": "object"
      },
      "FontsComponent": {
        "additionalProperties": false,
        "properties": {
          "resources": {
            "items": {
              "$ref": "#/$defs/FontResource"
            },
            "maxItems": 4,
            "title": "Resources",
            "type": "array"
          },
          "roles": {
            "additionalProperties": {
              "anyOf": [
                {
                  "pattern": "^[a-z][a-z0-9-]{0,47}$",
                  "type": "string"
                },
                {
                  "$ref": "#/$defs/BuiltinFontTarget"
                }
              ]
            },
            "maxProperties": 4,
            "minProperties": 1,
            "propertyNames": {
              "enum": [
                "ui",
                "body",
                "header",
                "footer"
              ]
            },
            "title": "Roles",
            "type": "object"
          }
        },
        "required": [
          "resources",
          "roles"
        ],
        "title": "FontsComponent",
        "type": "object"
      },
      "IconDefinition": {
        "additionalProperties": false,
        "properties": {
          "normal": {
            "$ref": "#/$defs/ImageAsset"
          },
          "selected": {
            "anyOf": [
              {
                "$ref": "#/$defs/ImageAsset"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "required": [
          "normal"
        ],
        "title": "IconDefinition",
        "type": "object"
      },
      "ImageAsset": {
        "additionalProperties": false,
        "properties": {
          "asset": {
            "title": "Asset",
            "type": "string"
          },
          "darkAsset": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Darkasset"
          }
        },
        "required": [
          "asset"
        ],
        "title": "ImageAsset",
        "type": "object"
      },
      "InformationBarPreset": {
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "default": true,
            "title": "Enabled",
            "type": "boolean"
          },
          "rows": {
            "items": {
              "$ref": "#/$defs/InformationRow"
            },
            "maxItems": 2,
            "title": "Rows",
            "type": "array"
          }
        },
        "required": [
          "rows"
        ],
        "title": "InformationBarPreset",
        "type": "object"
      },
      "InformationBarStyle": {
        "additionalProperties": false,
        "properties": {
          "fontRole": {
            "anyOf": [
              {
                "enum": [
                  "ui",
                  "body",
                  "header",
                  "footer"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Fontrole"
          },
          "fontWeight": {
            "anyOf": [
              {
                "maximum": 900,
                "minimum": 100,
                "multipleOf": 100,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Fontweight"
          },
          "opacity": {
            "anyOf": [
              {
                "maximum": 1,
                "minimum": 0.2,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Opacity"
          },
          "color": {
            "anyOf": [
              {
                "enum": [
                  "text",
                  "muted",
                  "accent"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Color"
          },
          "fontSize": {
            "anyOf": [
              {
                "maximum": 24,
                "minimum": 8,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Fontsize"
          },
          "density": {
            "anyOf": [
              {
                "enum": [
                  "compact",
                  "regular",
                  "relaxed"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Density"
          },
          "items": {
            "additionalProperties": {
              "$ref": "#/$defs/InformationItemStyle"
            },
            "propertyNames": {
              "enum": [
                "time",
                "battery",
                "bookTitle",
                "chapterTitle",
                "chapterPages",
                "remainingPages",
                "chapters",
                "remainingChapters",
                "chapterProgress",
                "bookProgress",
                "sessionTime",
                "todayTime",
                "bookTime"
              ]
            },
            "title": "Items",
            "type": "object"
          }
        },
        "title": "InformationBarStyle",
        "type": "object",
        "description": "Header or footer style: fontRole; fontSize 8-24; fontWeight 100-900 in steps of 100; semantic color; opacity 0.2-1; compact, regular or relaxed density; and per-information-type font/weight/color/opacity overrides."
      },
      "InformationBars": {
        "additionalProperties": false,
        "properties": {
          "style": {
            "anyOf": [
              {
                "$ref": "#/$defs/InformationStyle"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "contentPreset": {
            "anyOf": [
              {
                "$ref": "#/$defs/InformationContentPreset"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "title": "Information bar styling",
        "type": "object",
        "description": "Portable Information bar styling. Authors may supply style, a bounded contentPreset, or both. Applying this module is off by default; device placement and margins remain local. It cannot supply arbitrary text, scripts, remote data, system status-bar styling or statistic computation."
      },
      "InformationContentPreset": {
        "additionalProperties": false,
        "properties": {
          "header": {
            "anyOf": [
              {
                "$ref": "#/$defs/InformationBarPreset"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "footer": {
            "anyOf": [
              {
                "$ref": "#/$defs/InformationBarPreset"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "title": "InformationContentPreset",
        "type": "object",
        "description": "Limited header/footer content suggestion using only the fixed information types and formats in this schema. Each bar has at most two rows and each left, center or right group has at most three items."
      },
      "InformationItem": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "pattern": "^[A-Za-z0-9_-]{1,48}$",
            "title": "Id",
            "type": "string"
          },
          "type": {
            "enum": [
              "time",
              "battery",
              "bookTitle",
              "chapterTitle",
              "chapterPages",
              "remainingPages",
              "chapters",
              "remainingChapters",
              "chapterProgress",
              "bookProgress",
              "sessionTime",
              "todayTime",
              "bookTime"
            ],
            "title": "Type",
            "type": "string"
          },
          "format": {
            "default": "auto",
            "title": "Format",
            "type": "string"
          },
          "secondary": {
            "default": false,
            "title": "Secondary",
            "type": "boolean"
          },
          "precision": {
            "default": 0,
            "maximum": 1,
            "minimum": 0,
            "title": "Precision",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "title": "InformationItem",
        "type": "object"
      },
      "InformationItemStyle": {
        "additionalProperties": false,
        "properties": {
          "fontRole": {
            "anyOf": [
              {
                "enum": [
                  "ui",
                  "body",
                  "header",
                  "footer"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Fontrole"
          },
          "fontWeight": {
            "anyOf": [
              {
                "maximum": 900,
                "minimum": 100,
                "multipleOf": 100,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Fontweight"
          },
          "opacity": {
            "anyOf": [
              {
                "maximum": 1,
                "minimum": 0.2,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Opacity"
          },
          "color": {
            "anyOf": [
              {
                "enum": [
                  "text",
                  "muted",
                  "accent"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Color"
          }
        },
        "title": "InformationItemStyle",
        "type": "object"
      },
      "InformationRow": {
        "additionalProperties": false,
        "properties": {
          "left": {
            "items": {
              "$ref": "#/$defs/InformationItem"
            },
            "maxItems": 3,
            "title": "Left",
            "type": "array"
          },
          "center": {
            "items": {
              "$ref": "#/$defs/InformationItem"
            },
            "maxItems": 3,
            "title": "Center",
            "type": "array"
          },
          "right": {
            "items": {
              "$ref": "#/$defs/InformationItem"
            },
            "maxItems": 3,
            "title": "Right",
            "type": "array"
          }
        },
        "title": "InformationRow",
        "type": "object"
      },
      "InformationStyle": {
        "additionalProperties": false,
        "properties": {
          "header": {
            "anyOf": [
              {
                "$ref": "#/$defs/InformationBarStyle"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "footer": {
            "anyOf": [
              {
                "$ref": "#/$defs/InformationBarStyle"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "title": "InformationStyle",
        "type": "object",
        "description": "Optional header/footer styling. An undeclared side remains unchanged. Styles can adjust declared font roles, size, weight, semantic color, opacity and density without taking ownership of device geometry."
      },
      "MediaImage": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "pattern": "^[a-z][a-z0-9-]{0,47}$",
            "title": "Id",
            "type": "string"
          },
          "asset": {
            "title": "Asset",
            "type": "string"
          },
          "caption": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Caption"
          }
        },
        "required": [
          "id",
          "asset"
        ],
        "title": "MediaImage",
        "type": "object"
      },
      "OpeningAppearance": {
        "additionalProperties": false,
        "properties": {
          "asset": {
            "title": "Asset",
            "type": "string"
          },
          "poster": {
            "title": "Poster",
            "type": "string"
          }
        },
        "required": [
          "asset",
          "poster"
        ],
        "title": "OpeningAppearance",
        "type": "object"
      },
      "OpeningIndicator": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "anyOf": [
              {
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Name"
          },
          "light": {
            "anyOf": [
              {
                "$ref": "#/$defs/OpeningAppearance"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "dark": {
            "anyOf": [
              {
                "$ref": "#/$defs/OpeningAppearance"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "title": "OpeningIndicator",
        "type": "object"
      },
      "PaletteAppearance": {
        "additionalProperties": false,
        "properties": {
          "primary": {
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Primary",
            "type": "string"
          },
          "secondary": {
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Secondary",
            "type": "string"
          },
          "tertiary": {
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Tertiary",
            "type": "string"
          },
          "topBar": {
            "$ref": "#/$defs/TopBarPalette",
            "default": null,
            "title": "Topbar"
          }
        },
        "required": [
          "primary",
          "secondary",
          "tertiary"
        ],
        "title": "PaletteAppearance",
        "type": "object"
      },
      "PaletteComponent": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "anyOf": [
              {
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Name"
          },
          "light": {
            "anyOf": [
              {
                "$ref": "#/$defs/PaletteAppearance"
              },
              {
                "$ref": "#/$defs/SeedPaletteAppearance"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Light"
          },
          "dark": {
            "anyOf": [
              {
                "$ref": "#/$defs/PaletteAppearance"
              },
              {
                "$ref": "#/$defs/SeedPaletteAppearance"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Dark"
          }
        },
        "title": "PaletteComponent",
        "type": "object"
      },
      "ParagraphReview": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "anyOf": [
              {
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Name"
          },
          "asset": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Asset"
          },
          "darkAsset": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Darkasset"
          }
        },
        "title": "ParagraphReview",
        "type": "object"
      },
      "ReaderAppearance": {
        "additionalProperties": false,
        "properties": {
          "background": {
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Background",
            "type": "string"
          },
          "text": {
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Text",
            "type": "string"
          },
          "controlBar": {
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Controlbar",
            "type": "string"
          },
          "backgroundImageOpacity": {
            "anyOf": [
              {
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Backgroundimageopacity"
          },
          "backgroundImage": {
            "anyOf": [
              {
                "$ref": "#/$defs/BackgroundSpec"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "required": [
          "background",
          "text",
          "controlBar"
        ],
        "title": "ReaderAppearance",
        "type": "object"
      },
      "ReaderComponent": {
        "additionalProperties": false,
        "properties": {
          "light": {
            "anyOf": [
              {
                "$ref": "#/$defs/ReaderAppearance"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "dark": {
            "anyOf": [
              {
                "$ref": "#/$defs/ReaderAppearance"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "paragraphReview": {
            "anyOf": [
              {
                "$ref": "#/$defs/ParagraphReview"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "commentCard": {
            "anyOf": [
              {
                "$ref": "#/$defs/CommentCard"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "informationBars": {
            "anyOf": [
              {
                "$ref": "#/$defs/InformationBars"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "openingIndicator": {
            "anyOf": [
              {
                "$ref": "#/$defs/OpeningIndicator"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "title": "ReaderComponent",
        "type": "object"
      },
      "SeedPaletteAppearance": {
        "additionalProperties": false,
        "properties": {
          "seed": {
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Seed",
            "type": "string"
          },
          "topBar": {
            "$ref": "#/$defs/TopBarPalette",
            "default": null,
            "title": "Topbar"
          }
        },
        "required": [
          "seed"
        ],
        "title": "SeedPaletteAppearance",
        "type": "object"
      },
      "SkinArtwork": {
        "additionalProperties": false,
        "properties": {
          "pageBackground": {
            "anyOf": [
              {
                "$ref": "#/$defs/ImageAsset"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "navigation": {
            "anyOf": [
              {
                "$ref": "#/$defs/ImageAsset"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "launchScreen": {
            "anyOf": [
              {
                "$ref": "#/$defs/ImageAsset"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "launchScreenLandscape": {
            "anyOf": [
              {
                "$ref": "#/$defs/ImageAsset"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "title": "SkinArtwork",
        "type": "object"
      },
      "SkinComponent": {
        "additionalProperties": false,
        "properties": {
          "base": {
            "anyOf": [
              {
                "const": "original",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Base"
          },
          "icons": {
            "additionalProperties": {
              "$ref": "#/$defs/IconDefinition"
            },
            "maxProperties": 80,
            "title": "Icons",
            "type": "object"
          },
          "artwork": {
            "anyOf": [
              {
                "$ref": "#/$defs/SkinArtwork"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "iconScale": {
            "anyOf": [
              {
                "maximum": 1.2,
                "minimum": 0.75,
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Iconscale"
          }
        },
        "title": "SkinComponent",
        "type": "object"
      },
      "SuiteComponents": {
        "additionalProperties": false,
        "properties": {
          "skin": {
            "anyOf": [
              {
                "$ref": "#/$defs/SkinComponent"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "palette": {
            "anyOf": [
              {
                "$ref": "#/$defs/PaletteComponent"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "reader": {
            "anyOf": [
              {
                "$ref": "#/$defs/ReaderComponent"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          },
          "fonts": {
            "anyOf": [
              {
                "$ref": "#/$defs/FontsComponent"
              },
              {
                "type": "null"
              }
            ],
            "default": null
          }
        },
        "title": "SuiteComponents",
        "type": "object"
      },
      "SuiteDistribution": {
        "additionalProperties": false,
        "properties": {
          "suiteRevision": {
            "pattern": "^[0-9a-f]{64}$",
            "title": "Suiterevision",
            "type": "string"
          },
          "component": {
            "enum": [
              "skin",
              "palette",
              "reader",
              "fonts"
            ],
            "title": "Component",
            "type": "string"
          }
        },
        "required": [
          "suiteRevision",
          "component"
        ],
        "title": "SuiteDistribution",
        "type": "object"
      },
      "SuiteMedia": {
        "additionalProperties": false,
        "properties": {
          "images": {
            "items": {
              "$ref": "#/$defs/MediaImage"
            },
            "maxItems": 6,
            "title": "Images",
            "type": "array"
          },
          "cover": {
            "anyOf": [
              {
                "pattern": "^[a-z][a-z0-9-]{0,47}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Cover"
          }
        },
        "title": "SuiteMedia",
        "type": "object"
      },
      "TopBarPalette": {
        "additionalProperties": false,
        "description": "Shared horizontal selectors; omitted colors keep the app's normal fallback.",
        "minProperties": 1,
        "properties": {
          "background": {
            "default": null,
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Background",
            "type": "string"
          },
          "foreground": {
            "default": null,
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Foreground",
            "type": "string"
          },
          "selectedBackground": {
            "default": null,
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Selectedbackground",
            "type": "string"
          },
          "selectedForeground": {
            "default": null,
            "pattern": "^#[0-9A-Fa-f]{6}$",
            "title": "Selectedforeground",
            "type": "string"
          }
        },
        "title": "TopBarPalette",
        "type": "object"
      }
    },
    "additionalProperties": false,
    "properties": {
      "schemaVersion": {
        "enum": [
          2,
          3,
          4
        ],
        "title": "Schemaversion",
        "type": "integer"
      },
      "format": {
        "const": "origo.theme-suite",
        "title": "Format",
        "type": "string"
      },
      "id": {
        "maxLength": 48,
        "minLength": 1,
        "title": "Id",
        "type": "string"
      },
      "version": {
        "maximum": 9007199254740991,
        "minimum": 1,
        "title": "Version",
        "type": "integer"
      },
      "versionName": {
        "anyOf": [
          {
            "pattern": "^(?:0|[1-9][0-9]{0,5})\\.(?:0|[1-9][0-9]{0,5})$",
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "default": null,
        "title": "Versionname"
      },
      "name": {
        "minLength": 1,
        "title": "Name",
        "type": "string"
      },
      "description": {
        "default": "",
        "title": "Description",
        "type": "string"
      },
      "author": {
        "minLength": 1,
        "title": "Author",
        "type": "string"
      },
      "license": {
        "minLength": 1,
        "title": "License",
        "type": "string"
      },
      "components": {
        "$ref": "#/$defs/SuiteComponents"
      },
      "media": {
        "anyOf": [
          {
            "$ref": "#/$defs/SuiteMedia"
          },
          {
            "type": "null"
          }
        ],
        "default": null
      },
      "distribution": {
        "anyOf": [
          {
            "$ref": "#/$defs/SuiteDistribution"
          },
          {
            "type": "null"
          }
        ],
        "default": null
      }
    },
    "required": [
      "schemaVersion",
      "format",
      "id",
      "version",
      "name",
      "author",
      "license",
      "components"
    ],
    "title": "ThemeSuiteManifest",
    "type": "object"
  }
}