# Node-RED Messages and Editor/Runtime Structure (EVOLV Summary) Sources: - Messages: https://nodered.org/docs/user-guide/messages - Edit dialog and node definition: https://nodered.org/docs/creating-nodes/edit-dialog ## Message Shape - Standard message object is usually `msg`. - `msg.payload` is the default value channel. - `msg.topic` is used for routing/intent labeling. ## EVOLV Topic Routing - EVOLV runtime wrappers route commands by `msg.topic` in `src/nodeClass.js`. - Keep topic names stable unless a migration is defined (flow compatibility). ## Editor/Runtime Parity - In `.html`, `RED.nodes.registerType(... defaults ...)` defines persisted config fields. - Runtime parser in `src/nodeClass.js` must read and normalize the same fields. - If a field is added/renamed in editor defaults, update runtime mapping and tests in the same change. ## Multi-Output Node Rule - Runtime `node.send([out1, out2, out3])` must align with declared `outputs` in `.html`. - If output meaning is `process`, `dbase`, `parent`, maintain stable index mapping across all message paths.