schema library

The component schema descriptor model, pure-data descriptions of component types (properties, kinds, defaults, constraints) that travel across process boundaries. See component_schema.dart for the model and property_constraints.dart for the constraint taxonomy.

Classes

AngleRadians
A number stored in radians, displayed and edited in degrees.
AssetExtensions
Filters an asset picker to the given file extensions (with leading dots).
ComponentPropertyDef
A declared, editable property of a component type: the single source of truth for its name, carried kind, default, constraints, and docs.
ComponentSchema
A component type's full schema, the unit that travels (dev channel, project cache, package manifests, MCP).
GizmoArrow
An arrow from the node origin along a node-local axis.
GizmoColor
A color parameter, a literal linear RGBA or a binding to a color/vec3 property. A null GizmoPrimitive.color means the editor theme's gizmo color (accent when selected).
GizmoCondition
Draws a primitive only when the property at path equals equals, for union-kind properties (a collider's shape variant).
GizmoFrustum
A perspective view frustum opening along node-local +Z (the engine camera looks along its node's local +Z).
GizmoIcon
An unscaled billboard glyph at the node origin, the component's clickable presence when the node has no mesh.
GizmoLines
Literal node-local line segments, consumed as point pairs.
GizmoPrimitive
One drawable unit of a gizmo. Subtypes carry their geometry parameters; the shared fields govern visibility, color, and conditional drawing.
GizmoScalar
A scalar parameter, a literal or a binding to a numeric property.
GizmoSpec
The declarative gizmo block a component schema carries, an ordered list of primitives the editor draws for components of that type.
GizmoWireBox
A wireframe box, sized by literal half extents or a bound vec3 property.
GizmoWireCapsule
A wireframe capsule centered on the node origin, its length along axis.
GizmoWireCircle
A wireframe circle centered on the node origin, in the plane normal to axis.
GizmoWireCone
A wireframe cone with its apex at the node origin, opening along axis.
GizmoWireCylinder
A wireframe cylinder centered on the node origin, its length along axis.
GizmoWireRect
A wireframe rectangle centered on the node origin, in the plane normal to axis.
GizmoWireSphere
A wireframe sphere (three great circles).
IntRange
A hard inclusive clamp on an integer value; a null bound is open. Inspector, stepper or slider when both bounds are present.
LayerMask32
A 32-bit bitmask (collision layers/masks, render layers). Inspector, a bitmask editor.
MinCount
A list must hold at least count entries.
Multiline
A multi-line text field.
Normalized
A vector normalized on write (joint axes).
PowerOfTwo
An integer constrained to powers of two within min..max (shadow map resolutions). Inspector, a dropdown of the powers in range.
PropertyConstraint<T>
A single declared constraint on a property value.
Range
A hard inclusive clamp on a numeric value; a null bound is open. Inspector, clamped field. Coercion and realize clamp into range.
RgbColor
A vec3 that carries a linear RGB color (light colors), edited with a color picker while staying vector-encoded for document compatibility.
SoftRange
The slider range for a numeric value, presentation only; values outside it remain valid, unlike Range.
SortedDescending
A list of objects must stay sorted by strictly descending fieldName (LOD levels by screen size).
Step
The scrub/step increment for a numeric field.
TextPattern
A soft-validated regular expression on a string (diagnostic, not a rejection).
UnknownConstraint
A constraint tag this build does not recognize, preserved verbatim so a re-encode never drops newer metadata.

Enums

ComponentPropertyKind
The editable type of one component property, used by the inspector to pick a widget, by tooling to validate input, and by the format to know how a value is carried.
GizmoVisibility
When a primitive draws relative to the owning node's selection state.

Functions

decodeComponentSchemas(Object? json) List<ComponentSchema>
Decodes a schema list, skipping malformed entries.
encodeComponentSchemas(Iterable<ComponentSchema> schemas) List<Object?>
Encodes a schema list (a manifest or cache payload).
propertyValuesEqual(PropertyValue? a, PropertyValue? b) bool
Whether a and b carry the same value, comparing structurally (vectors by components, lists and maps element-wise, refs by id).