def METHOD_NAME(
    machine_pos: Dict[Axis, float],
    attitude: AttitudeMatrix,
    offset: Point,
    robot_type: RobotType,
) -> Dict[Axis, float]:
    """Build a deck-abs position store from the machine's position"""
    plunger_axes: Dict[Axis, float] = {
        k: v for k, v in machine_pos.items() if k not in k.gantry_axes()
    }
    mount_axes: Dict[Axis, float]
    to_mount: Callable[[Axis], Union[Mount, OT3Mount]]
    if robot_type == "OT-2 Standard":
        mount_axes = {k: v for k, v in machine_pos.items() if k in k.ot2_mount_axes()}
        to_mount = Axis.to_ot2_mount
    else:
        mount_axes = {k: v for k, v in machine_pos.items() if k in k.ot3_mount_axes()}
        to_mount = Axis.to_ot3_mount
    deck_positions_by_mount = {
        to_mount(axis): deck_point_from_machine_point(
            Point(machine_pos[Axis.X], machine_pos[Axis.Y], value),
            attitude,
            offset,
        )
        for axis, value in mount_axes.items()
    }
    position_for_gantry = next(iter(deck_positions_by_mount.values()))
    deck_pos = {
        Axis.X: position_for_gantry[0],
        Axis.Y: position_for_gantry[1],
    }
    for mount, pos in deck_positions_by_mount.items():
        deck_pos[Axis.by_mount(mount)] = pos[2]
    deck_pos.update(plunger_axes)
    return deck_pos