D341 - Keyboard sticks are eight named pushes that sum

Status: decided Date: 2026-08-27

A port maps keys to buttons and, in a separate table, to one of eight named stick pushes; opposite pushes held together sum and clamp to centre. Conflict checking spans all ports. PadState is host-shaped floats and makes no claim about the guest's layout.

Why: a button is a bit and an axis is a number, and a key is on or off, so one key per axis could move a stick only one way. Letting the first of two opposite keys win means something no pad can express. A key bound on two ports drives two pads for one person. Orbistoun has not measured the guest's pad layout, so its host state stays floats; Prosperous uses the measured byte layout, and neither is changed to match the other.

Rejected: