MetaObjects Metamodel — Providers
The metamodel is composed from concern providers. Each owns the type/subtypes it registers and may contribute attributes to types another provider owns. This is the ownership lens over the same vocabulary INDEX.md lists by type.
metaobjects-core-types
Core metaobjects metamodel types and subtypes.
Owns (registers): attr.base, attr.boolean, attr.class, attr.double, attr.expression, attr.filter, attr.int, attr.intMap, attr.long, attr.properties, attr.string, field.base, field.boolean, field.currency, field.date, field.decimal, field.double, field.enum, field.float, field.inet, field.int, field.long, field.map, field.object, field.string, field.time, field.timestamp, field.uri, field.uuid, identity.primary, identity.reference, identity.secondary, layout.base, layout.dataGrid, object.base, object.entity, object.projection, object.value, origin.aggregate, origin.base, origin.computed, origin.first, origin.passthrough, relationship.aggregation, relationship.association, relationship.base, relationship.composition, source.base, source.rdb, template.base, template.output, template.prompt, template.toolcall, validator.array, validator.atLeastOne, validator.base, validator.comparison, validator.length, validator.numeric, validator.presentIff, validator.regex, validator.required, validator.requiredWhen, view.base, view.currency
Contributes attributes:
field.base:@default,@mutability,@required,@uniquefield.currency:@currencyfield.decimal:@precision,@scalefield.enum:@intValueMap,@provided,@valuesfield.inet:@lenientfield.map:@objectRef,@valueTypefield.object:@objectReffield.string:@maxLength,@stringFormatfield.uri:@lenientidentity.primary:@fields,@generationidentity.reference:@enforce,@fields,@referencesidentity.secondary:@fieldsobject.entity:@discriminator,@discriminatorValueobject.projection:@filterorigin.aggregate:@agg,@distinct,@filter,@of,@orderBy,@viaorigin.computed:@exprorigin.first:@filter,@of,@orderBy,@viaorigin.passthrough:@convert,@from,@viarelationship.aggregation:@cardinality,@objectRef,@onDelete,@onUpdate,@sourceRefField,@symmetric,@throughrelationship.association:@cardinality,@objectRef,@onDelete,@onUpdate,@sourceRefField,@symmetric,@throughrelationship.base:@cardinality,@objectRef,@onDelete,@onUpdate,@sourceRefField,@symmetric,@throughrelationship.composition:@cardinality,@objectRef,@onDelete,@onUpdate,@sourceRefField,@symmetric,@throughtemplate.output:@format,@htmlBodyRef,@kind,@maxChars,@owner,@payloadRef,@requiredTags,@since,@subjectRef,@textBodyRef,@textReftemplate.prompt:@format,@maxChars,@maxTokens,@model,@owner,@payloadRef,@promptStyle,@requiredSlots,@requiredTags,@responseFormat,@responseRef,@since,@textReftemplate.toolcall:@maxTokens,@owner,@payloadRef,@since,@toolNamevalidator.array:@max,@minvalidator.atLeastOne:@fieldsvalidator.base:@max,@minvalidator.comparison:@left,@op,@rightvalidator.length:@max,@minvalidator.numeric:@max,@minvalidator.presentIff:@equals,@field,@whenvalidator.regex:@max,@min,@patternvalidator.requiredWhen:@equals,@field,@when
metaobjects-db
DB-domain attributes — @column / @db.indexed / @dbColumnType on every field, @storage on field.object, @autoSet on temporal fields, @table/@kind/@role/@schema on source.rdb.
Contributes attributes:
field.base:@column,@db.indexed,@dbColumnTypefield.boolean:@column,@db.indexed,@dbColumnTypefield.currency:@column,@db.indexed,@dbColumnTypefield.date:@autoSet,@column,@db.indexed,@dbColumnTypefield.decimal:@column,@db.indexed,@dbColumnTypefield.double:@column,@db.indexed,@dbColumnTypefield.enum:@column,@db.indexed,@dbColumnTypefield.float:@column,@db.indexed,@dbColumnTypefield.inet:@column,@db.indexed,@dbColumnTypefield.int:@column,@db.indexed,@dbColumnTypefield.long:@column,@db.indexed,@dbColumnTypefield.map:@column,@db.indexed,@dbColumnTypefield.object:@column,@db.indexed,@dbColumnType,@storagefield.string:@column,@db.indexed,@dbColumnTypefield.time:@autoSet,@column,@db.indexed,@dbColumnTypefield.timestamp:@autoSet,@column,@db.indexed,@dbColumnType,@localTimefield.uri:@column,@db.indexed,@dbColumnTypefield.uuid:@column,@db.indexed,@dbColumnTypeidentity.reference:@constraintName,@onDelete,@onUpdateidentity.secondary:@expr,@orders,@using,@whereindex.lookup:@expr,@orders,@using,@wheresource.rdb:@function,@kind,@materializedView,@parameterRef,@proc,@role,@schema,@sql,@table,@unmanaged,@view
metaobjects-documentation
Universal documentation common attrs (description / title / notes / deprecated / replacedBy / seeAlso / aliases) accepted on every metatype.
Universal attributes (every node): @aliases, @deprecated, @description, @notes, @replacedBy, @seeAlso, @summary, @title
metaobjects-prompt
Prompt / AI + serialization domain — @xmlText / @example / @instruction field markers on every field subtype, the @enumAlias/@enumDoc/@coerceDefault/@normalize tolerant-extract overlays on field.enum, and the object-level @normalize default on object.value.
Contributes attributes:
field.base:@example,@instruction,@xmlTextfield.boolean:@example,@instruction,@xmlTextfield.currency:@example,@instruction,@xmlTextfield.date:@example,@instruction,@xmlTextfield.decimal:@example,@instruction,@xmlTextfield.double:@example,@instruction,@xmlTextfield.enum:@coerceDefault,@enumAlias,@enumDoc,@example,@instruction,@normalize,@xmlTextfield.float:@example,@instruction,@xmlTextfield.inet:@example,@instruction,@xmlTextfield.int:@example,@instruction,@xmlTextfield.long:@example,@instruction,@xmlTextfield.map:@example,@instruction,@xmlTextfield.object:@example,@instruction,@xmlTextfield.string:@example,@instruction,@xmlTextfield.time:@example,@instruction,@xmlTextfield.timestamp:@example,@instruction,@xmlTextfield.uri:@example,@instruction,@xmlTextfield.uuid:@example,@instruction,@xmlTextobject.value:@normalize
metaobjects-ui
UI/query-surface domain — @filterable / @sortable / @sortableDefaultOrder field markers driving generated CRUD filter + sort allowlists (Project D).
Contributes attributes:
field.base:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.boolean:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.currency:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.date:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.decimal:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.double:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.enum:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.float:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.inet:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.int:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.long:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.map:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.object:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.string:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.time:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.timestamp:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.uri:@filterable,@formExclude,@sortable,@sortableDefaultOrderfield.uuid:@filterable,@formExclude,@sortable,@sortableDefaultOrderlayout.dataGrid:@columns,@defaultSortField,@defaultSortOrder,@filter,@filterable,@pageSizeview.currency:@locale
metaobjects-ui-web
TS-web presentation view attrs — @rows (view.textarea) and the view.image control attrs. Applied only in TypeScript; the non-TS ports mirror the spec file but never apply this provider (the view subtypes are TS-web presentation-only).
Contributes attributes:
view.image:@accept,@aspectRatio,@maxBytes,@maxEdge,@storeview.textarea:@rows