Implement DSL for defining Motion commands

Paired with @kejadlen