- Use the repository's
maketargets for formatting, linting, generation, builds, and tests whenever a matching target exists. - Run
make api-generateafter changing the API schema, code generator, or generator configuration. - Run
make formatandmake lint; do not invokeclang-formatdirectly on generated files.ApiMethods.cppandApiMethods.inc.hrequire the dedicated formatting commands encoded in theMakefile. - Run the complete build and test suite with
make test. It installs the required dependencies, builds the C++ library and tests, runs the C++ tests, and runs the API codegen tests. - Do not split a normal full verification into
make build-with-test,make test-only, andmake test-api-codegen; those targets are implementation details or for deliberately narrow reruns aftermake testhas already built their prerequisites. - Do not override
BUILD_DIRfor normal builds or tests. The Conan layout writes its toolchain to the repository's standard build directory, so a customBUILD_DIRcan make CMake look for a toolchain that Conan did not place there. - Preserve public source compatibility when updating the Telegram Bot API. Do not reorder, remove, or change the types or defaults of existing positional
Apimethod parameters, and do not remove existing fields from*Argsstructs. Append new optional parameters or expose them through*Args; when Telegram replaces parameters, keep the legacy API and translate it to the new wire representation. Add regression tests for the preserved signatures and translation.