/// \mainpage BOLT
///
/// \section main_intro Introduction
/// Welcome to the BOLT project.
///
/// This documentation describes the **internal** software that makes
/// up BOLT, not the **external** use of BOLT. There are no instructions
/// here on how to use BOLT, only the APIs that make up the software. For
/// usage instructions, please see the [README](@ref md_README) for further
/// detail.
///
/// \section main_caveat Caveat
/// This documentation is generated directly from the source code with doxygen.
/// Since BOLT is constantly under active development, what you're about to
/// read is out of date!
