/*! @page features Features @tableofcontents @section features_list Comprehensive Feature List tgstation-server is a DreamMaker server managment suite. It includes all the following features - Standalone server with OpenAPI 3.0 defined HTTP REST API - Web based client included - Secure user authentication, management, and permissions system - Support for using Windows accounts as logins - OAuth 2.0 support with several providers - InvisionCommunity - /tg/ Forums - Discord - GitHub - Keycloak - Long running operation support via the jobs subsystem with error handling and stage reporting - Logging system with configurable levels of verbosity - Logs can be downloaded via the API - Supports Elasticsearch ingesting - Able to self update with user input - Updates are sourced from our (or anyone else's if configured to do so) GitHub releases or uploaded directly by the user. - Can also self update using official installation packages - Able to shutdown and restart without interrupting DreamDaemon processes - Windows service integration with service commands - SystemD integration with notify-reload support - Swarm system to coordinate servers across systems - Database backend supporting several providers - Microsoft SQL Server - MySQL/MariaDB - PostgresSQL - SQLite - Instances: Managing multiple sets of the below features seperately on the same machine - Git repository managment - Cloning - Checking out SHAs and references - Local Merging - Hard resetting to references - Merging GitHub pull requests locally, optionally commenting on them - Optionally pushing commits for GitHub visibility - Can be deleted and changed to a different origin - BYOND version management - Downloading and installing a given BYOND version - Includes DirectX installation on Windows and proper handling of POSIX shared libraries - Supporting any amount of installed versions - Cleaning the BYOND cache - Uploading a custom version .zip - Code Deployment - Compiles git code with DreamMaker and the active BYOND version - Validates interop with the compiled binary - Can be scheduled to pull the repository and build on a given interval - Test merge commenting support for GitHub and GitLab - GitHub Deployment Environments support - The Watchdog, a DreamDaemon uptime monitor - Automatically restarts the server when crashed until told to stop - "Health Check" system for checking DreamDaemon isn't hung - Seamless automatic application of new deployments on /world/Reboot - Automatic startup at server boot time - Automatically handles Windows prompts related to trusted mode - TGS restarts/updates do not interrupt the DreamDaemon process - Raises process priority of DreamDaemon for increased performance - Support for logging DreamDaemon output - Support for the `-profile` command line option - Safe session recovery from TGS crashes - Chat System - Support multiple chat bots per instance. Current providers: - Discord - Supports rich embeds created from DM code and when deployments occur - IRC - Supports several authentication types - Bots come out of the box with some basic commands like showing the server revision - Support different chat channel types & tags for use in DM code - Configuration system - Allows specifying files/directories to be permanently symlinked with active game code - Support for scripts that run on certain events. e.g. Before/after compiling - Allows including arbitrary .dm code in compilations - ACL support with Windows based logins - DMAPI, DM code interop - Provides metadata such as the current TGS version, git revision, active pull requests, security level - Provides API for responding to TGS events (compile, update, etc) - Provides API for sending chat bot messages - Provides API for implementing chat bot commands in DM code - Gives the ability to restart the DreamDaemon process from DM code - Functions with all 3 DreamDaemon security levels - Provides notifications of TGS side events - Allows specifying the .dmb's minimum required security level - Broadcast messages to clients */