// Copyright 2024-2026 Tymofii Pidlisnyi. Apache-2.0 license. See LICENSE.
// ══════════════════════════════════════════════════════════════════════
// Hash-and-Pointer Payloads + Field-Disclosure Profile - Type Definitions
// ══════════════════════════════════════════════════════════════════════
//
// A receipt should never embed a raw sensitive payload. Instead it commits
// to the payload by hash and carries a pointer (URI) to where the payload
// lives, plus a per-field disclosure policy that says how each field was
// handled. Hash-bound fields stay in the signed body so the receipt
// signature still validates over the profile.
//
// This module ships the SLOT and the FORMAT. It does not fetch URIs, run a
// storage service, or score anything. Availability of the payload at the
// URI is a separate concern (compose the resolver, W2-A2).
//
// Reuse, not duplication:
//   - canonicalHash / canonicalize (src/core/canonical.ts) for hashing.
//   - The '[REDACTED]' sentinel and the "hash chain and signature preserved"
//     invariant from src/storage/volatile-backend.ts.
//   - The TransformationType vocabulary from src/types/cross-chain.ts.
//   - The EvidenceCommitment hash-and-pointer convention
//     (src/types/bilateral-receipt.ts) - credentialHash + a pointer.
//   - The BBS selective-disclosure package (@aeoess/aps-bbs-credentials),
//     composed by structural interface only (copy, not import) to preserve
//     that package's isolation from core.
// ══════════════════════════════════════════════════════════════════════
/** The literal sentinel used across the codebase for a removed value.
 *  Matches src/storage/volatile-backend.ts exactly. */
export const REDACTED_SENTINEL = '[REDACTED]';
//# sourceMappingURL=types.js.map