OptionalUIGeoLeaf.UI — la façade UI du kernel.
⚠️ Déclarée Record<string, unknown> jusqu'à l'API S4.2, elle était comptée parmi les
membres « typés » alors qu'elle ne vérifiait rien : ce type accepte n'importe quel
objet et rend unknown sur chaque accès, exactement comme la traîne qu'il était censé
remplacer. C'est HOST-06 (check-namespace-typing-coverage.cjs) qui l'a trouvée, en
refusant de compter une déclaration vide comme un typage.
⚠️ globals.ui.ts:128 pose _gl.UI = {} si absent : tous les membres de
GeoLeafUIFacade sont donc optionnels. Et son typage ne peut PAS passer par
typeof import(...) — la façade est auto-montée, le détail est sur l'interface.
Optional_Optional_Optional_OptionalFilterPublic GeoLeaf.Filter facade — generic attribute filter capability (S5/S13).
Whether the capability is active — mirrors the modules.filter.enabled gate.
The resolved filter configuration for the active profile.
The filter state currently applied to the map.
Applies a filter state (debounced — see applyNow to flush immediately).
Flushes the pending debounced filter immediately.
Clears every active filter and restores the unfiltered view.
Whether at least one filter is currently narrowing the view.
Proximity (radius-around-a-point) sub-filter.
Sets the proximity radius, in kilometres.
Toggles proximity mode. Returns the resulting state: true once the map is
waiting for the user to place the centre point, false when switched off.
OptionalradiusKm: numberOptionaloptions: { onPointPlaced?: () => void }OptionalConfigOptionaldef: unknownProfil actif enrichi. Son tableau layers porte les configurations de couche
complètes — à la différence de getAllLayerConfigs(), qui est une projection
en liste blanche et ne porte ni offline, ni data, ni write.
⚠️ Config.Profile n'est PAS monté ici, bien que le module Config le porte :
mesuré en navigateur (tâche 4.1). Passer par getActiveProfile().
OptionalUtilsOptionalDOMOptionalSecurityOptionalLegendFaçade de la légende (GeoLeaf.Legend).
⚠️ Les 8 membres ci-dessous étaient implémentés et documentés dans
capabilities/legend/legend.ts — @example compris — mais non déclarés ici,
donc absents de la page GeoLeafGlobal que TypeDoc rend et que lit un intégrateur
(B-229). La traîne [key: string]: unknown subsiste (gisement B-13).
Monte la légende sur une carte. Rend false si le montage échoue.
Optionaloptions: Record<string, unknown>Charge et rend l'entrée de légende d'une couche, pour un style donné.
Affiche ou masque une couche depuis la légende.
Toutes les couches connues de la légende, indexées par identifiant.
Masque le panneau sans le démonter — l'état des couches est conservé.
Démonte le panneau et libère ses écouteurs.
Si le panneau est actuellement visible.
Plie ou déplie la section d'une couche.
OptionalTaxonomyTaxonomy capability facade (in-core, gated by modules.taxonomy).
La table valeur → symbole d'une couche donnée (vide si la couche ne déclare
aucune taxonomie). B-229 : implémenté et documenté dans
capabilities/taxonomy/public-api.ts, mais non déclaré ici jusqu'au 11/08/2026.
Résout l'icône de sprite d'un point, tenant compte de sa catégorie et de sa teinte.
Chaque paire (icône × teinte) référencée par la config, pour que l'adaptateur MapLibre les rastérise et les enregistre. Vide si rien n'est teinté.
Peinture MapLibre d'une couche de marqueurs, ou null si la taxonomie ne s'applique pas.
Le symbolId de l'icône à afficher à côté du TITRE d'une entité sur une surface
feature-info, en honorant les drapeaux render par surface
(priorité sous-catégorie → catégorie → défaut).
Le style de badge d'un champ, ou null si aucun ne s'applique.
Garantit que le sprite SVG du profil actif (ses <symbol>) est présent dans le
DOM, pour qu'un <use href="#…"> puisse le référencer. Sans attente et
idempotent — le chargeur dédoublonne.
Optional_Optional_Optional_GeoLeaf._LayerVisibilityManager — contrat de fait, délibérément NON promu.
API publique S4.3d a examiné sa promotion en GeoLeaf.Layers.getVisibilityState()
et l'a écartée, pour deux raisons mesurées :
Elle n'aurait retiré aucune clé. Le motif annoncé était « promouvoir puis
retirer _LayerVisibilityManager du namespace » — impossible : le CORE le relit
lui-même par le global à 5 sites, avec 3 méthodes différentes
(kernel/geojson/layers/visibility.ts:87,159,207,246 et
capabilities/legend/legend.ts:163). La promotion n'achetait qu'un chemin typé
pour plugin-table, au prix d'une entrée publique de plus.
La forme est un piège, et le publier le graverait. getVisibilityState()
rend 6 champs, dont current — la visibilité PHYSIQUE, que le zoom force à
false — et logicalState, l'intention utilisateur. Le backlog B.19 consigne
que lire current pour piloter un toggle est le bug DÉJÀ commis. Or les 2 sites
de plugin-table lisent exactement current. Publier dans LayerDataApi est
irréversible (règle Q1 : on ajoute un sous-chemin, on n'en retire jamais).
Lecteurs de fait, hors core : packages/plugins/table/src/panel.ts:236 et
src/table-layer.ts:93. Ils restent sur cette clé, sciemment.
OptionalSyncGeoLeaf.Sync — the offline sync-handler registry seam (S14 Phase B).
A public API of fact (B.25): it is how a data plugin pushes its offline
sync handler into the core (@geoleaf-plugins/addpoi does
GeoLeaf.Sync.registerHandler("poi", POISyncHandler) at its own entry.ts),
and the offline engine reads them back at replay time. It was reachable and
documented but typed NOWHERE — a third-party plugin integrated against
unknown. Mounted twice on purpose: geoleaf.sync.ts self-mounts at import
so a plugin can register before boot completes, and offline/install.ts
re-assigns the same singleton (Layer B).
Register (or replace) a handler under a stable id (e.g. "poi").
Every registered handler, in registration order.
OptionalThemeTheme switch bar — in-core theme-selector capability (see above).
Optional_GeoLeaf._VectorTiles — the MVT policy seam published by the vector-tiles
installer. Internal (underscore), but read through the global by two kernel
modules that each wrote their own narrow VectorTilesLike — and the two were
DISJOINT (loader-types.ts:273 declares shouldUseVectorTiles /
loadVectorTileLayer, layer-manager/style.ts:17 declares updateLayerStyle),
so neither described the seam. Typed here as the capability's own export, the
only shape that covers both (B.25).
Determines if a layer definition should use vector tiles. Returns true only when the VT config provides an absolute tile URL. Relative paths (auto-generated from profile structure) are not used because PBF files may not exist — the layer falls back to GeoJSON.
Extracts the vectorTiles config block from a layer definition.
Supports both def.vectorTiles and def.data.vectorTiles.
Resolves the full tile URL template from the layer definition.
⚠️ The tilesDirectory fallback below is UNREACHABLE from the production flow,
and deliberately so. _createVectorTileLayer only calls this after
shouldUseVectorTiles() has returned true, and that guard requires an ABSOLUTE
tilesUrl — so by the time we get here, the first branch always wins. The
derived …/{z}/{x}/{y}.pbf path is therefore dead code in practice.
It is kept, not purged (R.33, backlog résiduel S5). Two reasons: it is covered by
13 assertions across __tests__/geojson/vector-tiles.test.js and
__tests__/config/s13-layer-data.test.js, several of them asserting the derived
path specifically; and it becomes live again the moment the absolute-URL guard is
relaxed, which is what "arming" a profile's vector tiles would mean. Removing it
would delete tested behaviour to fix a promise that was really a data problem —
the six tourism layers that declared enabled:true without a tilesUrl have
been disarmed in the profiles instead.
Creates a vector tile layer by delegating to the adapter, then binds
interactions and records shared state. The adapter builds one vector source
and up to 3 render layers (fill/line/circle) from the resolved spec.
Unique layer ID.
Display label.
Normalised layer definition (must include vectorTiles block).
Base options (unused in MapLibre mode).
Layer metadata.
Updates the style of an existing VT layer via the adapter.
OptionalIntrospectionOptionalLayersOptionalGeolocationIn-core geolocation capability seam (GPS state + config helpers).
OptionalBrandingBranding overlay (logo, attribution) — GeoLeaf.Branding.
OptionalClusterPOI clustering controls — GeoLeaf.Cluster.
OptionalCoordinatesCoordinate readout control — GeoLeaf.Coordinates.
OptionalFeatureFeature detail panel — GeoLeaf.FeatureInfo. Type déclaré dans types.ts.
OptionalLabelsMap labels toggle + renderer — GeoLeaf.Labels.
OptionalNotificationToast/notification CLASS mounted by the toast-renderer installer.
OptionalPWAPWA install/update manager — GeoLeaf.PWA. Pas de type public nommé, cf. ci-dessus.
Initializes the PWA install prompt for the current platform.
config.installPrompt.enabled === true.beforeinstallprompt and shows a custom banner.Call this method after the GeoLeaf config has been loaded (i.e. from app/boot.ts).
PWA section from the loaded geoleaf.config.json.
true when the app can still be installed on this device — for integrators who
want to render their own install button instead of (or alongside) the built-in
banner.
Mirrors the platform split of PWAManager.init:
beforeinstallprompt; answers from the UA +
navigator.standalone check (installable = iOS and not already installed).true once the browser has handed us a
deferred beforeinstallprompt event.⚠️ On Android this reports "a prompt is available", not "the browser could
install this app": the deferred event is only captured if PWAManager.init
has run, which is gated on modules.pwa.installPrompt.enabled === true. With the
prompt disabled, it answers false even on an installable Chrome. iOS is
unaffected — its check needs no listener.
true if an install path is available right now.
Registry destroy / test seam: tears down both install sub-flows (the Android install-prompt global listeners and the iOS banner timer/banner) so a re-init starts clean (S7.5 — no listener / timer leak).
OptionalPermalinkURL state serialisation — GeoLeaf.Permalink. Pas de type public nommé.
Initialise the Permalink module with the config extracted from the active profile.
Must be called before readAndStore().
Permalink section of ui.permalink or an empty object.
Read the current URL and cache the parsed state.
Call this before map creation so the stored state is available for applyStoredState.
Apply the stored state (from readAndStore) to the given map instance.
Must be called after the map and all modules are initialised.
MapLibre map adapter instance.
Begin continuous URL synchronisation on map move/zoom events.
Call this after applyStoredState to avoid overwriting the restored state.
MapLibre map adapter instance.
Stop URL synchronisation started by Permalink.startSync, removing every
listener it attached (map moveend + the three document listeners). Safe to call
when no sync is active.
Return the currently cached permalink state (read-only).
Returns null if readAndStore was not called or found no permalink in the URL.
⚠️ A null therefore means two different things — the page was not opened through a
permalink, or Permalink.readAndStore has not run yet. Only the boot order tells
them apart.
Serialise state (or the cached stored state) to a URL fragment / query string.
Optionalstate: PermalinkState | nullOptional explicit state. Falls back to _storedState.
URL string starting with # or ?, or empty string if no state.
Returns true when permalink is enabled (modules.permalink.enabled !== false).
Returns the resolved modules.permalink config (merged over the built-in defaults).
OptionalScaleScale bar control — GeoLeaf.Scale.
OptionalProfileData-profile selector — GeoLeaf.ProfileSwitcher (S1 sélecteurs UI).
OptionalLanguageUI language selector — GeoLeaf.LanguageSwitcher (S2 sélecteurs UI).
OptionalThemeAccent-colour palette — GeoLeaf.ThemePalette (S3 sélecteurs UI).
OptionalShareShare sheet — GeoLeaf.Share, sous-dossier de la capacité permalink.
OptionalThemeLight/dark toggle — GeoLeaf.ThemeToggle.
OptionalBaselayersBase layer catalogue façade.
OptionalBaseAlias historique de GeoLeafGlobal.Baselayers — même référence, même type.
OptionalEventsTyped event bus façade (on/off/once/dispatch).
Registers a listener for a GeoLeaf event.
The listener is called every time the event fires until off() is called.
Event name (see module docs for full reference).
Callback receiving the CustomEvent with typed detail.
Removes a previously registered listener.
The exact same handler reference must be passed.
Event name.
The handler reference originally passed to on().
Registers a listener that fires once then automatically removes itself.
Uses the native {once: true} option — no wrapper function needed.
Event name.
Callback called at most once.
OptionaleventsAlias minuscule de GeoLeafGlobal.Events — même référence, même type.
Registers a listener for a GeoLeaf event.
The listener is called every time the event fires until off() is called.
Event name (see module docs for full reference).
Callback receiving the CustomEvent with typed detail.
Removes a previously registered listener.
The exact same handler reference must be passed.
Event name.
The handler reference originally passed to on().
Registers a listener that fires once then automatically removes itself.
Uses the native {once: true} option — no wrapper function needed.
Event name.
Callback called at most once.
OptionalCONSTANTSFrozen runtime constants — posé par globals.core.ts:63.
OptionalErrorsError helpers — posé par globals.core.ts:62.
The machine-readable code carried by each error subclass, frozen.
Keys are the short family names; values are the strings that land on error.code. Compare
against these rather than against literals, so a rename stays a compile-time concern.
GeoLeaf.Errors.ErrorCodes.VALIDATION; // 'VALIDATION_ERROR'
GeoLeaf.Errors.ErrorCodes.SECURITY; // 'SECURITY_ERROR'
GeoLeaf.Errors.ErrorCodes.CONFIG; // 'CONFIG_ERROR'
GeoLeaf.Errors.ErrorCodes.NETWORK; // 'NETWORK_ERROR'
GeoLeaf.Errors.ErrorCodes.INITIALIZATION; // 'INITIALIZATION_ERROR'
GeoLeaf.Errors.ErrorCodes.MAP; // 'MAP_ERROR'
GeoLeaf.Errors.ErrorCodes.DATA; // 'DATA_ERROR'
GeoLeaf.Errors.ErrorCodes.POI; // 'POI_ERROR'
GeoLeaf.Errors.ErrorCodes.ROUTE; // 'ROUTE_ERROR'
GeoLeaf.Errors.ErrorCodes.UI; // 'UI_ERROR'
OptionalHelpersGeneral-purpose helpers façade.
OptionalLayerLayer manager façade (visibility, ordering, legend wiring).
Mounts the layer-manager panel.
Called without arguments, everything comes from the profile configuration — the recommended path. Anything passed here overrides that, field by field.
Position, title, and collapsible/collapsed state.
Registers a GeoJSON layer in the legend
The layer id
Layer options
Redraws the panel to match the current layer state.
Debounced by default, so a burst of layer changes costs one redraw. Passing immediate
cancels any pending debounce and redraws synchronously — needed when the caller is
about to read the rendered DOM.
A no-op, logged at debug, when the control is not yet mounted (early boot).
Skip the debounce and redraw now. Defaults to false.
Resets the module back to its post-import state.
Run on map teardown so the control, the map handle and the accumulated sections do not survive a destroy → recreate cycle. A pending debounced refresh is cancelled too: its callback closes over the old control and would fire against a detached DOM node.
Idempotent — safe to call more than once.
OptionalThemeTheme cache — posé par globals.ui.ts:120, hors de la chaîne des façades.
Retrieves a layer from the cache si elle est encore valide.
OptionalprofileId: string | nullStocke a layer in the cache.
OptionalprofileId: string | nullOptionalmetadata: Record<string, unknown> = {}Invalid a layer en cache.
OptionalValidatorsStyle/config validators façade.
OptionalversionPackage version string.
✅ Un seul écrivain depuis socle-init 7.7 : globals/globals.api.ts, sous garde
if (!_gl.version) — ce qui rend setupAPIKernel() ré-appelable sans écraser une
version déjà posée.
⚠️ Cette note disait « Écrite à DEUX endroits : globals.api.ts:200 […] et
kernel/api/geoleaf-api.ts:133 sans garde. Le dernier writer gagne » — c'était vrai
(divergence D8), et les deux numéros de ligne avaient dérivé (208 et 164 au moment
du retrait). Une citation de ligne dans un commentaire vieillit sans bruit ; celle-ci
ne renvoie plus qu'au fichier.
OptionalAPIGeoLeaf.API — les constructeurs de l'API, assemblés en littéral par
globals.api.ts:75-84.
⚠️ Écrit à la main, et c'est mesuré : contracts/api.contract.ts:103 déclare bien
IGeoLeafAPIConstructors, mais il ne couvre que les 3 alias, pas les 7 clés
réellement posées. Le référencer aurait typé moins de la moitié de l'objet tout en
ayant l'air de le typer — le défaut que HOST-06 traque, un cran plus haut.
Optionalinit{@inheritDoc GeoLeafTopLevelApi.init}
Optionalset{@inheritDoc GeoLeafTopLevelApi.setTheme}
Optionalload{@inheritDoc GeoLeafTopLevelApi.loadConfig}
Optionalcreate{@inheritDoc GeoLeafTopLevelApi.createMap}
Optionalget{@inheritDoc GeoLeafTopLevelApi.getMap}
Optionalget{@inheritDoc GeoLeafTopLevelApi.getAllMaps}
Optionalget{@inheritDoc GeoLeafTopLevelApi.getModule}
Optionalhas{@inheritDoc GeoLeafTopLevelApi.hasModule}
Optionalget{@inheritDoc GeoLeafTopLevelApi.getNamespace}
Optionalget{@inheritDoc GeoLeafTopLevelApi.getHealth}
Optionalget{@inheritDoc GeoLeafTopLevelApi.getMetrics}
OptionalfetchFetchHelper.fetch, liée — requête HTTP instrumentée.
OptionalgetFetchHelper.get, liée.
OptionalpostFetchHelper.post, liée.
OptionalbootRapport de démarrage (⚠️ minuscule côté namespace, BootInfo côté module).
OptionalbootDémarre l'application GeoLeaf : charge le profil, crée la carte, initialise les
modules. C'est l'entrée applicative — apps/geoleaf-app/init.js l'appelle, et
l'ordre de chargement de tous les plugins s'y réfère.
⚠️ À ne pas confondre avec GeoLeafGlobal.init, qui est l'enveloppe manuelle
de Core.init(). Le chemin de boot passe par registry.init() — celui du
ModuleRegistry — et n'appelle jamais GeoLeaf.init.
Les deux options sont le seul canal par lequel un hôte pose un gate d'auth (SSO) ou
récupère les métriques de démarrage ; elles sont relues depuis _beforeBootCallback
et _perfCallback, qui restent hors de ce contrat (dette D-14).
OptionalmarkPose une marque de performance nommée.
OptionalmeasureMesure entre deux marques ; rend la durée en millisecondes.
OptionalgetRapport de performance agrégé du profileur.
OptionalestablishFige la mesure courante comme référence de comparaison.
OptionalnotifyNotification utilisateur — primitive, indépendante du rendu.
Emits a user-facing notification.
Text to display.
Optionallevel: NotifyLevelSeverity level (default: "info").
OptionalCoreCore map façade (GeoLeaf.Core) — low-level map lifecycle.
Depuis la v3.0.0, Core tient un registre indexé d'adaptateurs
(Map<mapId, IMapAdapter>) : N cartes coexistent sur une page, chacune avec son
cycle de vie. Le singleton de module des versions ≤ 2.1.x n'existe plus.
⚠️ La traîne [key: string]: unknown subsiste (gisement B-13) : les 8 membres
ci-dessous sont désormais déclarés et documentés, le reste du namespace ne l'est pas
encore. Ne jamais l'élargir vers any.
Initialise une carte. Exige options.mapId — sans lui, rend null et
journalise. Ré-initialiser un mapId existant rend l'instance déjà en place
plutôt que d'en créer une seconde.
Optionaloptions: Record<string, unknown>L'instance ciblée par mapId ; sans argument, la première instance active —
forme rétro-compatible pour les applications mono-carte.
OptionalmapId: stringDétruit l'instance (map.remove() puis libère l'emplacement du registre).
Rend true si elle existait. À appeler au démontage côté consommateur.
Si une instance est enregistrée sous ce mapId.
Les identifiants de toutes les instances actives.
Applique un thème au conteneur de la carte.
⚠️ Le thème reste global en v3.0.0 et s'applique à la première instance : l'isolation par carte est hors périmètre de cette version.
Le nom du thème courant.
OptionalpluginsPlugin registry / lifecycle façade (GeoLeaf.plugins).
⚠️ getLoadedPlugins, canActivate et registerLazy ont été ajoutés le
31/07/2026, et pas par confort de typage. Les trois sont enseignés par
docs/API_REFERENCE.md (section « Plugins ») depuis longtemps, existent dans
kernel/api/plugin-registry.ts et partent dans le bundle livré — mais n'étaient
déclarés nulle part ici, donc ils tombaient dans la traîne [key: string]: unknown.
Ce que ça coûtait, mesuré : showBootInfo(GeoLeaf) — l'appel que sa propre doc
montre — ne compilait pas. BootInfoNamespace exige
plugins?.getLoadedPlugins?: () => string[] ; résolu par la traîne, le membre valait
unknown, et unknown n'est pas assignable à (() => string[]) | undefined. Le
défaut n'était visible d'aucune gate tant que l'exemple de showBootInfo s'écrivait
showBootInfo() — c'est-à-dire tant qu'il était faux d'une AUTRE manière, gelée dans
la baseline du typecheck. Un diagnostic gelé masque ce qui vit sous lui.
Rétrécir la traîne est le sens autorisé (B-13) : jamais élargir vers any.
OptionalregistryModule registry (GeoLeaf.registry) — lifecycle modules AND UI-only slots.
Typed as the contract itself rather than as a structural { register?; [key]: unknown }:
ModuleRegistry is a CLASS, and TypeScript does not give classes an implicit index
signature, so the loose shape rejected the very object boot-install.ts:135 assigns.
OptionalI18nInternationalization façade (GeoLeaf.I18n).
OptionalStorageOffline storage façade (GeoLeaf.Storage), mounted in-core by kernel/storage/facade.ts.
⚠️ La traîne [key: string]: unknown rend unknown — donc non appelable — tout
membre non nommé ici, et aucune gate ne le signale : HOST-06 ne rejette qu'une
déclaration entièrement vide. Un membre qui est une API publique se nomme.
OptionalDB?: Record<string, unknown>Rapatriement borné d'une couche déclarée vers le store features (tâche 4.1).
Ne confère jamais l'éditabilité (invariant S6). Ne jette pas : refused porte
le motif quand rien n'a été écrit.
Optionaloptions: { bbox?: [number, number, number, number]; signal?: AbortSignal }Rapport de synchronisation par couche (tâche 4.8).
Rend declaredNeverPulled observable : une couche déclarée hors-ligne mais
jamais rapatriée est autrement indiscernable d'une couche rapatriée, jusqu'à
l'instant où le réseau tombe. Ne jette pas — sans moteur câblé, rend [].
OptionalGeoGeoJSON subsystem façade (GeoLeaf.GeoJSON) — 87 call sites across the plugins,
the single most-used member of the host, and typed nowhere before S3.
⚠️ Distinct de Layers ci-dessus : Layers est le seam de données par couche.
OptionalLogLogger façade (GeoLeaf.Log).
Same reason as registry above — LogImplInterface is an interface, so it carries
no implicit index signature and a loose { error?; …; [key]: unknown } shape would
reject what globals.core.ts:61 actually mounts.
OptionalNotificationsToast façade (GeoLeaf.Notifications), mounted by the toast-renderer capability.
OptionalTable@geoleaf-plugins/table — panneau tabulaire.
OptionalGeocoding@geoleaf-plugins/geocoding — recherche d'adresses.
OptionalRealtime@geoleaf-plugins/realtime-layer — flux temps réel (GTFS-RT…).
OptionalFlat@geoleaf-plugins/flatgeobuf — lecture FlatGeobuf par bbox.
OptionalConnector@geoleaf-plugins/connector — pont vers le backend Connector.
OptionalCOG@geoleaf-plugins/cog — Cloud Optimized GeoTIFF.
OptionalFile@geoleaf-plugins/file-import — conversion GPX/KML/KMZ/CSV/TSV/TopoJSON.
OptionalMeasure@geoleaf-plugins/measure — outils de mesure.
⚠️ Ne pas confondre avec measure en minuscule, plus haut dans cette même
interface : celui-là est l'aide de mesure de performance entre deux marques. Les
deux ne diffèrent que par la casse. C'est d'ailleurs le compilateur qui l'a signalé
— la sonde de B-52 a rendu TS2551 « Did you mean 'measure'? » sur ce nom.
OptionalPrint@geoleaf-plugins/print — export imprimable de la carte.
OptionalEditor@geoleaf-plugins/editor — édition d'entités.
OptionalWs@geoleaf-plugins/websocket — flux WebSocket (monté sous Ws, pas Websocket).
OptionalgetMétriques runtime (alias historique de getRuntimeMetrics).
OptionalgetMétriques runtime — temps d'init, mémoire, rendu.
OptionalresetRemet les compteurs de métriques à zéro.
Canonical shape of the global
GeoLeafnamespace. All members are optional (assembled at boot) and tolerate extra keys.