Resolved records
Lanes
The three key lanes (materials/layers/patterns) plus views[] and the document's sun/environment, all resolved — Changes.lanes only when this differs (by value) from the last one emitted (EngineSession.lanes), so a door that touched no lane record ships no lane data at all.
Used by: Changes.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ResolvedEnvironment } from "./ResolvedEnvironment.js";
import type { ResolvedLayer } from "./ResolvedLayer.js";
import type { ResolvedMaterial } from "./ResolvedMaterial.js";
import type { ResolvedPattern } from "./ResolvedPattern.js";
import type { ResolvedView } from "./ResolvedView.js";
import type { Sun } from "./Sun.js";
/**
* The three key lanes (materials/layers/patterns) plus `views[]` and the
* document's sun/environment, all resolved — `Changes.lanes` only when
* this differs (by value) from the last one emitted
* (`EngineSession.lanes`), so a door that touched no lane record ships no
* lane data at all.
*/
export type Lanes = {
/**
* derived — every resolved `materials[]` record.
*/
materials: Array<ResolvedMaterial>,
/**
* derived — every resolved `layers[]` record.
*/
layers: Array<ResolvedLayer>,
/**
* derived — every resolved `patterns[]` record.
*/
patterns: Array<ResolvedPattern>,
/**
* derived — every resolved `views[]` record.
*/
views: Array<ResolvedView>,
/**
* derived — the resolved `settings.environment`; absent = none authored.
*/
environment?: ResolvedEnvironment,
/**
* derived — the resolved sun, off `environment`'s site+moment.
*/
sun?: Sun, };| field | type | optional | class | doc |
|---|---|---|---|---|
materials | Array<ResolvedMaterial> | no | derived | derived — every resolved materials[] record. |
layers | Array<ResolvedLayer> | no | derived | derived — every resolved layers[] record. |
patterns | Array<ResolvedPattern> | no | derived | derived — every resolved patterns[] record. |
views | Array<ResolvedView> | no | derived | derived — every resolved views[] record. |
environment | ResolvedEnvironment | yes | derived | derived — the resolved settings.environment; absent = none authored. |
sun | Sun | yes | derived | derived — the resolved sun, off environment's site+moment. |
ResolvedEnvironment
Used by: Lanes.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ResolvedEnvironment = {
/**
* intent — sky colour, CSS string.
*/
skyColor?: string,
/**
* intent — ground colour, CSS string.
*/
groundColor?: string,
/**
* intent — sky light intensity, lux.
*/
skyLux?: number,
/**
* identity — the resolved HDRI address (the `parameter`'s evaluated
* value, or the literal `url`, H6). The renderer receives an address
* and never resolves a parameter itself.
*/
hdriUrl?: string,
/**
* intent — HDRI brightness multiplier.
*/
hdriIntensity?: number, };| field | type | optional | class | doc |
|---|---|---|---|---|
skyColor | string | yes | intent | intent — sky colour, CSS string. |
groundColor | string | yes | intent | intent — ground colour, CSS string. |
skyLux | number | yes | intent | intent — sky light intensity, lux. |
hdriUrl | string | yes | identity | identity — the resolved HDRI address (the parameter's evaluated value, or the literal url, H6). The renderer receives an address and never resolves a parameter itself. |
hdriIntensity | number | yes | intent | intent — HDRI brightness multiplier. |
ResolvedLayer
A name a row/placement carries. No color/lineWidth — pure classification (owner decision 2026-09-04).
Used by: Lanes.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { PerViewFlag } from "./PerViewFlag.js";
/**
* A name a row/placement carries. No color/lineWidth — pure classification
* (owner decision 2026-09-04).
*/
export type ResolvedLayer = {
/**
* identity — the node's own key.
*/
key: string,
/**
* intent — per-view visibility of every row/placement carrying this
* layer, resolved from the layer's own `visible` property (same
* `PerViewFlag` an object's placement carries). Absent = every view.
*/
visible: PerViewFlag,
/**
* intent — free-form record data.
*/
attributes?: Record<string, unknown>, };| field | type | optional | class | doc |
|---|---|---|---|---|
key | string | no | identity | identity — the node's own key. |
visible | PerViewFlag | no | intent | intent — per-view visibility of every row/placement carrying this layer, resolved from the layer's own visible property (same PerViewFlag an object's placement carries). Absent = every view. |
attributes | Record<string, unknown> | yes | intent | intent — free-form record data. |
ResolvedMaterial
Used by: Lanes.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ResolvedMaterial = {
/**
* identity — the node's own key.
*/
key: string,
/**
* intent — CSS colour; an unauthored one is the catalog default (`catalog/lanes.rs`).
*/
baseColor: string,
/**
* intent — texture image address.
*/
texture?: string,
/**
* intent — normal-map image address.
*/
normalTexture?: string,
/**
* intent — roughness-map image address.
*/
roughnessTexture?: string,
/**
* intent — metallic-map image address.
*/
metallicTexture?: string,
/**
* intent — displacement-map image address.
*/
displacementTexture?: string,
/**
* intent — displacement height multiplier.
*/
displacementScale?: number,
/**
* intent — ambient-occlusion-map image address.
*/
aoTexture?: string,
/**
* intent — physical mm of one texture tile along u, finite and > 0; an
* unauthored one is the catalog default (`catalog/lanes.rs`).
*/
tileWidth: number,
/**
* intent — physical mm of one texture tile along v, finite and > 0; an
* unauthored one is the catalog default (`catalog/lanes.rs`).
*/
tileHeight: number,
/**
* intent — with a texture, the texture is tinted by white lerped toward
* `baseColor` by this factor (0 = untinted texture, 1 = full `baseColor`
* tint); without a texture it has no effect. An unauthored one is the
* catalog default (`catalog/material_properties.rs`).
*/
colorFactor: number,
/**
* intent — 0..1 alpha; an unauthored one is the catalog default
* (`catalog/material_properties.rs`).
*/
opacity: number,
/**
* intent — 0..1 PBR roughness; an unauthored one is the catalog default
* (`catalog/material_properties.rs`).
*/
roughness: number,
/**
* intent — 0..1 PBR metallic; an unauthored one is the catalog default
* (`catalog/material_properties.rs`).
*/
metallic: number,
/**
* intent — alpha-cutout threshold; PRESENCE alone selects cutout mode.
*/
alphaTest?: number,
/**
* intent — CSS colour.
*/
emissive?: string,
/**
* intent — emissive-map image address.
*/
emissiveTexture?: string,
/**
* intent — emissive brightness multiplier.
*/
emissiveIntensity?: number,
/**
* intent — render both faces of a triangle.
*/
doubleSided?: boolean,
/**
* intent — 0..1 glTF transmission.
*/
transmission?: number,
/**
* intent — glTF volume thickness, mm.
*/
thickness?: number,
/**
* intent — glTF volume attenuation colour.
*/
attenuationColor?: string,
/**
* intent — glTF volume attenuation distance, mm.
*/
attenuationDistance?: number,
/**
* intent — index of refraction.
*/
ior?: number,
/**
* intent — 0..1 clearcoat layer strength.
*/
clearcoat?: number,
/**
* intent — 0..1 clearcoat roughness.
*/
clearcoatRoughness?: number,
/**
* intent — CSS colour.
*/
sheenColor?: string,
/**
* intent — 0..1 sheen roughness.
*/
sheenRoughness?: number,
/**
* intent — free-form record data.
*/
attributes?: Record<string, unknown>,
/**
* identity — the `patterns[]` record drawn where a section cuts this
* material, by key.
*/
cutPattern?: string, };| field | type | optional | class | doc |
|---|---|---|---|---|
key | string | no | identity | identity — the node's own key. |
baseColor | string | no | intent | intent — CSS colour; an unauthored one is the catalog default (catalog/lanes.rs). |
texture | string | yes | intent | intent — texture image address. |
normalTexture | string | yes | intent | intent — normal-map image address. |
roughnessTexture | string | yes | intent | intent — roughness-map image address. |
metallicTexture | string | yes | intent | intent — metallic-map image address. |
displacementTexture | string | yes | intent | intent — displacement-map image address. |
displacementScale | number | yes | intent | intent — displacement height multiplier. |
aoTexture | string | yes | intent | intent — ambient-occlusion-map image address. |
tileWidth | number | no | intent | intent — physical mm of one texture tile along u, finite and > 0; an unauthored one is the catalog default (catalog/lanes.rs). |
tileHeight | number | no | intent | intent — physical mm of one texture tile along v, finite and > 0; an unauthored one is the catalog default (catalog/lanes.rs). |
colorFactor | number | no | intent | intent — with a texture, the texture is tinted by white lerped toward baseColor by this factor (0 = untinted texture, 1 = full baseColor tint); without a texture it has no effect. An unauthored one is the catalog default (catalog/material_properties.rs). |
opacity | number | no | intent | intent — 0..1 alpha; an unauthored one is the catalog default (catalog/material_properties.rs). |
roughness | number | no | intent | intent — 0..1 PBR roughness; an unauthored one is the catalog default (catalog/material_properties.rs). |
metallic | number | no | intent | intent — 0..1 PBR metallic; an unauthored one is the catalog default (catalog/material_properties.rs). |
alphaTest | number | yes | intent | intent — alpha-cutout threshold; PRESENCE alone selects cutout mode. |
emissive | string | yes | intent | intent — CSS colour. |
emissiveTexture | string | yes | intent | intent — emissive-map image address. |
emissiveIntensity | number | yes | intent | intent — emissive brightness multiplier. |
doubleSided | boolean | yes | intent | intent — render both faces of a triangle. |
transmission | number | yes | intent | intent — 0..1 glTF transmission. |
thickness | number | yes | intent | intent — glTF volume thickness, mm. |
attenuationColor | string | yes | intent | intent — glTF volume attenuation colour. |
attenuationDistance | number | yes | intent | intent — glTF volume attenuation distance, mm. |
ior | number | yes | intent | intent — index of refraction. |
clearcoat | number | yes | intent | intent — 0..1 clearcoat layer strength. |
clearcoatRoughness | number | yes | intent | intent — 0..1 clearcoat roughness. |
sheenColor | string | yes | intent | intent — CSS colour. |
sheenRoughness | number | yes | intent | intent — 0..1 sheen roughness. |
attributes | Record<string, unknown> | yes | intent | intent — free-form record data. |
cutPattern | string | yes | identity | identity — the patterns[] record drawn where a section cuts this material, by key. |
ResolvedPattern
Used by: Lanes.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { LineFamily } from "./LineFamily.js";
export type ResolvedPattern = {
/**
* identity — the node's own key.
*/
key: string,
/**
* geometry — the drawn families, painted in array order. Never empty.
*/
lineFamilies: Array<LineFamily>,
/**
* intent — free-form record data.
*/
attributes?: Record<string, unknown>, };| field | type | optional | class | doc |
|---|---|---|---|---|
key | string | no | identity | identity — the node's own key. |
lineFamilies | Array<LineFamily> | no | geometry | geometry — the drawn families, painted in array order. Never empty. |
attributes | Record<string, unknown> | yes | intent | intent — free-form record data. |
ResolvedView
One evaluated views[] entry, tagged by its evaluated projection. Two variants, perspective and orthographic; style rides on every variant.
Used by: Lanes.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ResolvedStyle } from "./ResolvedStyle.js";
/**
* One evaluated `views[]` entry, tagged by its evaluated `projection`. Two
* variants, perspective and orthographic; `style` rides on every variant.
*/
export type ResolvedView = { "type": "perspective",
/**
* identity — the view node's own key.
*/
key: string,
/**
* geometry — eye position.
*/
position: [number, number, number],
/**
* geometry — look-at point, distinct from `position`.
*/
target: [number, number, number],
/**
* geometry — up direction, not parallel to (target - position).
*/
up: [number, number, number],
/**
* intent — vertical field of view, degrees, in (0, 180).
*/
fov: number,
/**
* intent — display style for this view.
*/
style: ResolvedStyle, } | { "type": "orthographic",
/**
* identity — the view node's own key.
*/
key: string,
/**
* geometry — eye position.
*/
position: [number, number, number],
/**
* geometry — look-at point, distinct from `position`.
*/
target: [number, number, number],
/**
* geometry — up direction, not parallel to (target - position).
*/
up: [number, number, number],
/**
* intent — world height the frame shows, mm; not an elevation.
*/
height: number,
/**
* intent — display style for this view.
*/
style: ResolvedStyle, };ResolvedView — perspective
| field | type | optional | class | doc |
|---|---|---|---|---|
type | "perspective" | no | tag | — |
key | string | no | identity | identity — the view node's own key. |
position | [number, number, number] | no | geometry | geometry — eye position. |
target | [number, number, number] | no | geometry | geometry — look-at point, distinct from position. |
up | [number, number, number] | no | geometry | geometry — up direction, not parallel to (target - position). |
fov | number | no | intent | intent — vertical field of view, degrees, in (0, 180). |
style | ResolvedStyle | no | intent | intent — display style for this view. |
ResolvedView — orthographic
| field | type | optional | class | doc |
|---|---|---|---|---|
type | "orthographic" | no | tag | — |
key | string | no | identity | identity — the view node's own key. |
position | [number, number, number] | no | geometry | geometry — eye position. |
target | [number, number, number] | no | geometry | geometry — look-at point, distinct from position. |
up | [number, number, number] | no | geometry | geometry — up direction, not parallel to (target - position). |
height | number | no | intent | intent — world height the frame shows, mm; not an elevation. |
style | ResolvedStyle | no | intent | intent — display style for this view. |
Sun
geometry — unit vector TOWARD the sun, Z-up. direction[2] < 0 is a night study, not an error.
Used by: Lanes.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
/**
* geometry — unit vector TOWARD the sun, Z-up. `direction[2] < 0` is a
* night study, not an error.
*/
export type Sun = {
/**
* geometry — unit vector toward the sun, Z-up.
*/
direction: [number, number, number],
/**
* intent — sun light intensity, lux.
*/
lux: number,
/**
* intent — absent === the renderer's own daylight temperature (5500K).
*/
kelvin?: number, };| field | type | optional | class | doc |
|---|---|---|---|---|
direction | [number, number, number] | no | geometry | geometry — unit vector toward the sun, Z-up. |
lux | number | no | intent | intent — sun light intensity, lux. |
kelvin | number | yes | intent | intent — absent === the renderer's own daylight temperature (5500K). |
PerViewFlag
intent — properties.visible: absent/true = every view, false = none, a list = exactly those view keys, an arrow (camera) => boolean = the cameras the function holds for (its source text, run at render resolve time against the session's camera by Sight::satisfies, because a component's own views are ignored once it is placed and the host's camera is unknown inside it). Empty list refused at evaluate. Render ships it as All(bool) against the session's Sight (render::placement_shown): the active view's pose, else the free camera the host reported; a list holds only in a named view, and with no pose at all nothing holds.
Used by: Instance, ResolvedLayer, SectionEntity.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
/**
* intent — `properties.visible`: absent/`true` = every view, `false` = none,
* a list = exactly those view keys, an arrow `(camera) => boolean` = the
* cameras the function holds for (its source text, run at render resolve time
* against the session's camera by `Sight::satisfies`, because a component's
* own `views` are ignored once it is placed and the host's camera is unknown
* inside it). Empty list refused at evaluate. Render ships it as `All(bool)`
* against the session's `Sight` (`render::placement_shown`): the active view's
* pose, else the free camera the host reported; a list holds only in a named
* view, and with no pose at all nothing holds.
*/
export type PerViewFlag = boolean | Array<string> | string;One of:
booleanArray<string>string
LineFamily
Used by: ResolvedPattern.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type LineFamily = {
/**
* geometry — degrees CCW from hatch-space +X.
*/
angle: number,
/**
* geometry — a point the first line passes through, hatch space, mm.
*/
origin: [number, number],
/**
* geometry — slide along the line direction between lines, mm.
*/
shift: number,
/**
* geometry — distance across between lines, mm. Never zero.
*/
spacing: number,
/**
* geometry — SVG-spelled dash cycle: all positive, even draws, odd lifts.
*/
dashes?: Array<number>,
/**
* geometry — stroke width, mm.
*/
lineWidth?: number,
/**
* intent — CSS colour.
*/
color?: string,
/**
* geometry — dot mark diameter, mm.
*/
dotSize?: number, };| field | type | optional | class | doc |
|---|---|---|---|---|
angle | number | no | geometry | geometry — degrees CCW from hatch-space +X. |
origin | [number, number] | no | geometry | geometry — a point the first line passes through, hatch space, mm. |
shift | number | no | geometry | geometry — slide along the line direction between lines, mm. |
spacing | number | no | geometry | geometry — distance across between lines, mm. Never zero. |
dashes | Array<number> | yes | geometry | geometry — SVG-spelled dash cycle: all positive, even draws, odd lifts. |
lineWidth | number | yes | geometry | geometry — stroke width, mm. |
color | string | yes | intent | intent — CSS colour. |
dotSize | number | yes | geometry | geometry — dot mark diameter, mm. |
ResolvedStyle
Used by: ResolvedView.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Shading } from "./Shading.js";
export type ResolvedStyle = {
/**
* intent — authored background override, resolved from the view's
* `properties`. Absent = the host's own default background.
*/
background?: string,
/**
* intent — authored display mode, resolved from the view's
* `properties`. Absent = the host's own default shading.
*/
shading?: Shading,
/**
* intent — LINEAR multiplier on the metered exposure, realistic only.
*/
exposure?: number,
/**
* intent — authored shadow-study overlay, resolved from the view's
* `properties`. Absent = off.
*/
shadows?: boolean,
/**
* intent — authored world-axes visibility, resolved from the view's
* `properties`. Absent = the host default (on).
*/
axes?: boolean, };| field | type | optional | class | doc |
|---|---|---|---|---|
background | string | yes | intent | intent — authored background override, resolved from the view's properties. Absent = the host's own default background. |
shading | Shading | yes | intent | intent — authored display mode, resolved from the view's properties. Absent = the host's own default shading. |
exposure | number | yes | intent | intent — LINEAR multiplier on the metered exposure, realistic only. |
shadows | boolean | yes | intent | intent — authored shadow-study overlay, resolved from the view's properties. Absent = off. |
axes | boolean | yes | intent | intent — authored world-axes visibility, resolved from the view's properties. Absent = the host default (on). |
Shading
Shaded is the self-lit matcap editing look and the default; Realistic is the only mode that materialises settings.environment; Wireframe is the line overlay; Xray is the shaded look with see-through faces and the edges still drawn.
Used by: ResolvedStyle.
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
/**
* `Shaded` is the self-lit matcap editing look and the default; `Realistic`
* is the only mode that materialises `settings.environment`; `Wireframe` is
* the line overlay; `Xray` is the shaded look with see-through faces and the
* edges still drawn.
*/
export type Shading = "shaded" | "wireframe" | "realistic" | "xray";Values: "shaded", "wireframe", "realistic", "xray".