[API-Design] - Input validation

Right now we have no validation over our public API points meaning that we are currently forced to deal with inputs that we don't expect.

Closes #862
Why not just have the associated error message be "parameter A required"?