type DominionText = string; type DominionColor = { color: string; priority: number; // highest priority is "primary", second highest is "secondary". overridesAction: boolean; }; type DominionBasicCardType = { typeType: "basic"; name: "Action" | "Treasure" | "Victory" | "Reaction" | "Duration" | "Reserve" | "Night" | "Attack" | "Command"; color: null | DominionColor; }; type DominionBasicLandscapeType = { typeType: "basic"; name: "Event" | "Landmark" | "Project" | "Way" | "Trait"; color: null | DominionColor; }; type DominionCardType = DominionBasicCardType | DominionCustomCardType; type DominionLandscapeType = DominionBasicLandscapeType | DominionCustomLandscapeType; type DominionCard = { orientation: "card"; title: string; description: DominionText; type: Array; image: string; artist: string; author: string; version: string; price: DominionText; preview: DominionText; } | { orientation: "landscape"; title: string; description: DominionText; type: Array; image: string; artist: string; author: string; version: string; price: DominionText; }; type DominionCustomSymbol = { image: string; }; type DominionCustomCardType = { typeType: "custom"; name: string; color: DominionColor }; type DominionCustomLandscapeType = { typeType: "custom"; name: string; color: DominionColor }; type DominionExpansion = { cards: Array; icon: string; customSymbols: Array; customCardTypes: Array; customLandscapeTypes: Array; }