plugin-candy-kind
| Placement | compiled-in (in-process) |
| Source | github.com/opencharly/charly/candy/plugin-candy-kind |
| Version | 2026.182.1600 |
| Candy | plugin-candy-kind |
This plugin is listed in charly/charly.yml’s compiled_plugins:, so its providers are compiled into the charly binary and register in-process.
Providers
Section titled “Providers”The reserved words this plugin serves:
candy— kind class
What it does
Section titled “What it does”The candy box⊻layer factory KIND — the LAST structural kind — relocated into a candy
(C2-candy; formerly the built-in candyKind in charly/plugin_candy.go). A candy: node is
EITHER a full IMAGE (base:/from: → uf.Box, the former box:) OR a LAYER fragment (→
uf.Candy). Its value is RICH + core-referencing (#Candy/#Box), so — like substrate — it
cannot be re-decoded from op.Params nor validated by a self-contained plugin schema. So
the HOST pre-decodes the CANONICAL node via the BOOTSTRAP-CRITICAL core candyIsImage +
buildCandy (the single decode source that STAYS core — the discovered-candy pre-check
calls it directly), validates its value against the KEPT #CandyValue core def, and threads
the result in op.Env; this plugin’s OpLoad ECHOES it and the host folds the echo into
uf.Box / uf.Candy, byte-equivalent to the former in-proc candyKind decode. COMPILED-IN (in
the embedded compiled_plugins:) — which DISSOLVES the historical bootstrap-cycle blocker: a
compiled-in plugin registers at init, before any load, so it has NO fetch/build cycle. It
is the candy-KIND plugin; the sibling candy/plugin-candy is the DISTINCT command:candy
CLI authoring plugin. Also serves out-of-process via cmd/serve.
See also the candy reference for this candy’s install surface.