type

Spec

Spec : Dict

Spec models a type specification and the metadata slots.

meta sealed slots id

Spec qname as ref identifier

name

Simple name of spec

qname

Qualified name of spec formatted as lib::Type[.slot]

spec

Spec reference - always sys::Lib

lib

Parent library

parent

Parent spec for member specs

base

Base type of inheritance or null for sys::Obj

type

Value type

members

Map of children slot and global members

slots

Map of children slot members

globals

Map of children global members

abstract

Abstract types cannot be implemented directly by instance data

async

Indicates an asynchronous operation or function call

const

Indicates an immutable value

doc

Documentation description

fixed

Annotates a slot as a fixed value that must be equal to val

global

Indicates a global slot that defines a shape for all types that might override

inverse

Inverse query to run against parent

key

String key

maxSize

Applied to strings and lists to specify inclusive maximum length

maxVal

Inclusive maximum value for numbers

maybe

Indicates an optional type

minSize

Applied to strings and lists to specify inclusive minimum length

minVal

Inclusive minimum value for numbers

mixin

Indicates a mixin that adds meta/slots to an existing type

multiChoice

Applied to Choices to allow multiple selections

new

Indicates a constructor function

nodoc

Marks spec as undocumented and not officially supported

nosrc

Do not include source code in documentation

noSideEffects

Marks a function or operation as having no side effects

noInherit

Indicates a meta tag that is not inherited into subtypes

nonEmpty

Applied to strings to require value is non-empty when trimmed of whitespace

of

Item type for parameterized Seq/Query

ofs

Types used in compound types like And and Or

pattern

Regex pattern for scalar string encoding

quantity

Restrict number or unit enum to specific quantity

readonly

Indicates a readonly value that may not be written (but may mutate)

sealed

Sealed types cannot be extended outside of their own lib

static

Indicates a spec level slot versus an instance level slot

summary

Mark data as summary level for display in summarized tables and other views

transient

Indicates data which should not be persisted

unit

Restrict number or unit enum to specific unit

unitless

Restrict a number to have no unit

val

Default value for this slot

via

Named path to traverse to execute query

virtual

Used on a interface non-static slot to indicate it can be overridden subtypes

id Ref <sealed>

Spec qname as ref identifier

name Str <sealed>

Simple name of spec

qname Str <sealed>

Qualified name of spec formatted as lib::Type[.slot]

spec Ref <of:Spec, sealed>

Spec reference - always sys::Lib

lib Ref <of:Lib, sealed>

Parent library

parent Ref? <of:Spec, sealed>

Parent spec for member specs

base Ref? <of:Spec, sealed>

Base type of inheritance or null for sys::Obj

type Ref? <of:Spec, sealed>

Value type

members Dict <of:Spec, sealed>

Map of children slot and global members

slots Dict <of:Spec, sealed>

Map of children slot members

globals Dict <of:Spec, sealed>

Map of children global members

abstract Marker? <noInherit>

Abstract types cannot be implemented directly by instance data

async Marker?

Indicates an asynchronous operation or function call

const Marker?

Indicates an immutable value

doc Str?

Documentation description

fixed Marker?

Annotates a slot as a fixed value that must be equal to val

global Marker? <noInherit>

Indicates a global slot that defines a shape for all types that might override

inverse Str?

Inverse query to run against parent

key Str?

String key; used in enums to define normalized string identifier

maxSize Int?

Applied to strings and lists to specify inclusive maximum length

maxVal Self?

Inclusive maximum value for numbers

maybe Marker?

Indicates an optional type

minSize Int?

Applied to strings and lists to specify inclusive minimum length

minVal Self?

Inclusive minimum value for numbers

mixin Marker?

Indicates a mixin that adds meta/slots to an existing type

multiChoice Marker?

Applied to Choices to allow multiple selections

new Marker?

Indicates a constructor function

nodoc Marker?

Marks spec as undocumented and not officially supported

nosrc Marker?

Do not include source code in documentation

noSideEffects Marker?

Marks a function or operation as having no side effects. The function may or may not be pure in that calling it multiple times with the same arguments always evaluates to the same result.

noInherit Marker?

Indicates a meta tag that is not inherited into subtypes

nonEmpty Marker?

Applied to strings to require value is non-empty when trimmed of whitespace

of Ref? <of:Spec>

Item type for parameterized Seq/Query; target type for Ref/MultiRef

ofs List? <of:_0>

Types used in compound types like And and Or

pattern Str?

Regex pattern for scalar string encoding

quantity UnitQuantity?

Restrict number or unit enum to specific quantity

readonly Marker?

Indicates a readonly value that may not be written (but may mutate)

sealed Marker? <noInherit>

Sealed types cannot be extended outside of their own lib. If used on a interface slot, the slot cannot be overridden in a subtype.

static Marker?

Indicates a spec level slot versus an instance level slot

summary Marker?

Mark data as summary level for display in summarized tables and other views

transient Marker?

Indicates data which should not be persisted

unit Unit?

Restrict number or unit enum to specific unit

unitless Marker?

Restrict a number to have no unit

val Obj?

Default value for this slot

via Str?

Named path to traverse to execute query

virtual Marker?

Used on a interface non-static slot to indicate it can be overridden subtypes

Haxall 4.0.5 ∙ 24-Feb-2026 14:33 EST