Off-topic but I’d like to comment anyway. Rotation using quaternions is almost a de-facto standard in game engines. Defold also provides support for euler angles, but you should try to get to terms with quaternions.
There’s a go.set_rotation():
-- rotate 45 degrees around the z-axis
go.set_rotation(vmath.quat_rotation_z(math.rad(45))
There’s also go.set(".", "euler.z")
and go.animate(".", "rotation.z", ...)
Not quite. It relies on hashed strings. There’s a difference (performance mainly). If you’re worried about typos and refactoring you can store all hashed message ids in a Lua module. Change in a single place instead of all over. And until we’re adding static code analysis to our internal editor you can use Atom with a Lua linter to get a warning if you’re mistyping a message id reference when you have them stored in a module.