Interface IBowireFieldDetector

Namespace
Kuestenlogik.Bowire.Semantics.Detectors
Assembly
Kuestenlogik.Bowire.dll

Server-side rule that proposes one or more Annotations on a sample frame.

public interface IBowireFieldDetector

Remarks

Built-in detectors land in this same namespace (Wgs84CoordinateDetector, GeoJsonPointDetector, ImageBytesDetector, AudioBytesDetector, TimestampDetector). Third-party detectors ship through the future [BowireExtension] contract and reuse the same interface.

Implementations MUST be stateless / thread-safe — the FrameProber may invoke them concurrently. A single detector instance is registered as a singleton; per-frame state belongs inside the local scope of Detect(in DetectionContext).

Detectors get the whole decoded frame (not a per-field callback) so paired-field rules can match a lat+lon pair at the same parent path naturally. See DetectionContext.

Properties

Id

Stable id used by logging + the future "registered detectors" surface. Conventionally a dotted namespace (kuestenlogik.wgs84-coordinate); not required to be a URI.

string Id { get; }

Property Value

string

Methods

Detect(in DetectionContext)

Inspect the decoded frame carried by ctx and emit zero, one, or many proposed annotations. The frame prober writes them into the Auto layer without further filtering — detectors are themselves responsible for false-positive resistance.

IEnumerable<DetectionResult> Detect(in DetectionContext ctx)

Parameters

ctx DetectionContext

Decoded frame + addressing context. Pass-by-readonly-reference because DetectionContext is a readonly record struct and we don't want to copy the JsonElement root on every call.

Returns

IEnumerable<DetectionResult>