# Extensible Codeplug File Format

This document describes the extensible codeplug file format using YAML. If you are unfamiliar with YAML, consider reading a YAML introduction first. The documentation for the old table based `conf`-file format, can be found in section confFormat.

The introduction of device specific settings (with version 0.9.0) required an extensible codeplug file format. The old table based format did not allow for any extension without braking backward compatibility. The new YAML based format allows for exactly that: Some means to extend the format for device specific settings without breaking the format while maintaining some degree of readability. (Yes, some users use the command line tool and edit their codeplug in a text editor.)

There are several levels, at which device specific extensions may appear within the codeplug. There are global extensions that apply to the entire codeplug. These extensions are located at the top level. There might also be extensions to single channels, contacts, zones, etc. These extensions are then located under the specific element that gets extended.