Metamodel — attr types
Each section below is one attr.<subType>. The Attributes table lists
the subtype's own + concern-contributed attributes (provider-tagged); universal
documentation attributes are omitted here (see providers.md).
Allowed children lists the structural child rules with their cardinality
(min..max, * = unbounded).
attr.base
Abstract base attribute — the polymorphic/unconstrained value-type marker. Stores its value type-preserved (never stringified), accepting any type; used for an untyped attr (e.g. a field's @default, whose value-type follows the owning field's subtype). Not authored directly: a attr.base node fails to load (ERR_ABSTRACT_SUBTYPE_AUTHORED) — this subtype is a registry anchor concrete subtypes inherit from, never a node in a document.
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.
attr.boolean
A boolean-valued metadata attribute. Coerces to and validates as true/false.
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.
attr.class
A class-/type-reference-valued metadata attribute. String-backed (a fully-qualified class or type name) used by binding facets.
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.
attr.double
A double-precision floating-point-valued metadata attribute. Coerces to and validates as a number.
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.
attr.expression
A structured expression tree over a base entity's own fields (closed node grammar: field/value refs, comparisons sharing the filter op vocabulary, isNull/isNotNull, and/or/not, coalesce). Backs origin.computed; a filter object embeds canonically. Additive node kinds (arithmetic/case/via-joined refs) are #159.
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.
attr.filter
A filter-expression-valued metadata attribute. Object-shaped value that desugars a preset filter to the canonical { field: { op: value } } form (scalar→eq, array→in, null→isNull; or/and recurse).
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.
attr.int
A 32-bit-integer-valued metadata attribute. Coerces to and validates as a number.
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.
attr.intMap
An object-shaped attribute whose values are all integers (e.g. field.enum's @intValueMap: {memberSymbol: int}). Generic shape check only; a consumer field type layers its own semantic rules (key-set membership, uniqueness) in its own content-rule validation.
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.
attr.long
A 64-bit-integer-valued metadata attribute. Coerces to and validates as a number.
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.
attr.properties
A key/value map attribute (a bag of arbitrary author-supplied properties). Object-shaped value; the registered escape hatch for author-supplied properties (exempt from the strict-attr check, ADR-0023).
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.
attr.string
A string-valued metadata attribute. Coerces to and validates as text; the default value-type for inline @-syntax attrs (array-of-string is the same subtype with isArray).
Owning provider: metaobjects-core-types
Attributes
No subtype-specific attributes.
Allowed children
No structural children.