PIL / Positional Interchange Layout

Positional Interchange Layout

A binary layout for complete objects and partial changes.
Independent of the datastore that carries it.

Inside a PIL Record.

Conceptual layout. Actual widths depend
on the Definition and present fields.

01Field StatesAbsent · Null · Direct · Offset
02Integer WidthsWhen Enabled
03Direct ValuesScalars & Dictionary IDs
04End OffsetsVariable Boundaries
05Variable ValuesStrings · Bytes · Arrays

Absent is different from null. Adaptive integer encoding is selected by the Definition. REF16 remains an optional shared-value reference.

PIL / Positional Interchange Layout

PIL Definitions

Field positions, types, and dictionaries live in a shared Definition. A record can carry complete state or a single changed field.

Definitions are encoded as CBOR. CDDL describes their structure; the codec enforces the remaining semantic rules.

Download the Definition Schema
A DefinitionJSON View of CBOR
{
  "definition": "payment/transactions",
  "pil": 0,
  "version": 0,
  "fields": [
    { "name": "id",           "type": "UUID" },
    { "name": "revision_id",  "type": "U16"  },
    { "name": "state", "type": "STRING",
      "values": ["pending", "authorized", "captured"] }
  ]
}
A Changestate: authorizedOmitted fields remain omitted.

Records and Containers.

PIL describes a record. A PAC groups records under a Definition and can factor common values. Trie-Trunk supplies the storage binding, segment placement, and replication behavior.

The CDDL download describes the existing CBOR Definition structure, including its optional resource binding. It does not replace semantic validation or introduce a new wire format.

Explore the Codec