# ADR-006: Enumeration pattern — `as const` objects, not TypeScript enums ## Status Accepted ## Context TypeScript `enum` causes JSR slow-type issues and doesn't integrate well with TypeBox schemas. Enumeration values need to be available both as runtime constants and as TypeBox union literals. ## Decision All enumerations use the `as const` object pattern (e.g., `GRAPH_STATUS = { Active: "active", ... } as const`). TypeBox schemas use `Type.Union` of `Type.Literal` values derived from the const object. ## Consequences - No JSR slow-type warnings - Enum values available as both runtime constants and type system literals - Consistent pattern across the codebase - Matches the pattern used in `common.ts` for `ACTOR_TYPE` ## References - [sqlite-host.md](../sqlite-host.md)