Legacy .hdat01 file format¶
Legacy HDAT persists projects as a text-based .hdat01 file with per-line reversible encoding and implicit section ordering.
Encoding/decoding concept (legacy)¶
Legacy decode steps (high-level):
- Replace many filler symbols/chars with
#. - Split by
#into numeric tokens. - Apply a reverse arithmetic transform:
\[
decoded = \left(\left(\left(\frac{value}{7}\right)-1\right)/3\right)-2
\]
- Interpret as ASCII bytes to recover plaintext.
Sectioned serialization (legacy)¶
The file stores:
- global project settings
- then each module grid/table as ordered sections
- with positional meaning (no explicit schema version)
Known legacy behavior:
- empty table sentinel is encoded as
"051828" - loader reconstructs rows/columns sequentially
- order is implicit and tightly coupled to UI grid column indices
Migration risks (and why it matters even for desktop documentation)¶
- no schema versioning
- weak validation and corruption tolerance
- difficult to extend without breaking compatibility
- logic and data are coupled to UI grids and column indices
Recommended documentation for audit¶
For each .hdat01 project, record:
- HDAT version/build
- expected schema version (even if retrofitted)
- a decoded, human-readable snapshot of critical settings
- checksums for original and decoded content