Connector ​

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 { Connector } from '@holostep-configurators/runtime-client/contract'; · stable · since 2.0.0 · section 12. Assembly

Authored facts plus derived world positions (computed on read). The stored plane config (IMagneticPlaneConfig) lies over the GLB's extras.holostep.connector (spec section 6.12).

Members ​

Member Kind Summary
ref property Which node and which plane.
type property extras.holostep.connector.type, else the type segment of the plane node's cleaned name (mp_<type>_…), else 'default'.
accepts property The config's allowedTypes, else the GLB's accepts.
free property No connection yet, or the config sets multi: true.
enabled property The config's, else the GLB's, else true.
priority property The config's, else the GLB's, else 0.
position property Derived: the plane's centroid, world metres.
normal property Derived: the plane's mean normal, world, unit length: its NORMAL attribute through the inverse-transpose of its world matrix (spec section 6.12).
polygon property Derived: the plane's convex hull, world metres.
peer property The connector it is connected to, or null (from connections()).
meta property The merged plane config and GLB extras: connector (the side), align, frontDir, allowRotatedSnap, multi and your app's own keys.

Declaration ​

ts
export interface Connector {
  readonly ref: ConnectorRef;
  readonly type: string;
  readonly accepts: readonly string[];
  readonly free: boolean;
  readonly enabled: boolean;
  readonly priority: number;
  readonly position: ReadonlyPoint3;
  readonly normal: ReadonlyPoint3;
  readonly polygon: readonly ReadonlyPoint3[];
  readonly peer: ConnectorRef | null;
  readonly meta: Readonly<Record<string, JsonValue>>;
}

Generic-API test (spec 3.1) ​

Rule Result
1. Neutral name pass: Connector names no product
2. A precedent not recorded: no ledger row (coverage.json) names this member or its owner
3. Two apps, or labs pass: 4 apps (fleet cross-check: app-04c2774145, app-4762caacdc, app-c1384707fc, app-f9a32142f1)
4. The cheaper fix first not recorded per member (Appendix B decides it per need)