library(Countr)
d <- fertility
nrow(d)
# [1] 1243
Ясно, что необходимо будет выставить некоторые функции lua через API так, чтобы разработчики могли составить и сочетать те функции.
Я натыкаюсь через эту хорошую презентацию на то, как правильно разработать API и включенное соответствие рекомендаций, что я сделал в прошлом. Это поможет Вам вести свой дизайн.
После того как у Вас есть API, я рекомендую использовать шаблон "команда" в lua или в C++ для создания моста с UI. В прошлом я инкапсулировал каждый вызов API в Команде, и команду можно было затем назвать с помощью сценария. Я не знаю lua, но я знаю, что Python является хорошим языком сценария для использования с командами.
Удача с Вашим проектом.
Я хотел бы указать на то, что происходит в разработке новой версии Блендера, 2.50. Предыдущий Python API раньше был рукописным слоем, пытающимся переносить большинство технических возможностей. Новый API автоматически перенесет доступ к структуре данных через Данные API. Больше документов здесь.
Попробуйте БОЛЬШОЙ ГЛОТОК (Упрощенная Обертка и Интерфейсный Генератор). Это может генерировать обертки Lua для существующих заголовочных файлов C/C++. Это позволит Вам быстро выставлять все API Lua. На основе Вашего опыта затем можно выбрать другую архитектуру.
Открытый исходный код проект?
Звуками его Ваши пользователи собираются иметь определенный уровень программирования знаний, и они также собираются хотеть реализовать новые опции. Таким образом выполнение двух ролей, как клиент и разработчик.
Почему бы не общедоступное исходное дерево только для чтения, которое они могут проверить, продолжает работать и отправляет патчи к Вам. Если Вы затем считаете их работу, чтобы быть достаточно хорошими, и достаточно релевантными можно включать ее в следующий выпуск.
При размышлении разработчика достаточно хорошим в целом, Вы могли бы дать им прямой доступ для записи к исходному дереву и начать планировать новые возможности с ними.
Новый Sketchup Ruby API - довольно хороший пример того, что вы ищете. Сравните его со старым API, чтобы понять, что не делать.