diff --git a/packages/chess/src/schema.ts b/packages/chess/src/schema.ts index ff287bd..11f0769 100644 --- a/packages/chess/src/schema.ts +++ b/packages/chess/src/schema.ts @@ -49,10 +49,25 @@ export interface ChessAttrMap { // Custom rule attributes (from RULES.md presets) Hp: number; PoisonedSquare: boolean; + // Modifier profile attributes + HpBonus: number; + RangeBonus: number; + DirectionAdditions: readonly string[]; + CaptureFlags: number; + PromotionOverride: PieceType | "disabled"; + DamageResistance: number; } export type ChessAttrKey = keyof ChessAttrMap; +/** Capture behavior bitflags for the CaptureFlags modifier attribute. */ +export const CaptureFlag = { + CAN_CAPTURE_OWN: 1, + CANNOT_BE_CAPTURED: 2, + EN_PASSANT: 4, +} as const; +export type CaptureFlag = typeof CaptureFlag[keyof typeof CaptureFlag]; + /** A typed chess fact triple. */ export interface ChessFact { readonly id: EntityId;