Как получить одну из компонент вектора при чтении его через функции типа point()?

Поскольку функции point(), prim(), detail() и им подобные могут возвращать разные типы данных, то просто написать f@attr = point(1, «P», @ptnum).x; не получится, Врангл выдаст ошибку Ambiguous call to function

Чтобы подобная записать сработала, необходимо сказать Вексу, что мы читаем именно вектор. Это можно сделать двумя путями: создать векторную переменную и читать значение позиции в нее или скастовать функцию в векторный тип.

// В этом примере мы сначала записываем позицию в векторную переменную и читаем значение компоненты из нее
vector pos = point(1, "P", @ptnum);
f@height = pos.y;

// В этом примере мы используем приведение типа функции
f@height = vector(point(1, "P", @ptnum));

Приведение типа функции или по-английски Cast выполняется записью вида ТИП_ДАННЫХ(выражение). Этот тип приведения не использует никакого реального преобразования, он просто говорит Вексу, какой из перегруженных вариантов функции использовать.