/**
 * CharacterState — immutable record of all character state at a point in time.
 *
 * Groups the five character properties into a single value object,
 * keeping the Character constructor at one parameter (max-params: 4).
 */
import type { Health } from './Health.ts';
import type { Level } from './Level.ts';
import type { Status } from './Status.ts';
import type { Faction } from './Faction.ts';

export class CharacterState {
  constructor(
    readonly name: string,
    readonly health: Health,
    readonly status: Status,
    readonly level: Level,
    readonly factions: ReadonlySet<Faction>,
  ) {}
}
