# mappings and sequences, indented by tabs or spaces
database:
host: localhost
port: 3306
roles: [guest, member, admin] # inline arrays
# entities: a value with attributes
mailer: App\Mailer(@smtp, timeout: 30)
NEON is a configuration format people like to read and write. The structure comes from indentation by tabs or spaces, comments start with #, strings mostly need no quotes and multiline text needs no escaping. And practically any JSON is NEON too. Learn the format.
A value can carry attributes, like a function call: Column(type: int, nullable: true). That is how the configuration of the Nette DI container describes services, and why it reads so well.
Change a value, add a key, remove an item, and the rest of the file stays as its author wrote it: comments, blank lines, indentation, the style of each value. The diff is only your change. Editing files.
Official libraries for PHP, JavaScript and TypeScript and Python follow one specification and pass one conformance corpus, so a file reads the same in each of them.
One command for editors, CI and AI agents, with the same output and exit codes in every language. An AI agent that runs it after each change fixes a broken file before it goes on.
NEON is the configuration format of every Nette application and of countless phpstan.neon files. The PHP library has been downloaded more than 70 million times.