Treat every field added to a shared interface (SDK types, request/response payloads, hook options, headers) as a long-term API commitment, and design it deliberately:
entry?: "run" | "continue" over isContinuation?: boolean, and resumed?: "resumed" | "started" over resumed?: boolean — the enum documents the “false” case positively instead of through negation.displayPrompt accepted but dropped by an event projector) is a trap for the next integrator even if no current caller depends on it.X-Task-ID used to carry the task id and now needs to carry a ulid, rename it (X-Task-ULID) or add a new field/header instead of changing what the existing name means underneath callers.providerConfigured flag duplicating a provider catalog’s own configured/apiKeyOptional metadata). Expose the single source of truth and let consumers read from it, avoiding extra synchronization burden.Applying these checks during review prevents ambiguous, inconsistent, or redundant contracts from leaking into the public API surface.