Кратко

  • RFC 9695 делает haptics/* маршрутизируемым семейством, но неизвестный подтип, частично понятые параметры и адаптация к реальному устройству могут изменить эффект задолго до физического выхода.
  • Полная квитанция связывает хеш объекта с распознаванием, потерями, профилем устройства, локальным допуском, ограничителями, командами актуатора, остановкой и подтверждённым нейтральным состоянием.

В обычном медиаконвейере сообщение «воспроизведение окончено» кажется последним событием. Для тактильной системы конец должен быть физическим: команда прекращена, сила снята, температура возвращается в допустимый фон, исполнительный механизм занимает нейтральное положение. Иначе программная транзакция закончилась раньше тела.

RFC 9695 регистрирует haptics как медиатип верхнего уровня и первоначальные подтипы IVS, HJIF и HMPG. Верхний уровень сообщает, что содержимому нужны тактильная подсистема и связанное оборудование; подтип указывает точное представление. Это общеинфраструктурный маршрут. Он не удостоверяет, что конкретное устройство поняло, сохранило и безопасно исполнило замысел.

От заголовка до нейтрали — разные субъекты доказательства

Заголовок принадлежит отправителю или упаковщику. Запись в реестре IANA принадлежит системе регистрации. Результат парсинга принадлежит реализации. Адаптация принадлежит движку и профилю устройства. Команда принадлежит драйверу, движение — физической системе, ощущение — человеку.

Если объединить их словом «сработало», более ранний слой присвоит авторитет последующего. Зарегистрированное имя начнёт выглядеть доказательством движения; принятая структура — доказательством сохранённого эффекта; отправленная команда — доказательством ощущения. Надёжная запись держит эти факты раздельно.

Первый элемент — неизменяемый хеш объекта вместе с типом, подтипом и параметрами. Затем фиксируются версия реестра, выбранный декодер, его версия и результат анализа. После этого появляются отдельные наборы эффектов: запрошенные, понятые, адаптированные и фактически переданные драйверу. Завершает цепь подтверждение остановки и нейтрального состояния.

Даже последнее подтверждение не равно измерению силы или температуры. Команда может не исполниться. Физическое измерение, в свою очередь, не доказывает субъективного ощущения. Для каждого утверждения нужен собственный метод наблюдения.

Неизвестный подтип может продолжить путь

RFC 9695 рекомендует трактовать нераспознанный тактильный подтип как application/octet-stream. Это консервативное правило RFC 2046: неизвестным байтам не приписывают форматную семантику только из-за знакомого семейства.

Одновременно стандарт разрешает реализации передать неизвестный подтип тактильной подсистеме и связанному оборудованию. Верхний слой может не знать будущее расширение, которое понимает подключаемый модуль, системная служба или более новое устройство. Так сохраняется расширяемость.

Для аудита это две независимые развилки. Медиаслой записывает распознавание и fallback. Прикладной слой записывает хранение, загрузку, поиск декодера, передачу службе и запрет физического выхода до идентификации. Фраза «обработано как octet-stream» не доказывает изоляцию от оборудования. Фраза «передано тактильной службе» не доказывает успешного декодирования.

RFC 6838 определяет процедуру регистрации медиатипов, а RFC 9694 — критерии нового имени слева от косой черты. Их предмет — общий реестр. Здесь исследуется то, что происходит после корректной маршрутизации.

Игнорирование подзначения — не сохранение смысла

Параметр может содержать несколько разделённых запятыми подзначений. Если обработчик знает параметр, но не знает одно подзначение, RFC 9695 велит проигнорировать неизвестное и продолжить с известными. Благодаря этому старый приёмник не отвергает целый объект из-за нового расширения.

Но отправитель мог считать список совместным набором условий, а получатель — перечнем альтернатив. Неизвестное значение могло обозначать класс устройства, участок тела, модальность или ограничение. Синтаксис останется допустимым, хотя практический смысл сузится.

Квитанция параметров должна содержать исходную строку, распознанные и проигнорированные элементы, применённые значения по умолчанию и итоговую конфигурацию декодера. Нужна и версия реализации. После обновления старое неизвестное значение может стать известным; после удаления модуля — наоборот. Один хеш файла пойдёт другим путём.

Независимость формата не делает устройства эквивалентными

IVS — основанный на XML независимый от устройства формат обмена. RFC прямо говорит, что не все устройства способны воспроизводить все его эффекты. Независимость освобождает описание от одного изделия, но не добавляет отсутствующие актуаторы.

HJIF на JSON и бинарный HMPG описывают временные и пространственные эффекты и могут связывать их с частями тела. В них может быть описание эталонного устройства, по которому рендерер адаптирует материал к реальному оборудованию. Адаптация — это преобразование с потерями, а не прозрачный провод.

Пространственная волна для восьми актуаторов на устройстве с двумя превратится в пару импульсов, общую вибрацию или будет отброшена. Отсутствующий тепловой канал означает потерю компонента. Более узкий диапазон силы требует сжатия или отсечения. Два приёмника могут правильно принять файл и дать существенно разные физические результаты.

Официальная документация Apple Core Haptics иллюстрирует локальный слой, но не доказывает поддержку RFC 9695 устройствами Apple. Она описывает кратковременные и непрерывные события, параметры, проигрыватели и движок. Приложение должно проверять возможности оборудования, а в AHAP пропущенные параметры получают значения по умолчанию. Движок, способность и default входят в происхождение результата.

Статус «медиа» не ограничивает энергию

Регистрации называют эти форматы медиа, а не исполняемым кодом. Классификация полезна, но XML-, JSON- и бинарные структуры всё равно проходят через парсеры, память, пользовательские службы, драйверы и иногда околоядерные пути. Вредоносные описательные данные способны атаковать уязвимую реализацию, не объявляя себя программой.

Отдельно существует физическая безопасность. Тактильные системы могут создавать вибрацию, кинестетическую силу, температуру и ощущение текстуры. RFC 9695 предупреждает, что неконтролируемые тепловые и кинестетические устройства могут причинить травму. Ограничение размера файла не заменяет пределы амплитуды, силы, температуры, длительности, скорости изменения и повторения.

Нужны два независимых обоснования безопасности. Программное покрывает структуру, ресурсы, изоляцию, декодер и драйвер. Физическое покрывает согласие, реальный профиль возможностей, локальные пределы, остановку, нейтраль и накопленное воздействие. Успех одного не подписывает второе.

W3C Vibration API показывает ещё один локальный допуск: пользовательский агент может ограничивать вибрацию видимостью документа и Permissions Policy. Этот API не равен IVS, HJIF или HMPG. Он показывает архитектурный факт: корректный запрос может быть отклонён контекстной политикой, и такой отказ нельзя смешивать с ошибкой формата или отсутствием оборудования.

Транспортная полнота ещё не полнота эффекта

RFC 9993 обновляет haptics/hmpg и задаёт RTP payload, фрагментацию, агрегацию и параметры SDP для MPEG-I haptics. Он отвечает за доставку и восстановление медиаблоков. Правильно собранный блок — сильное транспортное доказательство, но он ещё не прошёл локальные распознавание, адаптацию и допуск.

Именно поэтому журналы транспорта и рендеринга должны оставаться разными. Потерянный пакет объясняет неполный вход. Отброшенный при адаптации эффект объясняет неполный выход при полном входе. Сработавший ограничитель объясняет намеренное уменьшение команды. Отсутствующий нейтральный отклик объясняет незавершённую физическую операцию.

Принцип минимальной начальной спецификации Lu Heng задаёт разумную границу: совместно фиксируются семейство, подтипы, синтаксис и базовый fallback. Возможности, согласие, будущий выбор и пределы остаются локальными, но должны быть наблюдаемы. Дисциплина слоёв реальности разводит реестр, заголовок, разбор, преобразование, команду, измерение и ощущение. Примат работающего кода означает, что квитанция конкретного endpoint сильнее вывода из того, что стандарт допускает в общем случае.

Источники