def one_or_more(schema: dict, unique_items: bool=True, min: int=1, max: int
    =None) ->dict:
    """
    Helper function to construct a schema that validates items matching
    `schema` or an array containing items matching `schema`.

    :param schema: The schema to use
    :param unique_items: Flag if array items should be unique
    :param min: Correlates to ``minLength`` attribute of JSON Schema array
    :param max: Correlates to ``maxLength`` attribute of JSON Schema array
    """
    multi_schema = {'type': 'array', 'items': schema, 'minItems': min,
        'uniqueItems': unique_items}
    if max:
        multi_schema['maxItems'] = max
    return {'oneOf': [multi_schema, schema]}
