binmat
Version:
binmat simulator
545 lines • 110 kB
TypeScript
import type { Card, State } from "./shared";
export type Attacker = `a${0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | `a` | `b` | `c` | `d` | `e` | `f`}`;
export type Defender = `d${0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | `a` | `b` | `c` | `d` | `e` | `f`}`;
export type BinmatArgs = {
/** player role */
plr: Defender;
/** state */
s: {
/** turn number */
turns: number;
/** lane deck 0 */
l0?: {
c: number;
t: `X`;
};
/** lane deck 1 */
l1?: {
c: number;
t: `X`;
};
/** lane deck 2 */
l2?: {
c: number;
t: `X`;
};
/** lane deck 3 */
l3?: {
c: number;
t: Card;
};
/** lane deck 4 */
l4?: {
c: number;
t: Card;
};
/** lane deck 5 */
l5?: {
c: number;
t: Card;
};
/** lane discard pile 0 */
x0?: `${Card}u`[];
/** lane discard pile 1 */
x1?: `${Card}u`[];
/** lane discard pile 2 */
x2?: `${Card}u`[];
/** lane discard pile 3 */
x3?: `${Card}u`[];
/** lane discard pile 4 */
x4?: `${Card}u`[];
/** lane discard pile 5 */
x5?: `${Card}u`[];
/** attacker discard pile */
xa?: Card[];
/** attacker deck */
a?: {
c: number;
t: `X`;
};
/** turn order */
ord: number;
/** attacker stack 0 */
a0?: `X`[];
/** attacker stack 1 */
a1?: `X`[];
/** attacker stack 2 */
a2?: `X`[];
/** attacker stack 3 */
a3?: `X`[];
/** attacker stack 4 */
a4?: `X`[];
/** attacker stack 5 */
a5?: `X`[];
/** defender stack 0 */
d0?: (Card | `${Card}u`)[];
/** defender stack 1 */
d1?: (Card | `${Card}u`)[];
/** defender stack 2 */
d2?: (Card | `${Card}u`)[];
/** defender stack 3 */
d3?: (Card | `${Card}u`)[];
/** defender stack 4 */
d4?: (Card | `${Card}u`)[];
/** defender stack 5 */
d5?: (Card | `${Card}u`)[];
/** attacker 0 hand */
ha0?: number;
/** attacker 1 hand */
ha1?: number;
/** attacker 2 hand */
ha2?: number;
/** attacker 3 hand */
ha3?: number;
/** attacker 4 hand */
ha4?: number;
/** attacker 5 hand */
ha5?: number;
/** attacker 6 hand */
ha6?: number;
/** attacker 7 hand */
ha7?: number;
/** attacker 8 hand */
ha8?: number;
/** attacker 9 hand */
ha9?: number;
/** attacker 10 hand */
haa?: number;
/** attacker 11 hand */
hab?: number;
/** attacker 12 hand */
hac?: number;
/** attacker 13 hand */
had?: number;
/** attacker 14 hand */
hae?: number;
/** attacker 15 hand */
haf?: number;
/** defender 0 hand */
hd0?: Card[];
/** defender 1 hand */
hd1?: Card[];
/** defender 2 hand */
hd2?: Card[];
/** defender 3 hand */
hd3?: Card[];
/** defender 4 hand */
hd4?: Card[];
/** defender 5 hand */
hd5?: Card[];
/** defender 6 hand */
hd6?: Card[];
/** defender 7 hand */
hd7?: Card[];
/** defender 8 hand */
hd8?: Card[];
/** defender 9 hand */
hd9?: Card[];
/** defender 10 hand */
hda?: Card[];
/** defender 11 hand */
hdb?: Card[];
/** defender 12 hand */
hdc?: Card[];
/** defender 13 hand */
hdd?: Card[];
/** defender 14 hand */
hde?: Card[];
/** defender 15 hand */
hdf?: Card[];
};
/** player list */
plrs: [role: Defender | Attacker, userName: string][];
/** binlog */
ops: string[];
} | {
/** player role */
plr: Attacker;
/** state */
s: {
/** turn number */
turns: number;
/** lane deck 0 */
l0?: {
c: number;
t: `X`;
};
/** lane deck 1 */
l1?: {
c: number;
t: `X`;
};
/** lane deck 2 */
l2?: {
c: number;
t: `X`;
};
/** lane deck 3 */
l3?: {
c: number;
t: Card;
};
/** lane deck 4 */
l4?: {
c: number;
t: Card;
};
/** lane deck 5 */
l5?: {
c: number;
t: Card;
};
/** lane discard pile 0 */
x0?: `${Card}u`[];
/** lane discard pile 1 */
x1?: `${Card}u`[];
/** lane discard pile 2 */
x2?: `${Card}u`[];
/** lane discard pile 3 */
x3?: `${Card}u`[];
/** lane discard pile 4 */
x4?: `${Card}u`[];
/** lane discard pile 5 */
x5?: `${Card}u`[];
/** attacker discard pile */
xa?: Card[];
/** attacker deck */
a?: {
c: number;
t: `X`;
};
/** turn order */
ord: number;
/** attacker stack 0 */
a0?: Card[];
/** attacker stack 1 */
a1?: Card[];
/** attacker stack 2 */
a2?: Card[];
/** attacker stack 3 */
a3?: Card[];
/** attacker stack 4 */
a4?: Card[];
/** attacker stack 5 */
a5?: Card[];
/** defender stack 0 */
d0?: `${Card}u`[] | `X`[];
/** defender stack 1 */
d1?: `${Card}u`[] | `X`[];
/** defender stack 2 */
d2?: `${Card}u`[] | `X`[];
/** defender stack 3 */
d3?: `${Card}u`[] | `X`[];
/** defender stack 4 */
d4?: `${Card}u`[] | `X`[];
/** defender stack 5 */
d5?: `${Card}u`[] | `X`[];
/** attacker 0 hand */
ha0?: Card[];
/** attacker 1 hand */
ha1?: Card[];
/** attacker 2 hand */
ha2?: Card[];
/** attacker 3 hand */
ha3?: Card[];
/** attacker 4 hand */
ha4?: Card[];
/** attacker 5 hand */
ha5?: Card[];
/** attacker 6 hand */
ha6?: Card[];
/** attacker 7 hand */
ha7?: Card[];
/** attacker 8 hand */
ha8?: Card[];
/** attacker 9 hand */
ha9?: Card[];
/** attacker 10 hand */
haa?: Card[];
/** attacker 11 hand */
hab?: Card[];
/** attacker 12 hand */
hac?: Card[];
/** attacker 13 hand */
had?: Card[];
/** attacker 14 hand */
hae?: Card[];
/** attacker 15 hand */
haf?: Card[];
/** defender 0 hand */
hd0?: number;
/** defender 1 hand */
hd1?: number;
/** defender 2 hand */
hd2?: number;
/** defender 3 hand */
hd3?: number;
/** defender 4 hand */
hd4?: number;
/** defender 5 hand */
hd5?: number;
/** defender 6 hand */
hd6?: number;
/** defender 7 hand */
hd7?: number;
/** defender 8 hand */
hd8?: number;
/** defender 9 hand */
hd9?: number;
/** defender 10 hand */
hda?: number;
/** defender 11 hand */
hdb?: number;
/** defender 12 hand */
hdc?: number;
/** defender 13 hand */
hdd?: number;
/** defender 14 hand */
hde?: number;
/** defender 15 hand */
hdf?: number;
};
/** player list */
plrs: [role: Defender | Attacker, userName: string][];
/** binlog */
ops: string[];
};
export declare function generateArgs(state: State, defender: string, attacker: string, binlog: string[]): {
/** player role */
plr: "d0" | "da" | "d6" | "d2" | "d1" | "d3" | "d4" | "d5" | "d8" | "dd" | "d7" | "d9" | "db" | "dc" | "de" | "df";
/** state */
s: {
/** turn number */
turns: number;
/** lane deck 0 */
l0?: {
c: number;
t: "X";
};
/** lane deck 1 */
l1?: {
c: number;
t: "X";
};
/** lane deck 2 */
l2?: {
c: number;
t: "X";
};
/** lane deck 3 */
l3?: {
c: number;
t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#";
};
/** lane deck 4 */
l4?: {
c: number;
t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#";
};
/** lane deck 5 */
l5?: {
c: number;
t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#";
};
/** lane discard pile 0 */
x0?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** lane discard pile 1 */
x1?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** lane discard pile 2 */
x2?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** lane discard pile 3 */
x3?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** lane discard pile 4 */
x4?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** lane discard pile 5 */
x5?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** attacker discard pile */
xa?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** attacker deck */
a?: {
c: number;
t: "X";
};
/** turn order */
ord: number;
/** attacker stack 0 */
a0?: "X"[];
/** attacker stack 1 */
a1?: "X"[];
/** attacker stack 2 */
a2?: "X"[];
/** attacker stack 3 */
a3?: "X"[];
/** attacker stack 4 */
a4?: "X"[];
/** attacker stack 5 */
a5?: "X"[];
/** defender stack 0 */
d0?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** defender stack 1 */
d1?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** defender stack 2 */
d2?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** defender stack 3 */
d3?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** defender stack 4 */
d4?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** defender stack 5 */
d5?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#" | "2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** attacker 0 hand */
ha0?: number;
/** attacker 1 hand */
ha1?: number;
/** attacker 2 hand */
ha2?: number;
/** attacker 3 hand */
ha3?: number;
/** attacker 4 hand */
ha4?: number;
/** attacker 5 hand */
ha5?: number;
/** attacker 6 hand */
ha6?: number;
/** attacker 7 hand */
ha7?: number;
/** attacker 8 hand */
ha8?: number;
/** attacker 9 hand */
ha9?: number;
/** attacker 10 hand */
haa?: number;
/** attacker 11 hand */
hab?: number;
/** attacker 12 hand */
hac?: number;
/** attacker 13 hand */
had?: number;
/** attacker 14 hand */
hae?: number;
/** attacker 15 hand */
haf?: number;
/** defender 0 hand */
hd0?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 1 hand */
hd1?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 2 hand */
hd2?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 3 hand */
hd3?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 4 hand */
hd4?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 5 hand */
hd5?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 6 hand */
hd6?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 7 hand */
hd7?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 8 hand */
hd8?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 9 hand */
hd9?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 10 hand */
hda?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 11 hand */
hdb?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 12 hand */
hdc?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 13 hand */
hdd?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 14 hand */
hde?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender 15 hand */
hdf?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
};
/** player list */
plrs: [role: "a0" | "aa" | "a6" | "a2" | "a1" | "a3" | "a4" | "a5" | "a8" | "ad" | "a7" | "a9" | "ab" | "ac" | "ae" | "af" | "d0" | "da" | "d6" | "d2" | "d1" | "d3" | "d4" | "d5" | "d8" | "dd" | "d7" | "d9" | "db" | "dc" | "de" | "df", userName: string][];
/** binlog */
ops: string[];
} | {
/** player role */
plr: "a0" | "aa" | "a6" | "a2" | "a1" | "a3" | "a4" | "a5" | "a8" | "ad" | "a7" | "a9" | "ab" | "ac" | "ae" | "af";
/** state */
s: {
/** turn number */
turns: number;
/** lane deck 0 */
l0?: {
c: number;
t: "X";
};
/** lane deck 1 */
l1?: {
c: number;
t: "X";
};
/** lane deck 2 */
l2?: {
c: number;
t: "X";
};
/** lane deck 3 */
l3?: {
c: number;
t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#";
};
/** lane deck 4 */
l4?: {
c: number;
t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#";
};
/** lane deck 5 */
l5?: {
c: number;
t: "2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#";
};
/** lane discard pile 0 */
x0?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** lane discard pile 1 */
x1?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** lane discard pile 2 */
x2?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** lane discard pile 3 */
x3?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** lane discard pile 4 */
x4?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** lane discard pile 5 */
x5?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[];
/** attacker discard pile */
xa?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** attacker deck */
a?: {
c: number;
t: "X";
};
/** turn order */
ord: number;
/** attacker stack 0 */
a0?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** attacker stack 1 */
a1?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** attacker stack 2 */
a2?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** attacker stack 3 */
a3?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** attacker stack 4 */
a4?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** attacker stack 5 */
a5?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** defender stack 0 */
d0?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[];
/** defender stack 1 */
d1?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[];
/** defender stack 2 */
d2?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[];
/** defender stack 3 */
d3?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[];
/** defender stack 4 */
d4?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[];
/** defender stack 5 */
d5?: ("2&u" | "2%u" | "2+u" | "2!u" | "2^u" | "2#u" | "3&u" | "3%u" | "3+u" | "3!u" | "3^u" | "3#u" | "4&u" | "4%u" | "4+u" | "4!u" | "4^u" | "4#u" | "5&u" | "5%u" | "5+u" | "5!u" | "5^u" | "5#u" | "6&u" | "6%u" | "6+u" | "6!u" | "6^u" | "6#u" | "7&u" | "7%u" | "7+u" | "7!u" | "7^u" | "7#u" | "8&u" | "8%u" | "8+u" | "8!u" | "8^u" | "8#u" | "9&u" | "9%u" | "9+u" | "9!u" | "9^u" | "9#u" | "a&u" | "a%u" | "a+u" | "a!u" | "a^u" | "a#u" | "@&u" | "@%u" | "@+u" | "@!u" | "@^u" | "@#u" | "*&u" | "*%u" | "*+u" | "*!u" | "*^u" | "*#u" | "?&u" | "?%u" | "?+u" | "?!u" | "?^u" | "?#u" | ">&u" | ">%u" | ">+u" | ">!u" | ">^u" | ">#u")[] | "X"[];
/** attacker 0 hand */
ha0?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** attacker 1 hand */
ha1?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&" | "a%" | "a+" | "a!" | "a^" | "a#" | "@&" | "@%" | "@+" | "@!" | "@^" | "@#" | "*&" | "*%" | "*+" | "*!" | "*^" | "*#" | "?&" | "?%" | "?+" | "?!" | "?^" | "?#" | ">&" | ">%" | ">+" | ">!" | ">^" | ">#")[];
/** attacker 2 hand */
ha2?: ("2&" | "2%" | "2+" | "2!" | "2^" | "2#" | "3&" | "3%" | "3+" | "3!" | "3^" | "3#" | "4&" | "4%" | "4+" | "4!" | "4^" | "4#" | "5&" | "5%" | "5+" | "5!" | "5^" | "5#" | "6&" | "6%" | "6+" | "6!" | "6^" | "6#" | "7&" | "7%" | "7+" | "7!" | "7^" | "7#" | "8&" | "8%" | "8+" | "8!" | "8^" | "8#" | "9&" | "9%" | "9+" | "9!" | "9^" | "9#" | "a&"