contribute · a pack is how a domain grows the language · like a page on Wikipedia, by a pull request
A pack is one JSON file: the words a product, a venue or a protocol adds to the language, with a table per word and a clause a program writes to use them. The checker and the compilers run on your submission here, in the browser; nothing leaves the page. What compiles becomes a pull request to the public pack registry; what merges is released, listed on the pages, and completed in every editor.
coord the core grammar never changes for a pack a merged word is never removed; it is deprecated
1 · the pack · id, version, by, the attestation, the sets with their tables, the clauses
The id is the domain, lower-dashed, and is the file name. version is an integer that only goes up. by says in one line how the domain extends the language. Each set is a map of word to meaning with its source; a table carries the row the compiler reads for each word; a clause names the set its argument is a member of.
2 · the example · one program that uses the pack · checked and compiled here
The checker types the example with your pack in the sets, exactly as it will after the merge. A refusal is shown with its line and its code; a program that checks compiles to the flow, the tour and the helpdesk graph, which is the fragment your pack adds to every product that opts in.
3 · what it adds · the words, the clauses, the helpdesk fragment
4 · the pull request · to the public pack registry · the gates of a merge decide
The pull request carries the pack, the example, the attestation, the words and the fragment. The registry's check loads the pack through the language's own loader; a maintainer reads the words against the registers; a merged pack is carried into the layer at the next release and its page names you as its expert. The registry is private while the language is: the door below opens for its maintainers, and the body is yours to paste anywhere.