import { createPlayerCharacter, type DomainError, type DomainEvent, isDomainError, type PlayerCharacterId, } from "@initiative/domain"; import type { PlayerCharacterStore } from "./ports.js"; export function createPlayerCharacterUseCase( store: PlayerCharacterStore, id: PlayerCharacterId, name: string, ac: number, maxHp: number, color: string, icon: string, ): DomainEvent[] | DomainError { const characters = store.getAll(); const result = createPlayerCharacter( characters, id, name, ac, maxHp, color, icon, ); if (isDomainError(result)) { return result; } store.save([...result.characters]); return result.events; }