Namespace Kuestenlogik.Bowire.Semantics

Classes

Annotation

One semantic annotation: a tagged claim that the field addressed by Key carries the meaning Semantic, and that the claim originates from Source.

AnnotationKey

Four-dimensional address of a schema-field annotation: (service, method, message-type, json-path).

BuiltInSemanticTags

Catalogue of well-known semantic kinds the framework ships with. Extensions register their own kinds at runtime and don't appear here — this list is the contract between the core and the built-in detectors / viewers documented in the frame-semantics-framework ADR.

Discriminator

Declaration of how a method's message-type discriminator is read off the wire. Companion to MessageType: the discriminator says "look here to find which shape this frame is," then the resolver looks up annotations keyed by that shape.

DiscriminatorKinds

The four legal values of Kind.

InMemoryAnnotationLayer

Fast hash-keyed in-memory annotation layer — the session-scope storage for manual edits that have not been persisted to disk yet.

JsonFileAnnotationLayer

File-backed annotation layer. Loads and persists a single bowire.schema-hints.json file (project or user scope — same format) and exposes the parsed entries via the same AnnotationKey / SemanticTag surface as InMemoryAnnotationLayer.

LayeredAnnotationStore

The composed annotation store: a session-scope InMemoryAnnotationLayer at user priority, a user-local JSON file, a project-local JSON file, and a plugin-hints callback. Implements the resolution priority pinned by the ADR (User > Plugin > Auto) so callers get the effective answer from one call.

SchemaHintsDiscriminator

Discriminator declaration as serialised in Discriminator. Exactly one of WirePath / JsonPath / Oneof is expected to be non-null per entry; readers tolerate multiple fields and pick the first non-null in that order.

SchemaHintsEntry

Annotations contributed by a single (service, method) pair — the second-level grouping under Schemas.

SchemaHintsFile

On-disk shape of bowire.schema-hints.json (project file) and ~/.bowire/schema-hints.json (user file). The two files share the same schema by design — the frame-semantics-framework ADR pins them to be byte-for-byte the same format so a user-local file can be promoted into a project file with a copy.

SemanticTag

Strongly-typed wrapper around the namespaced kind-string that names the semantic meaning of a schema field ("coordinate.latitude", "image.bytes", …).

Interfaces

IAnnotationStore

Read surface of the layered annotation store. Implementations apply the resolution priority (User > Plugin > Auto) internally so callers get the effective answer with one call.

IBowireSchemaHints

Optional companion interface to IBowireProtocol: a protocol plugin that knows the shape of its own payloads in advance (DIS PDU layouts, TacticalAPI situation objects, …) can pre-populate annotations for those shapes by implementing this interface.

Enums

AnnotationSource

Origin of an annotation. Drives the resolution priority in GetEffective(AnnotationKey): when two sources disagree on the same AnnotationKey, the higher- authority source wins.