def cast(value, _interaction)
      case value
      when NilClass
        raise MissingValueError, name unless default?

        nil
      else
        raise InvalidValueError, "#{name}: #{describe(value)}"
      end
    end
def cast(value, _interaction)
      case value
      when NilClass
        raise MissingValueError, name unless default?

        nil
      else
        raise InvalidValueError, "#{name}: #{describe(value)}"
      end
    end
@param value [Object]
 @param _interaction [Base, nil]

 @return [Object]

 @raise [MissingValueError] If the value is missing and there is no
   default.
 @raise [InvalidValueError] If the value is invalid.

 @private