Задумался над вопросом создания "альтернативной" IDE для дракона. На первый взгляд использование в качестве основы одной из RCP (н-р, netbeans или eclipse) должно позволить реализовать IDE достаточно быстро. 
Неспеша размышляю над различными аспектами будущей системы 

Вопрос номер один - формат хранения схем. 
Самое простое решение использовать бинарный формат (вплоть до сериализации схемы 

), но оно мне не нравится, т.к.:
1) Схемы могут храниться в cvs. Было бы очень хорошо если бы стандартные diff/merge-инструменты выдавали осмысленную информацию. С бинарным форматом достичь такого не получится. 
2) Хочется иметь возможность редактировать текстовое представление схемы "вручную", без использования IDE. Можно представить достаточно много ситуаций, когда "рефакторинг" схемы проще/быстрее осуществить над текстом, чем в "визуальном" режиме.
3) Спецификация бинарного формата обычно сложнее, чем текстового. Это осложняет реализацию и поиск "багов".
Есть какие-нибудь идеи на этот счёт? Может быть текстовое представление и не нужно?
Думал об xml-ном описание. С одной стороны упрощается разбор, с другой - страдает читаемость и модифицируемость "руками"...
-----
Забыл упомянуть один момент.
Текстовое представление может служить для представления:
а) программы на "псевдо" языке, где есть только управляющие конструкции.
Н-р: 
Код:
(СИЛУЭТ
    (ЗАГОЛОВОК "Силуэт")
    (ВЕТКА "Поиск автобуса"
        (КОММЕНТАРИЙ "Найди остановку автобуса и займи очередь")
        (АДРЕС "Ожидание посадки"))
    (ВЕТКА "Ожидание посадки"
        (ВОПРОС "Автобус подошёл?"
            (ЕСЛИ_ДА (МЕТКА :M1)
                     (ВОПРОС "Твоя очередь подошла?"
                         (ЕСЛИ_ДА (ВОПРОС "Есть место?"
                                      (ЕСЛИ_ДА (АДРЕС "Посадка в автобус"))
                                      (ЕСЛИ_НЕТ )))
                         (ЕСЛИ_НЕТ (ПРОДОЛЖИТЬ :M1))))
            (ЕСЛИ_НЕТ ))
        (АДРЕС "Ожидание посадки"))
    (ВЕТКА "Посадка в автобус" 
        (КОНЕЦ)))
б) описания графа (вариация на тему входного файла для graphviz'a).
(б) - проще реализовать, но вряд ли такое предсталение будет пригодно для ручной правки и diff/merge...