the exception shouldn't rely on the rest of the class
Add basic compliance specs for every service

These are simply sanity/compliance checks since we've had issues in the
past.

- A service must comply with its own schema. This means that if the
  class is annotated with a given argument and then that argument is
  passed to the service, it should not have a config error.

- A service must implement the `call` interface method.