Shape of globalThis.GeoLeaf as expected by api/ files.
Intentionally permissive ([key: string]: unknown) — the full namespace is
assembled progressively at boot and only the keys used by this cluster are
declared explicitly.
✅ This contract HAS a type witness since 25/08/2026
It had none from the day the type that extended it became standalone (to be publishable):
nothing confronted this shape with the object it describes, and the contract had gone from
constraint to prose. The witness is
__tests__/guards/api-namespace-contract.witness.test.ts — member-wise assignability
(import type only, zero bytes in any bundle), enforced by the test type-check gate: a
drifting member reddens as TS2322, proven by mutation on _APIController.init(). Member-wise
rather than whole-shape on purpose: this contract is a narrow view, and global.d.ts types
_APIController as unknown — a whole-shape witness would be red in both directions by
construction.
⚠️ An @example cannot serve as that witness here, and this was MEASURED rather than
assumed. The example type-checker classifies assignability errors as non-defect
diagnostics, so an example asserting a FALSE type relation compiles green — tried, and
deliberately broken to check. That refutation is why the witness lives in a type-checked
test file instead. The extending type stays standalone: the witness imports types, it never
re-couples them.
Shape of
globalThis.GeoLeafas expected by api/ files.Intentionally permissive ([key: string]: unknown) — the full namespace is assembled progressively at boot and only the keys used by this cluster are declared explicitly.
✅ This contract HAS a type witness since 25/08/2026
It had none from the day the type that extended it became standalone (to be publishable): nothing confronted this shape with the object it describes, and the contract had gone from constraint to prose. The witness is
__tests__/guards/api-namespace-contract.witness.test.ts— member-wise assignability (import typeonly, zero bytes in any bundle), enforced by the test type-check gate: a drifting member reddens as TS2322, proven by mutation on_APIController.init(). Member-wise rather than whole-shape on purpose: this contract is a narrow view, andglobal.d.tstypes_APIControllerasunknown— a whole-shape witness would be red in both directions by construction.⚠️ An
@examplecannot serve as that witness here, and this was MEASURED rather than assumed. The example type-checker classifies assignability errors as non-defect diagnostics, so an example asserting a FALSE type relation compiles green — tried, and deliberately broken to check. That refutation is why the witness lives in a type-checked test file instead. The extending type stays standalone: the witness imports types, it never re-couples them.