Protocol Spec
Ontology Conventions
Look Conventions
kanonak.org
protocols@2.1.0
RequiredRule
Class
Required Rule
A rule that MUST be followed
Class
Subclass Of
Rule
Instances
9
Required Rule
EmptyStructsAreVariantsOnly
A Variant MAY declare zero fields (a tag-only message). A standalone Struct declaration MUST declare at least one field.
wire-form
@
1.0.0
Required Rule
FieldOrderIsByteOrder
The wire.fields list order IS the byte layout. Implementations MUST encode and decode fields in list order with no padding, alignment, or reordering.
wire-form
@
1.0.0
Required Rule
FixedBytesRequiresLength
A field typed FixedBytes MUST carry wire.byteLength; any other field type MUST NOT.
wire-form
@
1.0.0
Required Rule
GenerateDontInterpret
Wire declarations MUST be realized as generated static codecs; implementations MUST NOT interpret declarations on the per-frame data path.
wire-form
@
1.0.0
Required Rule
JsonBodyRequiresSchema
A field typed JsonBody MUST carry wire.bodySchema; any other field type MUST NOT.
wire-form
@
1.0.0
Required Rule
KernelSemantics
Primitive semantics are defined by the kanonak-wire runtime kernel at wireFormatVersion "1" (big-endian, strict UTF-8, lowercase UUID canonical form, fail-loud…
wire-form
@
1.0.0
Required Rule
LayoutVersioning
Wire messages carry no in-band version. Any change to a Declaration's layout (fields, order, types, tags, constants) MUST ship as a new package version, never…
wire-form
@
1.0.0
Required Rule
TagValuesUniqueAndInRange
Within a Union, every Variant's tagValue MUST be unique and MUST fit the taggedBy primitive's value range. Decoders MUST fail loudly (UnknownTag) on an…
wire-form
@
1.0.0
Required Rule
TailTypesLast
A field typed Rest or JsonBody MUST be the final field of its Struct or Variant, and at most one such field may appear.
wire-form
@
1.0.0
Referenced by
←
Range
Object Property
Has Required Rule
A required rule (MUST) that is part of this convention