public static Position emptyPosition() {
        return new Position(new ConcurrentHashMap<>());
    }
@Test
    public void shouldNotHash() {
        final Position position = Position.emptyPosition();
        assertThrows(UnsupportedOperationException.class, position::hashCode);

        // going overboard...
        final HashSet<Position> set = new HashSet<>();
        assertThrows(UnsupportedOperationException.class, () -> set.add(position));

        final HashMap<Position, Integer> map = new HashMap<>();
        assertThrows(UnsupportedOperationException.class, () -> map.put(position, 5));
    }