// Memory record contracts for the Governed Enterprise Memory Vault (Epic #204, Issue
// #205). Split from `memory.ts` to keep each file under the 400-LOC budget. Pure types
// only — no IO, no clock reads, no randomness. Leaf-package rule (ADR-0019 direction 1):
// no `@oscharko-dev/keiko-*` imports.
//
// Foundational invariants encoded structurally:
//  1. `MemoryRecord.scope` is the discriminated scope coordinate from `MemoryScope`.
//     A record without a concrete scope coordinate cannot be constructed, so two records
//     at "different scopes" are NEVER structurally equal — the discriminator owns identity.
//  2. `MemoryRecord.provenance` is REQUIRED on every durable memory. There is no optional
//     escape hatch. The capture layer (#207) MUST attach provenance before the record can
//     be persisted.
//  3. `MemoryRecord.sensitivity` lives on the provenance envelope because sensitivity is
//     intrinsic to the SOURCE of the memory, not a downstream label. A record cannot be
//     re-classified by mutating a separate field; sensitivity changes require a
//     supersession.
//  4. Timestamps are epoch milliseconds (number). JSON-friendly and Date-free so the type
//     surface is browser-safe and round-trip-stable.
export const MEMORY_STRUCTURED_PAYLOAD_KINDS = [
    "string-list",
    "key-value",
];
