That last row is the important one. The schema is not a file you fetch, keep in sync, or point a
tool at. It ships inside the CLI, which is why the CLI can answer every question about it.
Ask the CLI
block_calendar is about 5 KB against the schema’s
212 KB, so asking one question costs a fraction of the document.
References are named rather than inlined. That keeps an answer small and points you at the next
question instead of flattening the whole tree into one wall of output.
Do not read the schema
This is the point of the page, and it applies to people and agents alike. That warning is not hypothetical. An agent working in a real workspace went looking for the settings a calendar view accepts, found no way to ask, and extracted the embedded JSON Schema by scraping strings out of the 78 MB executable. It got the right answer by the most fragile route available, and it was about to pull the whole schema in next. The agent was not misbehaving. It filled a hole.cordango vocabulary is that hole filled.
If cordango vocabulary cannot answer a question about what may be written, that is a gap worth
reporting rather than working around.
Where one idea has two names
An operation is what you send. A file is what gets written. They diverged for defensible reasons at each step, and the sum is a seam. These are the pairs:cordango vocabulary prints this list too. Every one of these was found by somebody through trial
and error before it was written down.
Validating
You do not run a validator. Two commands already do it. On your source, which is what you almost always want:import puts the document through the same schema gate before it writes anything. A document that
does not validate does not become source files.
Versions
schemaVersion in a definition names the third. They move independently.
Maintaining the schema itself
Only relevant if you are working on Cordango rather than with it. The schema is authored as per-concern source files underschemas/src/ (domain, ui, behavior, notifications, security, and a
root holding the envelope and shared primitives) and composed into the single stored contract, with
a CI guard that fails if the two drift apart.
That is a detail of the repository, not something the CLI
asks of you.
