export abstract class RacingDomainError extends Error { readonly context = 'racing-domain'; constructor(message: string) { super(message); Object.setPrototypeOf(this, new.target.prototype); } } export class RacingDomainValidationError extends RacingDomainError { readonly kind = 'validation' as const; constructor(message: string) { super(message); } } export class RacingDomainInvariantError extends RacingDomainError { readonly kind = 'invariant' as const; constructor(message: string) { super(message); } }