## Improvements
- [#740] Proofread ‘For beginners’ section of docs. Thanks @delucis!
- [#741] LilyPond's log is displayed on LilyPond compilation error.
- [#749] Added `LilyPondCommand` to Abjad's global namespace.
- [#752] Taught `detach()` about different types of grace container.
- [#753] Taught `Dynamics` about _sforzando_ dynamic names.
- [#744] Refactoring and cleanup in `schemetools`. Thanks @ajyoon!
- [#745] Reimplemented Abjad's repr, storage format and object templating system.
- [#755, #760, #761, #763] Cleaned-up class member ordering via a new command-line script. Thanks @ajyoon!
- [#766] Abjad's `ajv` looks for `.ajv` config files in $HOME, the current directory and any parent directory thereof. A [doctest] section can specify imports to be run at the beginning of each doctest in `ajv doctest` via an `imports` key.
## Changes
- [#745] `AbjadObject`'s `_storage_format_specification` and `_repr_specification` properties are deprecated in favor of a new unified `_get_format_specification()` method. The old properties will no longer be supported in the next Abjad release: 2.20.
## Bugfixes
- [#762] Improved interaction between chords and ties. Thanks @quesebifurcan!
- [#764] `IOManager.open_file()` respects Abjad's config when opening MIDI files. Thanks @quesebifurcan!
- [#767] Fixed edge-cases in Graphviz attribute-handling and append/extend behavior.
- [#774] NamedPitch.invert() guards against errors from multiply-augmented or diminished intervals.