Class RecordedInterpretation
- Namespace
- Kuestenlogik.Bowire.Mocking
- Assembly
- Kuestenlogik.Bowire.dll
One captured interpretation inside a BowireRecordingStep — the addressing path the parent-grouping uses, the resolved Kind (the SemanticTag value), and the type-specific payload inlined as a free-form JsonElement so the replay viewer doesn't have to re-resolve from the raw frame.
public sealed record RecordedInterpretation : IEquatable<RecordedInterpretation>
- Inheritance
-
RecordedInterpretation
- Implements
- Inherited Members
Remarks
The Payload shape is kind-specific by convention:
-
coordinate.wgs84—{ "lat": number, "lon": number }. -
image.bytes—{ "data": "<base64>", "mimeType": "image/png" }(mimeType optional). -
audio.bytes—{ "data": "<base64>", "sampleRate": 44100 }(sampleRate optional).
The payload is open by design — a free-form JsonElement — so the framework doesn't freeze itself into one widget's payload shape this early. Widgets read the fields they need; unknown fields flow through unchanged.
Constructors
RecordedInterpretation(string, string, JsonElement)
One captured interpretation inside a BowireRecordingStep — the addressing path the parent-grouping uses, the resolved Kind (the SemanticTag value), and the type-specific payload inlined as a free-form JsonElement so the replay viewer doesn't have to re-resolve from the raw frame.
public RecordedInterpretation(string Kind, string Path, JsonElement Payload)
Parameters
KindstringThe semantic kind-string this interpretation carries (e.g.
"coordinate.wgs84"). Matches the value the JS-side widget router groups by.PathstringJSONPath of the parent object the pairing logic groups under (e.g.
$.positionfor a lat/lon pair). The same path the frame-semantics framework's pairing logic uses on the live path.PayloadJsonElementKind-specific payload as inlined data. Carried as a JsonElement so the on-disk shape, the wire shape, and the C# model agree byte-for-byte across save/load cycles.
Remarks
The Payload shape is kind-specific by convention:
-
coordinate.wgs84—{ "lat": number, "lon": number }. -
image.bytes—{ "data": "<base64>", "mimeType": "image/png" }(mimeType optional). -
audio.bytes—{ "data": "<base64>", "sampleRate": 44100 }(sampleRate optional).
The payload is open by design — a free-form JsonElement — so the framework doesn't freeze itself into one widget's payload shape this early. Widgets read the fields they need; unknown fields flow through unchanged.
Properties
Kind
The semantic kind-string this interpretation carries (e.g.
"coordinate.wgs84"). Matches the value the JS-side widget
router groups by.
[JsonPropertyName("kind")]
public string Kind { get; init; }
Property Value
Path
JSONPath of the parent object the pairing logic groups under
(e.g. $.position for a lat/lon pair). The same path the
frame-semantics framework's pairing logic uses on the live path.
[JsonPropertyName("path")]
public string Path { get; init; }
Property Value
Payload
Kind-specific payload as inlined data. Carried as a JsonElement so the on-disk shape, the wire shape, and the C# model agree byte-for-byte across save/load cycles.
[JsonPropertyName("payload")]
public JsonElement Payload { get; init; }
Property Value
Methods
Deconstruct(out string, out string, out JsonElement)
public void Deconstruct(out string Kind, out string Path, out JsonElement Payload)
Parameters
KindstringPathstringPayloadJsonElement
Equals(RecordedInterpretation?)
public bool Equals(RecordedInterpretation? other)
Parameters
otherRecordedInterpretation
Returns
Equals(object?)
public override bool Equals(object? obj)
Parameters
objobject
Returns
GetHashCode()
public override int GetHashCode()
Returns
ToString()
public override string ToString()
Returns
Operators
operator ==(RecordedInterpretation?, RecordedInterpretation?)
public static bool operator ==(RecordedInterpretation? left, RecordedInterpretation? right)
Parameters
leftRecordedInterpretationrightRecordedInterpretation
Returns
operator !=(RecordedInterpretation?, RecordedInterpretation?)
public static bool operator !=(RecordedInterpretation? left, RecordedInterpretation? right)
Parameters
leftRecordedInterpretationrightRecordedInterpretation