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.
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.
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 °."
}
]
}
]
}
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.