Checklist JSON Format

This page documents the JSON schema shared by every checklist in the system, regardless of where it is stored: the built-in default/generic checklists shipped as files in API_versions/{folder}/AcftChecklists/, and the user-authored, VA-authored and community-shared checklists managed through the Checklist Management API. Every checklist — wherever it lives — is validated and resolved through the exact same code path, so this format applies everywhere.

Where checklists are stored

Default checklists remain version-folder files (git-authored, back-compatible). User, VA and community checklists are stored in the database and referenced by a stable checklistId. See the Checklist Management API for the storage model, VA rules, community ratings, and the five checklistList / checklistGet / checklistSave / checklistDelete / checklistRate endpoints.

Sparse format

Fields that equal their default value are omitted from the file. Clients must treat any missing field as its default. Only values that differ from the default are written explicitly.

Root Fields

The top-level object of every checklist file.

Field Type Default Description
name string — Display name of the checklist set (e.g. "380 Airbus Checklist").
description string "" Short human-readable description shown in the UI.
lowerNote string "" Optional note rendered below the last checklist page.
version string "1.0" Semantic version of the checklist file itself.
checklists array — Ordered array of checklist objects.

Checklist Fields

Each entry in the checklists array.

Field Type Default Description
title string — Phase label displayed as the checklist header (e.g. "BEFORE START").
order integer — Zero-based sort index. Checklists are rendered in ascending order.
items array — Ordered array of item objects.

Item Fields

Each entry in a items array is either a checklist item or a line separator. The isLine flag selects which type applies.

Field Type Default Description
order integer — Zero-based sort index within the parent checklist. Items are rendered in ascending order.
isLine boolean false When true the item is a visual separator line — a horizontal rule that divides the checklist into sections. No challenge, response, selfDetected or note fields are used. Only order is required alongside this flag.
challenge string — The left-hand challenge text shown to the pilot (e.g. "PARK BRK"). Required for normal items; absent on line separators.
response string — The expected response shown on the right (e.g. "SET", "___KG/LB"). Required for normal items. Underscore patterns (___) indicate a pilot-filled value.
selfDetected boolean false When true, the item state can be automatically detected from avionics or sim data — for example gear position, flap lever, or APU state. The client may pre-fill or auto-complete the item without pilot input. Whether it is auto-completed or still presented as a normal tap-to-confirm item is a user preference. Omit this field (or set false) for items that always require explicit pilot acknowledgement.
note string | null null An optional informational note displayed below the item, providing additional context or a condition for the pilot (e.g. "The rudder trim at neutral appears completed when the rudder trim position is below ±0.35 °."). Has no effect on the checklist logic.

Item Types at a Glance

Normal checklist item

Has challenge + response. isLine is omitted (defaults to false).

{
  "challenge": "PARK BRK",
  "order": 7,
  "response": "SET"
}

Self-detected item

Same as a normal item but the client may auto-complete it from avionics data.

{
  "challenge": "LDG GEAR",
  "order": 4,
  "response": "DOWN",
  "selfDetected": true
}

Item with a note

A note is displayed to the pilot below the challenge/response row.

{
  "challenge": "RUDDER TRIM",
  "order": 3,
  "response": "NEUTRAL",
  "selfDetected": true,
  "note": "The rudder trim at neutral appears completed (i.e. in green) when the rudder trim position is below ±0.35 °."
}

Line separator

A purely visual divider. Only order and isLine: true are present. All other fields are absent.

{
  "isLine": true,
  "order": 10
}

Full Example

A minimal but complete checklist file illustrating all item types:

{
  "name": "Example Checklist",
  "description": "Illustrates all item types.",
  "lowerNote": "",
  "version": "1.0",
  "checklists": [
    {
      "title": "BEFORE START",
      "order": 0,
      "items": [
        {
          "challenge": "PARK BRK",
          "order": 0,
          "response": "SET"
        },
        {
          "challenge": "SEAT BELTS",
          "order": 1,
          "response": "ON",
          "selfDetected": true
        },
        {
          "isLine": true,
          "order": 2
        },
        {
          "challenge": "RUDDER TRIM",
          "order": 3,
          "response": "NEUTRAL",
          "selfDetected": true,
          "note": "Completed when rudder trim position is below ±0.35 °."
        }
      ]
    }
  ]
}
Duplicate order values

Some checklist files intentionally assign the same order value to multiple items within the same checklist. This is valid — items with equal order are displayed consecutively in file order. Clients should sort by order using a stable sort to preserve the original sequence for ties.