fjs/media/json: stringSerialize escapes in FunctionalScript instead of calling the host's JSON.stringify, matching it exactly down to \uXXXX for unpaired surrogates; fjs/text/utf16 gains codePointToString#1438
fjs/djs: the parser no longer spends a call-stack frame per container — the same lazy drop(1) pop that #1435 fixed in fjs/media/json#1436
fjs/media/json: parse no longer overflows the call stack on documents with ~5000 or more sibling containers; the parser stack is popped eagerly instead of through a lazy drop(1) chain #1435
BREAKING CHANGES:fjs/media/json no longer exports parseNative. Parse JSON with the total parse — unwrap(parse(text)) — and narrow the result with an rtti schema instead of an as cast #1433
BREAKING CHANGES:fjs/mediadetect takes the dialects to recognize — detect(dialects)(bytes). dialectEntry(schema, extraValidate?) builds an entry, fjs/media/revision exports revisionDialect, and no dialect is hardcoded any more #1428
BREAKING CHANGES:fjs/media/jsonparse is now the total (text: string) => Result<Unknown, string> built on this module's own tokenizer and parser; the throwing JSON.parse export is renamed parseNative#1428
Test and coverage tooling recognizes authored .f.mjs FunctionalScript modules: proof discovery loads them, and npm run cov, deno task cov, and the generated Deno CI step include module.f.mjs alongside module.f.ts#1422