Спецификация очень предварительная и будет многократно меняться, полагаю.
Тип данных Post
Служит для передачи классических форумных сообщений при неопределённом подтипе (они могут быть «комментарий», «новость» и т.п.). Не знаем точный тип — шлём Post.
Поля:
UUID — уникальный идентификатор сообщения. Должен быть один во всей системе. Назначается нодой-первоисточником и сохраняется при всех дальнейших передачах. Может быть произвольного строкового формата с латинскими алфавитно-цифровыми и пунктуационными символами. Но в общем, рекомендуется включать в себя идентификатор первичной ноды. Скажем, сообщения с форумов Авиабазы идентифицируются в Java-стиле как ru.balancer.board.post.NNNNNN.
Node — уникальный идентификатор ноды-первоисточника. Аналогично UUID. На Авиабазе — ru.balancer.board
TopicUUID — UUID топика (контейнера) сообщения. Для Авиабазы: ru.balancer.board.topic.NNNNN.
Author — имя автора. Поле будет пересматриваться в пользу массива с расширенными параметрами. Произвольная строка.
AuthorEmailMD5 — MD5-хеш E-mail автора. Служит для идентификации авторов между нодами. Дополнительно может служить для извлечения граватара.
AuthorUUID — уникальный идентификатор автора сообщения на первичной ноде. ru.balancer.board.user.NNNNN
Date — дата создания сообщения в формате rfc2822 или ином, понимаемом преобразованием strtotime.
Modify — дата последнего изменения сообщения в том же формате.
Type — тип сообщения (всегда Post)
Markup — язык разметки сообщений (markdown, html, text, bbcode, lcml ... )
AnswerTo — идентификатор (UUID) объекта, на который ответом является данное сообщение. Возможно, будет переименован в AnswerToUUID
...
Что планируется:
— Возможно, переименовать поле AnswerTo в AnswerToUUID.
— Добавить поле, возвращающее http-ссылку на исходное сообщение первичной ноды
— Расширить поле Author до массива, содержащего расширенную информацию. Либо ввести дополнительные поля. Нужно подумать, стоит ли отходить от плоской модели данных. Скорее всего придётся, так как авторов статей и т.д. может быть более одного. Либо вводить «нумерованные поля».
