Namespace Kuestenlogik.Bowire.Semantics.Extensions

Classes

BowireExtensionAttribute

Marks a class as a Bowire extension — a viewer / editor (IBowireUiExtension) or a semantic-kind detector (IBowireFieldDetector) that the workbench should auto-discover at startup via assembly scan. The attribute itself carries no metadata; the implementation class supplies id / capabilities / resource names through the implemented contract interface.

BowireExtensionRegistry

Discovery + cache for IBowireUiExtension and IBowireFieldDetector instances. Mirrors BowireProtocolRegistry: a single static Discover() sweeps every loaded Kuestenlogik.Bowire* assembly, instantiates the types tagged with BowireExtensionAttribute that implement one of the supported extension interfaces, and exposes them as flat lists.

EmbeddedExtensionAsset

Helpers for loading bundle / stylesheet assets that an IBowireUiExtension ships as embedded resources of its declaring assembly.

MapLibreExtension

Bowire UI extension that mounts the MapLibre GL JS map widget on the coordinate.wgs84 semantic kind. Lives in the Kuestenlogik.Bowire.Map NuGet package — the first concrete consumer of the extension API the ADR pins under "Extension framework", and the dogfood proof that the same shape third parties use is the shape Bowire's own widgets use.

Interfaces

IBowireUiExtension

Server-side descriptor for a Bowire UI extension (viewer and/or editor). Discovered via assembly scan over types tagged with BowireExtensionAttribute; surfaced to the workbench through the /api/ui/extensions JSON endpoint, which the JS loader iterates at boot to know which bundles to fetch and which kinds the extension claims.

Enums

ExtensionCapabilities

Bitmask of capability flags exposed by an IBowireUiExtension. Drives the workbench's mount decision: a coordinate.wgs84 extension that only declares Viewer never appears as a request-side editor; one that declares both flags can serve either role on the same kind.