make sure number fields are treated as numbers instead of strings

Not sure if there's a rubier way of doing this.

I also noticed that we end up sending both the blockly and dashboard fields across (i.e. both start_direction and startDirection).  Not sure if this is intentional/needed, but is separate from this issue.