***

title: Bridge (Validation)
subtitle: API-backed action validation and preset loading
slug: npm/bridge
----------------

Bridge operations in `sdk@0.6.3` are exposed via thunks and API routes.

## Validate Action

```typescript
import { createSDKStore, validateBridgeThunk } from '@forbocai/core';

const store = createSDKStore();

const result = await store.dispatch(validateBridgeThunk({
  action: {
    type: 'OPEN_GATE',
    target: 'north_gate'
  },
  context: {
    npcState: { alertLevel: 0 },
    worldState: { curfew: false }
  },
  apiUrl: 'https://api.forboc.ai',
  apiKey: process.env.FORBOCAI_API_KEY
})).unwrap();

console.log(result.valid, result.reason);
```

## List Rules

```typescript
import { getBridgeRulesThunk } from '@forbocai/core';

const rules = await store.dispatch(getBridgeRulesThunk({
  apiUrl: 'https://api.forboc.ai',
  apiKey: process.env.FORBOCAI_API_KEY
})).unwrap();

console.log(rules.length);
```

## Load Preset

```typescript
import { loadBridgePresetThunk } from '@forbocai/core';

const preset = await store.dispatch(loadBridgePresetThunk({
  presetName: 'rpg',
  apiUrl: 'https://api.forboc.ai',
  apiKey: process.env.FORBOCAI_API_KEY
})).unwrap();

console.log(preset.id);
```

## CLI

```bash
npx forbocai bridge validate ./action.json
npx forbocai bridge rules
npx forbocai bridge preset rpg
```
