# External dependencies ## Sample test data Real message bases for testing live under `tests/data/` (vendored into the repo) for the formats covered by the test suite. Additional working bases used during development: - `~/fidonet/msg/` — Hudson, JAM, Squish, FTS-1 *.msg, etc. - `~/allfix_dev/f_drive/tpfiles/allfix/wc_dev/testdata/` — WildCat 4 (7 conferences, MSG/MSG0..MSG6.DAT/IX, DATA/ALLUSERS.DAT, etc.) Tests should open these read-only and verify message counts, first / last messages, and specific known attributes. Do NOT write to these paths from tests — copy them into a scratch dir first. The Wildcat SDK mutates the message database during Open (btis locks, modcounters) so even "read" paths must go through a scratch copy. ## Authoritative specs The FTSC document collection at `/home/ken/Source Code/ftsc/docs/` is the source of truth when validating attribute bits, packet header layouts, date strings, and kludge syntax. Key documents we cross-check against: - `fts-0001.016` — FTS-1 packet & message format (PKT, *.MSG, attributes, date string, kludges) - `fsc-0039.001` / `fsc-0039.004` — Type-2+ packet header - `fsc-0045.001` — Type-2.2 packet header - `fsc-0048.002` — AuxNet Type-2 variant - `fsc-0009`, `fsc-0035`, etc. — kludges and control lines Non-FTSC formats follow their original authors' published specs: jam.txt (JAM), squish.doc (Squish/Lanius), pcboard.doc, the EzyCom reference, and the WildCat 4 SDK headers vendored under `src/wc_sdk/`. When in doubt about an encoding or bit position, reference the spec before changing the conversion tables in `mb.types.pas`. ## mb.fmt.wildcat.pas The Wildcat backend uses the WildCat 4 SDK vendored at `src/wc_sdk/`. The SDK is kept on its own search-path entry (`-Fusrc/wc_sdk`) so callers that don't need Wildcat can omit the backend without forcing the SDK onto the build line. See the active cleanup pass to trim the SDK to only what `mb.fmt.wildcat` actually uses.