Reference Schema
The variant for a reference, which is a bare include or, when it carries refinements, an extension.

Extends · closed

A variant of the — one of the shapes a schema is allowed to take.
type
The schema this one names: a schema document's URL (`hm://…` or `ipfs://<cid>`). Naming one of the nine kinds grounds a schema instead (see the kind-rooted variants), so a kind URL does not belong here. The other keys refine what is named.
properties
Fields the extension adds to (or overrides in) the base struct, as properties.
⟨ * : ⟩optional
values
Overrides the named schema's `values`: the schema extra keys (open struct) or map values must match.
optional
items
Overrides the named schema's `items`: the schema every list element must match.
optional
target
For a reference-valued string (`format: hm-url` or `format: ipfs-url`): the schema the referenced document or object is expected to conform to — an `hm://` schema-document URL or `ipfs://<cid>`. Advisory: an editor pre-seeds and validates the target against it; a validator does not dereference the reference.
optional
description
What the reference is for, when it is written inline; a published schema is described by its page.
optional
params
Type parameters that make this schema generic, each with its default schema.
⟨ * : ⟩optional
args
Applies a generic: binds the named schema's type parameters by name, falling back to their defaults when unbound.
⟨ * : ⟩optional
name
Legacy: a name some published schemas still carry. New schemas are named by their page.
optional

Include: a type that names another schema by its URL and nothing else: { "type": "hm://…" }. The node becomes exactly that schema. Adding any other key, such as properties, values, items, target or a leaf constraint, makes the node refine the schema it names instead. That is an extension. References and naming covers includes, links and extensions.

This document describes the schema/include-schema type, one variant of the meta-schema. Its formal schema is attached as the schemaDefinition in this document's metadata, so the app can show it and create values of this type. Typed documents explains how that works.

See also

    References and naming: include, typed link and extension, and why references are names.

    Extension: an include that also carries refinements.

    Link schema: a pointer to a separate block, where an include embeds a shape.

    hm:// URL: how a reference names its schema.

    Variant: the members of the meta-schema union.

Do you like what you are reading? Subscribe to receive updates.

Unsubscribe anytime