/**
 * HashablePayload — structural value tree accepted by the conflict
 * analyzer's canonical-JSON hasher.
 *
 * The hasher canonicalizes a value tree (object with sorted keys,
 * arrays in order, primitive leaves) and digests the canonical
 * string. This type documents the legal shape of values that may
 * travel through `_hash`: primitives, nested arrays, nested plain
 * objects, and already-constructed domain classes whose enumerable
 * readonly fields satisfy the same constraint.
 *
 * This is an intentionally structural type rather than a runtime-
 * backed class: a hashable payload has no identity, no invariants
 * beyond structural shape, and no behavior. It is a wire-side
 * description of what the hasher can consume.
 *
 * The `HashableObject` shape uses `object` (non-primitive, non-null)
 * rather than an index signature so that class instances with
 * declared `readonly` fields (e.g. `ConflictAnchor`,
 * `ConflictReceiptRef`, `ConflictResolvedCoordinate`) satisfy the
 * constraint structurally. `canonicalStringify` walks enumerable
 * own keys regardless of whether the value is a class instance or
 * a plain object.
 *
 * @module domain/types/conflict/HashablePayload
 */
export {};
