Concepts
Background reading. These pages explain why Phony works the way it does — once the ideas click, the PGDL reference is just lookup.
How they fit together
The four ideas are one story. A generator is a pure producer of one value; determinism is what makes that value the same one every run, on every runtime, so it's safe to commit and cheap to diff. Generators never embed data — they name an asset, and the locale chain decides which data that name resolves to, so one generator serves every language. And a package is how a whole set of generators and their locale data travels — bundled, versioned, and loaded without ever running code on your machine.
Read them in this order:
- Determinism — why the same seed always gives the same data, and why that matters
- The core generators — the full vocabulary, from algorithmic IDs to N-gram names to compositions
- Locales & the contribution model — how one generator produces locale-appropriate data
- Packages — how generators and data are bundled, shipped, and loaded — without running code on your machine
For the formal language specification, see the Spec.