def METHOD_NAME(cls, error, *, source="snapcraft.yaml"):
    """Take a jsonschema.ValidationError and create a SnapcraftSchemaError.
    The validation errors coming from jsonschema are a nightmare. This
    class tries to make them a bit more understandable.
    """
    messages = []
    preamble = _determine_preamble(error)
    cause = _determine_cause(error)
    supplement = _determine_supplemental_info(error)
    if preamble:
        messages.append(preamble)
    # If we have a preamble we are not at the root
    if supplement and preamble:
        messages.append(error.message)
        messages.append("({})".format(supplement))
    elif supplement:
        messages.append(supplement)
    elif cause:
        messages.append(cause)
    else:
        messages.append(error.message)
    return cls(" ".join(messages), source)