NodeKit
A composable node: the features an app adds, installed in the order of their needs (work-placement §WPK-2, app-composition W8).
In the namespace nodekit. Declared in src/libs/libnodekit/nodekit/NodeKit.hpp.
Detailed description
NodeKit kit(appContext);
kit.add<InventoryFeature>()
.add<BatchFeature>();
const QString error = kit.install();
kit.publishInto(harness.context());
kit.start();
The kit owns the `ServiceLevelManager` and the two levels a feature gives its services to, `Always` and `NodeActive`. `install` configures the manager and registers the two levels once, then installs each feature that is not installed yet, in the order `installOrder` gives.
**Capability is which features are installed** (app-composition §AC-2): an app that does not add a feature has neither its services nor its facilities, and asks nothing about it at run time.
A `Node` is built through a kit too (§WPK-3), so there is one way to configure a node. `Node` starts the levels itself, through its startup machine; an app without one calls `start`.