def job_has_properties
      klass = job_class
      return unless klass

      properties.each_pair do |k, _v|
        next if klass.public_method_defined?("#{k}=".to_sym)
        errors.add(:properties, "Unknown Property: Attempted to set a value for #{k.inspect} which is not allowed on the job #{job_class_name}")
      end
    end
def job_has_properties
      klass = job_class
      return unless klass

      properties.each_pair do |k, _v|
        next if klass.public_method_defined?("#{k}=".to_sym)
        errors.add(:properties, "Unknown Property: Attempted to set a value for #{k.inspect} which is not allowed on the job #{job_class_name}")
      end
    end
Does the job have all the supplied properties