miaoda-game-serialization-core
v0.1.0
Published
Engine-independent canonical JSON and compatibility checksum primitives for persisted game data.
Maintainers
Readme
miaoda-game-serialization-core
Use this package for engine-independent serialization primitives whose exact output is part of a save, replay, or compatibility protocol. It currently provides canonical JSON and the repository's legacy UTF-16 FNV-1a checksum.
import { canonicalJson, fnv1a32, fnv1a32Uint } from 'miaoda-game-serialization-core';
const canonical = canonicalJson({ z: 1, a: ['value'] });
const checksum = fnv1a32(canonical);
const numericChecksum = fnv1a32Uint(canonical);canonicalJson accepts JSON primitives, arrays, and plain objects. It sorts object keys, preserves
array order, and rejects circular references, non-finite numbers, unsupported values, and class
instances.
fnv1a32Uint processes JavaScript UTF-16 code units and returns an unsigned 32-bit number.
fnv1a32 returns the same bits as exactly eight lowercase hexadecimal digits without an algorithm
prefix. This encoding and output format are retained for compatibility; neither function is a
cryptographic authentication mechanism.
Domain-specific fingerprint inputs and formats remain in their owning packages. In particular,
this package does not implicitly stringify values or add a fnv1a32: prefix.
