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.jsonfile (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.