import type { Action } from "./contracts/action"; import type { SceneRulebook } from "./contracts/rulebook"; import type { ValidationResult } from "./contracts/validation"; import type { WorldState } from "./contracts/world"; import { createDefaultRulebook } from "./defaultRulebook"; import { validateWithRulebook } from "./rulebookEngine"; /** * Validate a list of parsed actions against the world state. * * Pass a SceneRulebook to use data-driven scene rules. * Falls back to the built-in default rulebook when none is provided. */ export function validateActions( actions: Action[], worldState: WorldState, rulebook?: SceneRulebook ): ValidationResult[] { const activeRulebook = rulebook ?? createDefaultRulebook(worldState.id); return validateWithRulebook(actions, worldState, activeRulebook); }