The flows are stored as JSON and there is a setting to save them as prettified to make them more readable (`flowFilePretty: true` in the settings.js which is on by default in recent release).
But can you actually hand-write it? When I last looked IDs were UUIDs or similar, so you'd have to create a node in the GUI for a start, and even then the structure of it just clearly wasn't designed for manual editing or diffing. 'Storage' sort of sums it up really, doesn't it?
Given Node-RED is intended as a low-code programming tool, hand-writing the flow JSON has never really been a requirement - certainly not one I can recall being brought up in the community. It's certainly possible to generate flow JSON via other means as the format is not hugely complicated once you know the format.
It's an array of objects, each representing a 'thing' in the flow. Each object has a unqiue id (which can be any randomly generated value), and other meta data that defines what the object is and what its configuration is.
Given most nodes have been implemented with a graphical UI in mind for configuring the nodes, you'd have to refer to individual nodes to understand what node-specific properties they require.
> certainly not one I can recall being brought up in the community
Maybe I'm not/HN isn't 'the community', but when I mentioned it 6 months ago [0] you said it was 'an area [you'd] like to improve'. ;)
The relative popularity of my comment above suggests others would be interested too. I understand it's not the focus/target audience necessarily though, I was clearer about that in [0], just a shame (for me) that the low/no-code isn't built on top of code(ish)-allowed.
It could have been an integral part (and really useful!) of ETL pipelines at work, but not without a git-sane, text-editor-editable file format. (JSON ok - not the best perhaps but ok - I mean more about requirements of IDs and general structure of the document.)
Also the flow storage is fully plugable (https://nodered.org/docs/api/storage/) so nothing to stop you choosing/implementing a different storage format e.g. YAML https://github.com/natcl/node-red-contrib-yaml-storage