Skip to content
Shapemetry

@huukhanhnguyen/model / registry/contract

registry/contract

LINEAR_LANE_TYPE

const LINEAR_LANE_TYPE: Record<string, string>

Đ2: what a linear fold lane CARRIES.

Two shapes, not one. A STEP lane is narrow — every step's return is exactly the lane type (material, view…). An ENTITY lane (scene/component/flat) carries the UNION objectData[]: a producer's return names what it CREATES (textEntity → textData[]), the stream it lands in stays mixed. So the law there is "returns a stream", not "equals the lane type" — see tests/typeTable.test.ts's Đ2 case for the exact predicate.


RETURN_LANE_OF

const RETURN_LANE_OF: Record<string, string>

Lane type a fold-role-step method belongs to, derived from its return. Used by validate to place methods without reading attributes.lane.

DERIVED, not listed: a lane's step type is the lane name minus the plural s. That held for most entries and was quietly broken by the rest (image→textures), which is what made the type table unreadable — you could not tell a step type from its name (2026-07-25: that one renamed to texture). Adding a lane now means adding it here only, and the name it implies is the name it must have.


isDataDefinition()

isDataDefinition(def): def is DataDefinition

ObjectData-stream producer or transform.

Parameters

def

OperationDefinition

Returns

def is DataDefinition


isDataStreamReturn()

isDataStreamReturn(returnType): boolean

True when a definition's return is a data stream (list of scene data documents). Used by ExpressionNode unwrap and Group return.

Parameters

returnType

string | null | undefined

Returns

boolean


isStepDefinition()

isStepDefinition(def): def is StepDefinition

Linear-lane schema-only step.

Parameters

def

OperationDefinition

Returns

def is StepDefinition


isValueDefinition()

isValueDefinition(def): def is ValueDefinition

Parameters-header binding (foldRole "binding").

Parameters

def

OperationDefinition

Returns

def is ValueDefinition

Last updated: 📖 2 min readEdit on GitHub