Since January, I've been working on improving the engine (branch 1.0) by making everything customizable and scriptable. In short, the ultimate goal is to turn the Zelda Mystery of Solarus DX engine into a general Zelda-like engine. When it's done, you will be able to make your own games with the Solarus engine.
To reach this goal, I decided to rewrite completely the Lua API. The new API is much more powerful, cleaner and easier to use. It provides real Lua datatypes and functions for everything that exists in the engine: maps, non-playing characters, enemies, sprites, movements, 2D surfaces, savegames, menus, timers, etc. The title screen, the other menus, the pause screen and the HUD can be scripted now. This is necessary for you to make your own games!
Let's take an example of why it is easier to use. Let's say that in the script of a map, you want to give animation "walking" to the non-playing character called "tom".
With Solarus 0.9:
sol.main.sprite_set_animation(sol.map.npc_get_sprite("tom"), "walking")
tom:get_sprite():set_animation("walking")
self:get_entity("tom"):get_sprite():set_animation("walking")
local other = self:get_map():get_entity("another_enemy") other:f()
Everything is more flexible in the new Solarus API. You can also access enemies (as well as most datatypes) like tables to associate custom data to them but I will talk about this another day :)