Two related doc passes:
1. UpdateMessage docs. docs/API.md "Updating & deleting" section
previously said "Optional operations. Not every backend
implements them -- default returns False." Since v0.6.0 that's
wrong: UpdateMessage has header-metadata-only semantics on
every backend. Rewrote the section to describe the semantics,
typical use cases (flipping attr bits, reply-chain pointers),
and the boundary (body / CtrlInfo / SubFields / inline kludges
untouched; need Delete + WriteMessage for body changes). Added
a note by the .Native escape-hatch example that most previously-
native-only operations now have uni-API equivalents.
2. ma.* -> mb.* namespace sweep. The 0.5.0 rename renamed every
source unit but the docs kept the old names in code-block
`uses` clauses and architecture diagrams. Copy-paste consumers
hitting those would get compile errors. Replaced word-boundary
ma.<api|types|events|lock|paths|kludge|fmt> references in
README.md, docs/API.md, docs/architecture.md, docs/ftsc-
compliance.md, and docs/format-notes/dependencies.md with the
mb.* form. Left docs/PROPOSAL.md alone -- that is the pre-
rename design doc and reads as historical record.
All 75 tests pass; full six-target build clean. Retagging v0.6.0
in place since no downstream has pinned yet.
Project renamed from message_api → fpc-msgbase. Folder, README title,
docs, build.sh, fpc.cfg, and test banners all updated for consistency
with the planned remote at kjgr.io:2222/kenjreno/fpc-msgbase.git.
Also scrubbed claims that backends were "ported from Allfix" or
"match Allfix's msgutil/domsg" — none of this code was ported from
Allfix; it was implemented from FTSC documents and the original
format authors' published specs (jam.txt, squish.doc, pcboard.doc,
EzyCom reference, WildCat 4 SDK headers). Author credits live in
docs/ftsc-compliance.md.
Real interop facts that mention Allfix-the-product stay documented:
the PCB Extra2 sent-bit ($40) Allfix sets when tossing, and the
FTSC-registered product code $EB. These describe external software
behavior we interoperate with, not provenance.
docs/format-notes/hudson.md removed — stale planning doc that
predates the working ma.fmt.hudson backend.
The TWildcatBase.OpenConference was creating a TMsgDatabase without
populating the SDK globals, causing access violations on MwConfig.
Now calls the full Register sequence: InitWCglobal, LoadMakeWild,
BTInitIsam before opening; BTExitIsam + DisposeWCglobal on close.
test_wildcat reads conferences 0..6 from vendored testdata (copied
to /tmp/ma_wildcat so the source tree stays read-only).