Choose a schema for client request operation and validate
        the operation field. If the schema is not found skips validation.
        :param dct: an operation field from client request
        :return: raises exception if invalid request

def validate(self, dct):
        """
        Choose a schema for client request operation and validate
        the operation field. If the schema is not found skips validation.
        :param dct: an operation field from client request
        :return: raises exception if invalid request
        """
        if not isinstance(dct, dict):
            # TODO this check should be in side of the validator not here
            self._raise_invalid_fields('', dct, 'wrong type')
        txn_type = dct.get(TXN_TYPE)
        if txn_type is None:
            self._raise_missed_fields(TXN_TYPE)
        if txn_type in self.operations:
            # check only if the schema is defined
            op = self.operations[txn_type]
            op.validate(dct)