Per the Matter specification, an element is a data construct that supports an instance of data. So, a class.

Elements as defined by this package are a static data structure. Each element has a corresponding "Model" that is a proper class with runtime functionality related to the element.

interface BaseElement {
    constructor: any;
    asOf?: `${number}.${number}`;
    children?: BaseElement[];
    description?: string;
    details?: string;
    id?: number;
    isGlobal?: boolean;
    isSeed?: boolean;
    name: string;
    type?: string;
    until?: `${number}.${number}`;
    xref?: Specification.CrossReference;
}

Hierarchy (view full)

Constructors

constructor: any

Properties

asOf?: `${number}.${number}`

The first Matter specification in which this element appears.

children?: BaseElement[]

Child elements.

description?: string

A short summary of the element.

details?: string

A paragraph summary of the element.

id?: number

The ID of the element per Matter specification, either global or context-specific. A "machine appropriate" semantic differentiator.

isGlobal?: boolean

Is this a global element? Global elements are available in-scope for every cluster.

isSeed?: boolean

Is this a "seed" element? These are global types and cluster elements defined in the core specification, without which we are fairly incapacitated.

name: string

The key used for storing this element. A "human appropriate" semantic differentiator.

type?: string

If an element derives from another element, the name of the parent element goes here.

until?: `${number}.${number}`

The Matter specification revision in which this element was removed.

Reference to Matter specification document.