CaptureResult.snapshot ​Contract 2.0.0 · package sha256
a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e· generated fromconfigurator-runtime.d.tsbyservices/onsite-scripter/scripts/build-contract-docs.mjs; edit the source, not this file.
Property of CaptureResult · stable · since 2.0.0
readonly snapshot: {
readonly source: 'render' | 'displayed' | 'other';
readonly revision: number;
readonly seq: number;
readonly frame: number;
readonly settled: boolean;
readonly sceneHash: string;
readonly camera: Pick<CameraState, 'position' | 'target' | 'fovDeg' | 'aspect'>;
readonly size: {
readonly width: number;
readonly height: number;
readonly pixelRatio: number;
};
readonly runtime: string;
};
What the image shows, for repeatability and audit.
source ​readonly source: 'render' | 'displayed' | 'other';
The source used ('render' or 'displayed').
revision ​readonly revision: number;
session.revision of the committed state captured.
seq ​readonly seq: number;
session.seq of the committed state captured.
frame ​readonly frame: number;
Whose transient state (frame writes, clip time) was used: the last drawn frame.
settled ​readonly settled: boolean;
No clip, tween, fade, damping, accumulation or late swap in flight. False while open-ended motion (autoRotate, a looping clip) runs. Not a reset pose: a clip held at its last frame or paused is settled. With 'render', a material or stage crossfade doesn't count, because the capture draws it at its target (spec section 6.8, rule 2), so await select(…) then a capture is settled when nothing else moves; a 'displayed' capture copies the blend and counts it.
sceneHash ​readonly sceneHash: string;
sha256 of the canonical committed SessionState captured (as of seq; staged and queued writes never enter it) plus asset versions and the worn materials and labs geometry writes outside it (spec section 6.8, rule 8). Transient state (clip time, frame writes; see frame) is not in it. Never a commercial id.
camera ​readonly camera: Pick<CameraState, 'position' | 'target' | 'fovDeg' | 'aspect'>;
The camera the image was rendered with: world metres, degrees, and aspect the image's width over height.
size ​readonly size: { … }
CSS px and the pixel ratio; the image is width × pixelRatio by height × pixelRatio pixels.
size.width ​readonly width: number;
size.height ​readonly height: number;
size.pixelRatio ​readonly pixelRatio: number;
runtime ​readonly runtime: string;
RUNTIME_VERSION.
| Rule | Result |
|---|---|
| 1. Neutral name | pass: snapshot names no product |
| 2. A precedent | pass (through its owner CaptureResult): a correctness rule (rows G21) |
| 3. Two apps, or labs | pass: 24 apps (ledger: app-c1384707fc; fleet cross-check: app-04c2774145, app-4762caacdc, app-4f16d2f6da, app-4fd23bc869, app-510d750508, app-822bb9d6aa, app-8675b3225c, app-b362a81c85 and 16 more) |
| 4. The cheaper fix first | decided per need in Appendix B: rows G21 (through its owner CaptureResult) at tier stable (a member only where no rule, data, asset or app code serves the need) |