Subset of the global GeoLeaf namespace consumed by boot-info.
Narrows the three members boot-info reads structurally, and keeps a permissive
index signature for the six it reaches by name only (Labels, Storage, boot,
bootInfo, _LMRenderer, _LayerManagerControl).
🛑 STANDALONE, AND THAT IS NOT COSMETIC — it is what makes the PUBLIC export
possible (decided 17/08/2026). This type extended GeoLeafAPINamespace, which lives
in contracts/api.contract.ts — a module the exports map does not publish: of
the 8 declared ./contracts/* subpaths, api.contract.js is not one. Exporting
BootInfoNamespace while keeping the extends would have emitted a public
declaration referencing a type the consumer cannot resolve — exactly the TS2882
class closed by the CSS-stub work.
⚠️ And the arbitration said "remove the unused extends": the word is too broad.
What was unused are the parent's three named members (_APIController, API,
CONSTANTS); its index signature, however, SERVES — six of the nine members read
by boot-info.ts only pass through it. It is therefore reproduced here, not deleted.
Subset of the global
GeoLeafnamespace consumed by boot-info.Narrows the three members
boot-inforeads structurally, and keeps a permissive index signature for the six it reaches by name only (Labels,Storage,boot,bootInfo,_LMRenderer,_LayerManagerControl).🛑 STANDALONE, AND THAT IS NOT COSMETIC — it is what makes the PUBLIC export possible (decided 17/08/2026). This type extended
GeoLeafAPINamespace, which lives incontracts/api.contract.ts— a module theexportsmap does not publish: of the 8 declared./contracts/*subpaths,api.contract.jsis not one. ExportingBootInfoNamespacewhile keeping theextendswould have emitted a public declaration referencing a type the consumer cannot resolve — exactly theTS2882class closed by the CSS-stub work.⚠️ And the arbitration said "remove the unused
extends": the word is too broad. What was unused are the parent's three named members (_APIController,API,CONSTANTS); its index signature, however, SERVES — six of the nine members read byboot-info.tsonly pass through it. It is therefore reproduced here, not deleted.