Architecture¶
Signal Dataset is organized into four public domains with a one-way dependency direction:
record ──┐
_internal ─────────────┼──> dataset ──> annotation ──> top-level facade
storage ─┘
_internal owns JSON primitives and format constants. record owns immutable logical values,
record descriptors, validation, and record/metadata codecs. storage owns transport and
indexed-byte container contracts. dataset owns control-document layouts and composes the
foundations into immutable ordered datasets.
annotation adds snapshot-aligned derived data. The top-level package is a curated convenience
facade; it contains no implementation.
Persisted-format documents are versioned independently from the Python package, so the package
version and the layout version move on their own schedules. The layout a build writes is
LAYOUT_VERSION, and the layouts it accepts are SUPPORTED_LAYOUT_VERSIONS, both in
signal_dataset._internal.constants. Moving Python symbols never changes persisted bytes or
meanings.
Imports must not point against the dependency direction. The complete allowed matrix is:
Domain |
May import project code from |
|---|---|
|
|
|
|
|
|
|
|
|
|
top-level facade |
all public domains and |
The top-level __init__.py may only import and export names; it contains no operational logic.