Bundle: a versioned container distributing many specs behind one pin.
Cache: the per-user, content-addressed store shared by all projects.
Depot: an optional remote store of prebuilt package artifacts.
Fetch dependency: a package installed before another package's spec can
be fetched, declared in source.dependencies.
Identity: a spec's namespaced, versioned name, ns.name@rev. The revision
versions the spec, not the payload.
Manifest: envy.lua, a project's pinned toolchain declaration.
Options: per-entry configuration passed to every verb. Part of the
package's identity.
Package: one installed instance of a spec, keyed by (identity, options, platform).
Platform: an OS name, darwin, linux, or windows, optionally with an
architecture, arm64 or x86_64. Part of every package's cache key, and the
thing platform filters match against.
Product: a named capability a package exposes, either an executable path
or a plain value.
Product script: a deployed wrapper in the project bin dir that resolves
and runs an executable product.
Root manifest: the manifest that governs. Manifests with
@envy root "false" defer upward.
Setup pair: a named CHECK/INSTALL couple that performs host-state work,
selected per manifest entry.
Spec: the Lua file describing how to obtain one kind of package.
Superproject and subproject: manifests composing across nested
directories.
User-managed package: a package whose state lives on the host rather than
in the cache, such as Homebrew or apt.
Vendoring: copying a package's installed files out of the cache and into
the project tree, for build systems that can only read inputs from inside the
project.
Verb: one of FETCH, STAGE, BUILD, INSTALL, SETUP. Each is a
string, a table, a function, or omitted.
Weak reference: a dependency query with a fallback, used only when the
project does not already provide a match.