dialogtext.dbss
Binary layout, byte coverage, field semantics, and validation evidence for the intrinsic BSD dialogtext decoder.
Investigation status
| Status | Value |
|---|---|
| Coverage | 100% |
| Iteration | BSD migration |
| Review state | BSD migration reconciled |
| Last reviewed | 2026-08-03 |
| Captures examined | Steam capture ads_version 856; PAZ 5075; file hash 2875640676; 579,382 extracted bytes; 983 rows; normalized SHA-256 385cb334eac74f07025ada06a428022427ab92d412cd429f1afd6d2bd8382c4a |
| Decoder | packages/scraper/src/tables/dialogtext.dbss.ts |
| Remaining blockers | None |
See Decoder methodology for the confidence scale and evidence rules.
Field ledger
| Field/path | Offset and width | Representation | Claimed meaning | Physical confidence | Representation confidence | Semantic confidence | Evidence | Status |
|---|---|---|---|---|---|---|---|---|
rows + encoded DBSS count |
file +0 count, then variable rows |
array retained in physical order; count omitted | dialogue-text group sequence | Certain | Certain | Certain (structural) | All 974 client-2923 rows are retained and decode sequentially to EOF; a count + 1 mutation rejects |
Closed |
outerDialogTextKey |
row +0, u32 |
equality-validated against dialogTextKey; omitted |
companion-facing lookup prefix | Certain | Certain | Certain (structural) | Every prefix equals the payload key; targeted mutation rejects | Closed |
dialogTextKey |
row +4, u32 |
retained losslessly | full-width engine lookup key for the group | Certain | Certain | High | All 974 values are unique and agree with the companion pointer key; no archived column claims a hash/preimage interpretation | Closed neutral |
label length |
row +8, u32 UTF-16 code-unit count |
drives exact string slice; omitted | label-string framing | Certain | Certain | Certain (structural) | Independent cursor scan reaches the line count exactly in every row | Closed |
label framing bytes |
four bytes after label length | consumed with .pad(4) and omitted |
neutral serializer framing | Certain | Certain | Neutral | The following string begins at the intrinsic padded boundary | Closed neutral |
label |
counted UTF-16LE code units | decoded and retained | source group label/index | Certain | Certain | High | All 38 archived DialogText_Table.Index labels exist in current; representative man01 is exact |
Closed |
lines + encoded count |
after label, u32 then variable records |
ordered array retained; count omitted | addressed-line list and physical list length | Certain | Certain | Certain (structural) | Counted lines plus footer reach every companion-confirmed row end | Closed |
lines[].lineId |
each line +0, u16 |
retained and uniqueness-validated within group | selector/address within its group | Certain | Certain | High | All 3,425 current selectors are unique in-group; all 462 archived (Index, DialogTextNo) pairs overlap one-for-one and the archive also has zero duplicates |
Closed strengthened |
lines[].text length |
each line +2, u32 UTF-16 code-unit count |
drives exact string slice; omitted | line-string framing | Certain | Certain | Certain (structural) | Independent scan covers every line exactly | Closed |
lines[].text framing bytes |
four bytes after line length | consumed with .pad(4) and omitted |
neutral serializer framing | Certain | Certain | Neutral | Every line closes at the intrinsic padded boundary | Closed neutral |
lines[].text |
counted UTF-16LE code units | decoded and retained | addressed dialogue text, including physical voice markup | Certain | Certain | High | Every archived pair overlaps; 166 texts are exact and 461/462 agree after representing archived newlines as current literal \n |
Closed |
| row trailer | final four bytes | consumed with .pad(4) and omitted |
neutral row terminator | Certain | Certain | Neutral | Every intrinsic row ends four bytes after its line array | Closed neutral |
| Reserved ranges | schema-local fixed widths | consumed with .pad() and omitted |
framing or semantically neutral capacity | Certain | Certain | Neutral | Adjacent fields, strict EOF, and exact snapshot parity establish each width | Closed neutral |
Active assumptions
Findings
| ID | Finding | Evidence | Schema/documentation impact | Status |
|---|---|---|---|---|
| F-01 | The intrinsic decoder reproduces the transformed reference output exactly. | Full snapshot comparison; 983 rows; normalized SHA-256 385cb334eac74f07025ada06a428022427ab92d412cd429f1afd6d2bd8382c4a |
The BSD schema is the production source of truth. | Closed |
| F-02 | Row and section boundaries are intrinsic. | Strict decoding reaches exact EOF on the installed capture. | No companion offset table is loaded by this decoder. | Closed |
| F-03 | Reserved byte ranges are representation details. | Their widths are fixed by adjacent fields and full-snapshot parity. | .pad() keeps the schema readable and omits redundant output properties. |
Closed |
Reconciled source findings
| ID | Finding | Evidence | Schema/documentation impact | Status |
|---|---|---|---|---|
| DT-F01 | Every formerly skipped post-length word is required zero framing. | An independent scanner examined all 4,399 current label/line words; all are zero, the prior capture agrees, and label/line violations reject. | .skip(4) was replaced by reserved(4); no string-envelope byte is ignored. |
Closed |
| DT-F02 | lineId is an in-group selector with a format-level uniqueness requirement. |
Current and prior complete captures have zero duplicate-selector groups; the removed independent decoder rejected duplicates; the archive has 462 distinct (Index, DialogTextNo) rows and zero duplicates. Changing the first group’s second selector from 380 to 379 now rejects. |
Added production hasUniqueDialogTextLineIds validation and targeted corruption coverage. |
Closed |
| DT-F03 | The archived table strongly resolves label, selector, and text semantics but not the binary key. | Archive: 462 rows/38 labels. All 38 labels and all 462 (label, lineId) pairs overlap current one-for-one; 461/462 texts agree after newline presentation normalization, with one recognizable content drift at farm_04/232. RandomIndex has no current binary counterpart and dialogTextKey has no archive analogue. |
Precise DialogText_Table.Index, DialogTextNo, and Text links appear in TSDoc; the lookup key stays locally justified and neutral. |
Closed |
| DT-F04 | Intrinsic and companion framing exactly agree. | Unique companion spans (offset - 4 ... offset + byteLength) partition [4, 573,546); outer/payload/decoded keys all agree. Key, offset, length, repeated-key, footer, and pointer-count corruptions reject. |
Production decoding stays intrinsic; the raw DBSS companion is exhaustive verification only. | Closed |
| DT-F05 | Captured inventory and string ranges are observations. | Client 2923 has 974 groups, 3,425 lines, and 573,546 bytes; observed groups have 1–30 lines, but counts are encoded in the file. | No fixed group/line total or captured length range is enforced. | Closed |