Declarative contract for an MNA operation — expected input/output ports, attributes, binding kind and validation against a concrete MnaNode. More...
#include "mna_global.h"#include "mna_types.h"#include <QString>#include <QStringList>#include <QVariant>#include <QMetaType>#include <QList>

Go to the source code of this file.
Classes | |
| struct | MNALIB::MnaOpSchemaPort |
| struct | MNALIB::MnaOpSchemaAttr |
| class | MNALIB::MnaOpSchema |
| Operation schema for graph validation. More... | |
Namespaces | |
| namespace | MNALIB |
| MNE Analysis Container Format (mna/mnx). | |
Declarative contract for an MNA operation — expected input/output ports, attributes, binding kind and validation against a concrete MnaNode.
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2026 MNE-CPP Authors
MnaOpSchema is the type information an MNA operation publishes to the rest of the system. It declares the opType identifier, version, category and binding mode (internal in-process function, cli external executable driven by cliTemplate, or script delegating to an inline MnaScript), plus the MnaOpSchemaPort and MnaOpSchemaAttr lists that describe expected I/O and parameters with their data kinds, default values and required flags.
The MnaOpSchema::validate method is the gatekeeper used by MnaGraph::validate and the GUI editor: it checks that a concrete MnaNode declares every required port, that the attribute types match QMetaType expectations, and that no unknown attribute leaks through. Schemas are normally authored declaratively in mna-registry.json and loaded by MnaRegistryLoader rather than written in C++.
Definition in file mna_op_schema.h.