GNU Affero General Public License, version 3 or later. Every source file carries an SPDX identifier:
So the license of any file is a machine-readable fact instead of something to infer from a directory it happens to sit in.
MMgr is consumed as source, by add_subdirectory or by PlatformIO and Arduino copying src/ into your build. There are no install() rules and no binary artifact. See Adding MMgr to a build for why.
That means the ordinary "am I linking or copying" distinction does not apply here in the way it does for a shared library. Your build compiles these files into your program.
The AGPL's distinguishing clause is section 13: if you modify the program and let users interact with it over a network, those users must be able to get the corresponding source. That obligation attaches to network interaction, not only to shipping binaries, as separates the AGPL from the GPL.
For a memory manager on a device this often does not arise. For a memory manager inside a networked service, it does. Which of those you are building is the question worth answering before you adopt it.
CITATION.cff is machine-readable, and GitHub renders a "Cite this repository" control from it.
Ask. The copyright is owned by one person, and so dual licensing is arranged directly by email: dquig.nosp@m.g123.nosp@m.@gmai.nosp@m.l.co.nosp@m.m.
Saying so here is deliberate. A project that offers no route other than the AGPL gets silently passed over by people who would otherwise have used it and contributed back.
Contributions are accepted under the same license. There is no CLA. Opening a pull request means you have the right to contribute the code and are doing so under AGPL-3.0-or-later.
Keep the SPDX header on every new file. check_stale_facts in the docs tooling asserts that every file under src/ carries the project banner. A missing one fails a pull request and not being noticed a year later.