Shared state types and the pure validation/update logic for freenet-git.
Both the repo-contract WASM and the on-host helpers depend on this crate
at the same pinned version. The contract WASM compiles a tiny shim that
deserializes parameters/state and dispatches into [validate_state] /
[update_state] / [merge_state] / [summarize_state] /
[get_state_delta]. Keeping all the logic here lets us unit-test it as
ordinary Rust without booting a WASM runtime.
Phase 1.0 scope
Phase 1.0 is single-writer: only the repo owner can sign anything.
The schema includes the ACL fields ([AclState], [WriterGrant]) so
that adding multi-writer support in Phase 1.1 is a contract WASM upgrade
and not a fundamentally different schema. For now validate_state
requires entry.updater == parameters.owner for every signed entry.