Returns three objects:
        an annotation dict (NexSON formmatted),
        the validation_log object created when NexSON validation was performed, and
        the object of class NexSON which was created from nexson. This object may
            alias parts of the nexson dict that is passed in as an argument.

    Currently the only kwargs used is 'max_num_trees_per_study'

def ot_validate(nexson, **kwargs):
    """Returns three objects:
        an annotation dict (NexSON formmatted),
        the validation_log object created when NexSON validation was performed, and
        the object of class NexSON which was created from nexson. This object may
            alias parts of the nexson dict that is passed in as an argument.

    Currently the only kwargs used is 'max_num_trees_per_study'
    """
    # stub function for hooking into NexSON validation
    codes_to_skip = [NexsonWarningCodes.UNVALIDATED_ANNOTATION]  # pylint: disable=E1101
    v_log, adaptor = validate_nexson(nexson, codes_to_skip, **kwargs)
    annotation = v_log.prepare_annotation(author_name='api.opentreeoflife.org/validate',
                                          description='Open Tree NexSON validation')
    return annotation, v_log, adaptor