// docker-finance | modern accounting for the power-user
//
// Copyright (C) 2021-2025 Aaron Fiore (Founder, Evergreen Crypto LLC)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.

//! \file
//! \brief Common Doxygen definitions for docker-finance
//! \author Aaron Fiore (Founder, Evergreen Crypto LLC)
//! \since docker-finance 1.0.0
//! \todo Bash support
//! \todo More-useful PHP support

//! \mainpage Developer Documentation
//!
//! \section overview Overview
//!
//! docker-finance is currently written in <b>Bash</b>, <b>PHP</b> and <b>C++</b> but,
//! until shell support is wiggled into this instance, only <b>PHP</b> and <b>C++</b>
//! are Doxygen documented.
//!
//! Although documentation is an ongoing WIP, you may find the following useful now:
//! <p>
//! - \htmlonly<a href="namespaces.html">Namespaces</a>\endhtmlonly
//! - \htmlonly<a href="topics.html">Topics</a>\endhtmlonly
//! - \htmlonly<a href="files.html">Files</a>\endhtmlonly
//! </p>
//!
//! \subsection root ROOT.cern / Cling interpreter
//!
//! Once inside a running ROOT instance, run the help macro for assistance:
//! \code{.cpp} help() \endcode
//!
//! \since docker-finance 1.0.0

//
// Bash (TODO)
//

//
// C++
//

//! \defgroup cpp_macro docker-finance C++ macros
//! \brief Group for public-facing macros used exclusively through the ROOT.cern framework
//! \since docker-finance 1.0.0

//! \defgroup cpp_macro_impl docker-finance C++ macros impl
//! \brief Group for internal implementations of public-facing macros
//! \since docker-finance 1.0.0

//! \defgroup cpp_plugin docker-finance C++ plugins
//! \brief Group for public-facing docker-finance plugins used exclusively through the ROOT.cern framework
//! \since docker-finance 1.0.0

//! \defgroup cpp_plugin_impl docker-finance C++ plugins impl
//! \brief Group for internal implementations of public-facing docker-finance plugins
//! \since docker-finance 1.0.0

//! \defgroup cpp_API docker-finance C++ API
//! \brief Group for the public-facing C++ API
//! \since docker-finance 1.0.0

//! \defgroup cpp_API_impl docker-finance C++ API impl
//! \brief Group for internal implementations of the public-facing C++ API
//! \since docker-finance 1.0.0

//! \defgroup cpp_generic docker-finance C++ generic (TMP)
//! \brief Group for internal generic code for template meta programming
//! \since docker-finance 1.0.0

//! \defgroup cpp_type_traits docker-finance C++ types
//! \brief Group for internal types and type traits
//! \since docker-finance 1.0.0

//! \defgroup cpp_type_tags docker-finance C++ tags
//! \brief Group for tags marked for internal and public consumption
//! \since docker-finance 1.0.0

//! \defgroup cpp_type_exceptions docker-finance C++ exceptions
//! \brief Group for internal exception handling
//! \since docker-finance 1.0.0

//! \defgroup cpp_utils docker-finance C++ utilities
//! \brief Group for public-facing utility code
//! \since docker-finance 1.0.0

//! \defgroup cpp_tests docker-finance C++ tests
//! \brief Group for testing framework (benchmarks, unit testing)
//! \since docker-finance 1.0.0

//! \defgroup cpp_common_impl docker-finance C++ shared common code
//! \brief Group for common functionality (internal and external)
//! \since docker-finance 1.1.0

//
// PHP
//

//! \defgroup php_API docker-finance PHP API
//! \brief Group for the shell-facing PHP API
//! \since docker-finance 1.0.0

//! \defgroup php_API_impl docker-finance PHP API impl
//! \brief Group for internal implementations of the public-facing PHP API
//! \since docker-finance 1.0.0

//! \defgroup php_blockchains docker-finance PHP blockchains
//! \brief Group for supported blockchains
//! \since docker-finance 1.0.0

//! \defgroup php_exchanges docker-finance PHP exchanges
//! \brief Group for supported exchanges
//! \since docker-finance 1.0.0

//! \defgroup php_prices docker-finance PHP prices
//! \brief Group for supported price aggregators
//! \since docker-finance 1.0.0

//! \defgroup php_utils docker-finance PHP utilities
//! \brief Group for internal utility code
//! \since docker-finance 1.0.0
