Extract fields
To extract order IDs, amounts, or other business fields, declare rules, select the fields needed for this call, and read values by their field status. For goals and constraints alone, use the quick start without a Schema.
Start with one field
Declare orderId as a string and select it in parse. Preserve "000123" and its leading zeros. Complete installation and model configuration, save this complete file as parse-en.mjs, then run it:
schema-dsl/pure declares a required string; fields selects only orderId. Find the present field report, then its owning intent using intentId. Reading only the first goal is insufficient. See the Schema reference for the JSON Schema equivalent and boundaries.
If the user says only “Look up the order,” inspect field status and issues. Do not manufacture an ID from a Schema. See the complete three-turn example for VIP dependencies.
Download complete field-state material. Applicability also needs evidence; do not force every Schema field onto every intent.
An empty field definition with all selects no fields. New extraction is limited to selected top-level fields. fields=[] does not clear all inherited values. See the response and multi-turn guide.
VIP=true with discount=15 is valid. Changing only VIP=false can invalidate the old 15; later selecting discount and supplying 5 resolves it. A direct change to an unselected old field removes the old value without extracting the unselected replacement. Unchanged, unselected inherited values remain without claiming revalidation.
Multiple orders and falsy values
Locate values using container + intentId + path; see two complete orders. false, 0, and an empty string can be valid. Do not use if(value) as the success check. null is explicit_null only when explicitly supplied and allowed. See all eight states.
Supported rules
Use the Schema support matrix. This page covers extraction and consumption.
Formats and definition boundaries
See definition boundaries, then continue with Multi-turn changes.