What is a header? What is a bullet? What is a full note?
The smallest atom is a sentence, in my opinion. Of course, you could make a letter or word an atom, but a single proposition (sentence) is usually an atom in my book.
In Obsidian.md the unit can be a block of test (separated by lines) but still the most natural unit is the page [[ ]] with brackets.
A page is a file. It just contains sentence and other lines of text.
A header (#) is a container within a container.
The purpose of the page, the header, is to create organization.
The goals of organization are easier future retrieval and sense-making.
Headers put common items together under some overarching statement, group or category.
One could just write bullets with no header, no page. As Christian Tziete once said, you could keep a Zettelkasten just from a single text file and just keep adding to it. All references would be internal.
This is kind of like how programs are made. You could have a single linear file of code that has everything in it, and there are internal references. For example, if you define a function at the top of a file and then call the function further down. It’s all internal. One could do this so long as every single line or coherent unit (block?) were individually addressable.