Resolved records
What the record lanes (materials, layers, patterns, views, environment) evaluate to.
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; the renderer repeats `1/tile`.
*/
tileWidth?: number,
/**
* intent — physical mm of one texture tile along v; the renderer repeats `1/tile`.
*/
tileHeight?: number,
/**
* intent — base colour multiply factor.
*/
colorFactor?: number,
/**
* intent — 0..1 alpha.
*/
opacity?: number,
/**
* intent — 0..1 PBR roughness.
*/
roughness?: number,
/**
* intent — 0..1 PBR metallic.
*/
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 | yes | intent | intent — physical mm of one texture tile along u; the renderer repeats 1/tile. |
tileHeight | number | yes | intent | intent — physical mm of one texture tile along v; the renderer repeats 1/tile. |
colorFactor | number | yes | intent | intent — base colour multiply factor. |
opacity | number | yes | intent | intent — 0..1 alpha. |
roughness | number | yes | intent | intent — 0..1 PBR roughness. |
metallic | number | yes | intent | intent — 0..1 PBR metallic. |
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. Empty list refused at evaluate. Render ships it as All(bool) against the session's active view (render::placement_shown); the free camera (no active view) is in no list.
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. Empty list refused at evaluate. Render
* ships it as `All(bool)` against the session's active view
* (`render::placement_shown`); the free camera (no active view) is in no list.
*/
export type PerViewFlag = boolean | Array<string>;One of:
booleanArray<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.
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.
*/
export type Shading = "shaded" | "wireframe" | "realistic";Values: "shaded", "wireframe", "realistic".