Section model
A .oxbin is a preamble followed by a sequence of typed sections. Ten section types are defined — five mandatory, five optional:
| Section | Mandatory | Load discipline | Holds |
|---|---|---|---|
global-control | ✓ | synchronous | Section directory; the two sub-hashes; tier caps |
symbol-table | ✓ | synchronous | Every reference resolves through it |
events | ✓ | synchronous (mmap) | Source of truth for axioms, retractions, derived events |
standpoint-lattice | ✓ | synchronous | The lattice each event row’s standpoint_id indexes into |
tier-table | ✓ | synchronous | Per-rule tier-pair classification consumed by Layer 2 (Load-time validation — two layers) |
fork-lineage | optional | sync when present | Omitted by artifacts without forks (most published packages) |
projection-cache | optional | LAZY mmap | Maintained projections; runtime re-saturates if absent |
arrangement-section | optional | LAZY mmap | DBSP-shaped Z-set arrangements; forward-compat for IVM |
pathology-flags | optional | sync when present | Compile-time-detected reasoning pathologies |
doc-blocks | optional | LAZY per-item | Doc strings; the runtime works without them, ox doc requires them |
Optional and LAZY are independent: optional governs presence in the artifact; LAZY governs whether the runtime mmaps the section on first access rather than reading it in the synchronous load prefix. Section type-ids live in one uint8 namespace — 0..99 standard, 100..199 Argon-future, 200..255 user-custom (unknown custom sections are ignored on load unless MANDATORY-flagged). The section directory in global-control indexes every section; its order is canonical load order. The runtime tolerates a mandatory section that is present but empty. Byte layout of the preamble, per-section sub-headers, and per-section encodings is documented in the oxc-oxbin crate.