vernac / architecture, expressed.
Browse documentation

Vernac specification and contracts

This is the normative documentation for the 0.5.0 language revision. It is organized into language rules and feature contracts; both parts define the language. MUST/MUST NOT express requirements, SHOULD a recommendation, and MAY a permission. Examples illustrate rules; explicitly incomplete fragments require their surrounding model. Planned features are not guarantees.

The language reference is the usage-oriented overview. The grammar describes parsing, not the complete supported language: semantic resolution and feature contracts also constrain accepted programs.

Language foundations

Domain and application contracts

Persistence and integration contracts

Authority and maintenance

Each rule has one authoritative home. Tutorials explain it and references summarize it; they MUST NOT introduce contradictory defaults. contracts specifies observable APIs and runtime semantics; specification specifies cross-cutting language semantics. These are two sections of the same specification, not competing sources of truth.

Implementation notes and test results are evidence, not normative promises. When a contract and implementation disagree, investigate and correct the defect or explicitly revise the contract. Do not silently treat an old document, a parser production or a generated excerpt as a new supported feature.

See documentation maintenance and the release plan for remaining verification work.

Subsequent design work

SaaS policies and deeper cross-language IDE integration remain separately planned. The module completion record defines the delivered 0.4.0 scope.

The 0.5.0 shared Java implementation contract defines parameter nullability, external target resolution and overload identity across behavior, usecases, services, listeners and adapters.