Top-level MNA container binding subjects, processing pipeline, schema version and project metadata. More...
#include "mna_global.h"#include "mna_subject.h"#include "mna_node.h"#include <QString>#include <QList>#include <QDateTime>#include <QSharedPointer>#include <QJsonObject>#include <QCborMap>

Go to the source code of this file.
Classes | |
| class | MNALIB::MnaProject |
Namespaces | |
| namespace | MNALIB |
| MNE Analysis Container Format (mna/mnx). | |
Top-level MNA container binding subjects, processing pipeline, schema version and project metadata.
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2026 MNE-CPP Authors
MnaProject is the in-memory representation of one .mna (JSON) or .mnx (CBOR) file and the entry point for every other MNALIB type: it owns the MnaSubject list (subject → session → recording → file) plus the MnaNode pipeline that describes how derivatives are produced from raw inputs. Reading or writing a project is a single MnaIO call away — read and write are thin façades that dispatch on extension.
The container is intentionally declarative: it records what should be computed (operations, parameters, file references and hashes) rather than embedding executable code, so collaborators on different platforms can reproduce the analysis using their own MNE-CPP build. mnaVersion / CURRENT_SCHEMA_VERSION are bumped on breaking schema changes, while extras preserves forward-compatible additions so projects written by a newer version round-trip losslessly through an older one.
Definition in file mna_project.h.