Если что, то мы обсуждаем 5-10 сущностей:
1) переменная: название, тип, значение по умолчанию
2) макрос: его название, выходы, выходы
3) функция (например, fADD на холсте): идентификатор, координаты на холсте
4) блоки чтения/записи в переменную: тип блока, координаты на холсте
5) связь: вход, выход, координаты на холсте
Описание подобных сущностей в формате
protobuf,
thrift и тому подобных не должно занять много времени. Можно, конечно, и в XML (+XSD) формате.
В protobuf/thrift изначально заложена возможность расширения в будущем. Т.е. если в новых версиях ОЛ будут добавляться новые поля (свойства), то старые файлы будут по-прежнему открываться.
Я и пример набросать могу.