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
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
ctxDetectionContextDecoded 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.