Plugins

Plugins add named validators, transformers, and derived functions to JSON templates. Built-ins are always available, including with plugins: []. Each namespace has its own reference page below.

Plugin guide

Shared rules and custom registration live in the plugin guide:

Namespace reference

Namespace Scope Availability
array Array-specific operations Reserved; no operations yet
boolean Boolean operations Reserved; no operations yet
collection General collection operations Available
core General operations across types Available
date Dates, datetimes, and intervals Available
email Email addresses and domains Available
encoding Encoding and decoding Reserved; no operations yet
id Identifiers such as UUIDs Reserved; no operations yet
iso ISO country, currency, and language codes Reserved; no operations yet
json JSON text Reserved; no operations yet
network IP addresses and network identifiers Reserved; no operations yet
number Numeric operations Reserved; no operations yet
phone Phone numbers Reserved; no operations yet
style Named casing and word styles Available
text Trimming and whitespace normalization Available
time Times of day and durations Reserved; no operations yet
url URLs and TLDs Reserved; no operations yet

Reserved namespaces

All 17 namespaces listed above are reserved. Custom plugins using any of these names raise RESERVED_PLUGIN_NAME, even when empty. A reserved namespace does not necessarily have implemented operations; availability is listed in the table above. Adding a reserved namespace in the future is a compatibility change for custom plugins using that name.

Built-in operations

Browse the namespace reference for operation signatures, validation rules, and examples. Built-ins cannot be overridden. Operation names require their namespace, such as ! email.email, > text.trim, or = date.interval(start,end).

Derived functions

Functions read evaluated template properties with bare paths, or original render inputs with $.name, and produce a typed result. See the function guide for custom signatures and execution order, or date intervals for a complete example.

Output omission

Use terminal > core.omit to remove a property or array entry after evaluation. See the core namespace for restrictions, fallback behavior, and examples.