Placement ​

Contract 2.0.0 · package sha256 a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e · generated from configurator-runtime.d.ts by services/onsite-scripter/scripts/build-contract-docs.mjs; edit the source, not this file.

Interface · import type { Placement } from '@holostep-configurators/runtime-client/contract'; · stable · since 2.0.0 · section 6. Queries, rules and parts

Where and how an imperatively created part sits. Fixed at creation.

Members ​

Member Kind Summary
name? property The part's name, matched by Query.name.
at? property Local to parent (by default the collection's root, whose pose then applies on top: turn content in one of them, not both).
parent? property The part it hangs under; at is then local to it.
tags? property Tags, matched by Query.tag.
meta? property Your labels, e.g. { segment: 3 }.

Declaration ​

ts
export interface Placement {
  name?: string;
  at?: PoseInput;
  parent?: Part;
  tags?: readonly string[];
  meta?: Readonly<Record<string, JsonPrimitive>>;
}

Generic-API test (spec 3.1) ​

Rule Result
1. Neutral name pass: Placement names no product
2. A precedent not recorded: no ledger row (coverage.json) names this member or its owner
3. Two apps, or labs not recorded: no ledger row names this member or its owner
4. The cheaper fix first not recorded per member (Appendix B decides it per need)