///
/// Соответствие между кнопками игрового ввода и цифровыми выходами периферийной платы.
/// Содержит mapping для управления двух игроков, служебных кнопок и датчиков хопера.
///
/// Структура:
/// ПЛАТА 1 (биты 0-7): 0=вниз1, 1=влево1, 2=вверх1, 3=право1, 4=поворот1, 5=action1, 6=секретка1, 7=запасная1
/// ПЛАТА 2 (биты 8-15): 8=вниз2, 9=влево2, 10=вверх2, 11=право2, 12=поворот2, 13=action2, 14=секретка2, 15=запасная2
/// ХОПЕРЫ (биты 16-19): 16-17 для платы1, 18-19 для платы2
///
public enum ButtonPinMapping
{
// === ПЛАТА 1: Игрок 1 (биты 0-7) ===
/// Кнопка движения вниз для первого игрока
down1 = 0,
/// Кнопка движения влево для первого игрока
left1 = 1,
/// Кнопка движения вверх для первого игрока
up1 = 2,
/// Кнопка движения вправо для первого игрока
right1 = 3,
/// Поворот для первого игрока
turn1 = 4,
/// Действие/огонь для первого игрока
action1 = 5,
/// Секретная/служебная кнопка для первого игрока
secret1 = 6,
/// Дополнительная/резервная кнопка для первого игрока
extra1 = 7,
// === ПЛАТА 2: Игрок 2 (биты 8-15) ===
/// Кнопка движения вниз для второго игрока
down2 = 8,
/// Кнопка движения влево для второго игрока
left2 = 9,
/// Кнопка движения вверх для второго игрока
up2 = 10,
/// Кнопка движения вправо для второго игрока
right2 = 11,
/// Поворот для второго игрока
turn2 = 12,
/// Действие/огонь для второго игрока
action2 = 13,
/// Секретная/служебная кнопка для второго игрока
secret2 = 14,
/// Дополнительная/резервная кнопка для второго игрока
extra2 = 15,
// === ХОПЕРЫ (биты 16-19) ===
/// Датчик наличия приза в хопере платы 1
hasPrize1 = 16,
/// Датчик выдачи приза из хопера платы 1
prizeGiven1 = 17,
/// Датчик наличия приза в хопере платы 2
hasPrize2 = 18,
/// Датчик выдачи приза из хопера платы 2
prizeGiven2 = 19
}