theme.toml is at the root of a theme project. umono theme create writes its first version, and the CLI reads it in dev and build. It does not go into the package: the build turns it into built.toml.
An unknown key is an error, at every level. It is never ignored.
Text values are a single line: no control characters, and no whitespace at the start or the end.
How the TOML is written (tables, dotted keys, inline tables) does not matter.
The schema URL serves a JSON Schema for editor support, for example with Taplo. A few rules, like the grammar of SPDX expressions, are checked only by the CLI.