Manifest - massif-press/lancer-data GitHub Wiki

Overview

A file named lcp_manifest.json which contains LCP metadata. This file is required for all LCPs.

Definition

lcp_manifest.json

{
  "name": string,
  "author": string,
  "description": string,
  "version": string,
  "image_url"?: string,
  "website"?: string,
  "dependencies"?: LcpDependency[]
  "v3"?: boolean,
  "version_history"?: ChangelogItem[]
}

Required Fields

name

The name of the content pack.

author

The author of the content pack.

description

The description of the content pack and its contents. HTML syntax is allowed.

version

The version string must be parseable under the Semantic Versioning guidelines, where versions take the form X.Y.Z. Typically this corresponds to:

Major Version . Minor Version . Patch

Breaking semver guidelines may result in failure to correctly manage LCP dependencies.

Optional Fields

image_url

The url of an image associated with the LCP, typically the book cover or a similar design.

website

The author's website or the URL of a website associated with the content pack. This field is required for submissions to the Community Content Directory and must be an itch.io page.

dependencies

LCPs can declare dependencies: other LCPs required for it to function. These dependencies are declared in the dependencies field of the LCP manifest, and are an array of LcpDependency objects.

COMP/CON will automatically sort and load LCPs in order based on required dependencies, and will not load an LCP if it has an unsatisfied dependency. The user will be notified of any missing dependencies in the Content Pack Manager.

LcpDependency

Definition

{
  "name": string, // name of the dependency
  "version": string, // version of the dependency
  "link"?: string // link to the dependency's website
}

Required Fields

name

The name field must exactly match the name field of the dependency's manifest.

version

The version field must be a semver version string, and must match the dependency's version. COMP/CON defaults to "this version or later", for example, if the user has already installed dependency version 2.0.0 and the dependency required is 1.0.1, COMP/CON will accept it. COMP/CON will not accept a dependency of 0.5.0 or 1.0.0. However, there are two special characters that can modify this behavior:

  • * will accept any version of the dependency, as long as the name matches.
  • =X.X.X will only accept the exact version of the dependency (X.X.X), and will not accept any other version. For example, if the version string is =1.0.0, COMP/CON will only accept version 1.0.0 of the dependency, not 1.0.1, or 2.0.0.

link

The link field is optional, and if provided will be displayed in the Content Pack Manager to help users find and download the required content packs. While this is not a required field, it is strongly recommended.

v3

If v3 is true, this LCP is marked as compatible with COMP/CON v3. If omitted or false, the LCP is considered compatible only with COMP/CON v2. This field is optional, but strongly recommended for all new LCPs. This will not prevent any loading or functionality, but v3-compatible LCPs will be highlighted in the Content Pack Manager and Active Mode UI.

changelog

Change log of the following format:

  {
    "version": string,
    "date": string,
    "changes": string[]
  }

version must be a semver string of type x.y.z

date must be an ISO string of YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ

version_history is an array of strings to detail changes. These will be rendered as an unordered list in the app.