# UserContextMenuRegistry

`interface` in `core` · v0.5.0

<https://docs.seedcord.org/packages/core/0.5.0/interfaces/user-context-menu-registry>

Maps each user context-menu command name to its cache state. `seedcord codegen` populates this. It reads every command's `toJSON()` and emits a `declare module '@seedcord/gateway'` augmentation. `keyof UserContextMenuRegistry` is then the compile-time union of every registered user context-menu name. Never augment it by hand.

Kept separate from [`MessageContextMenuRegistry`](/packages/core/0.5.0/interfaces/message-context-menu-registry) because Discord allows a user command and a message command to share a name, so a single name-keyed registry would collapse a legal pair.

```ts
interface UserContextMenuRegistry
```

## Examples

```ts
// seedcord-gen.d.ts (emitted, committed)
declare module '@seedcord/gateway' {
  interface UserContextMenuRegistry {
    'View Profile': { cache: 'cached' };
  }
}
```
