JSONスキーマバリデータとオリジナルのエラーメッセージ

justinrainbow/json-schema は大変便利なんですが、どの制約(Constraints)に引っかかったのか分かりません。
オリジナルのエラーメッセージの出し分けに'message'をヒントにしようと思います。

制約キーワード

分類 キーワード
必須系 require, defined
無効系 'value found, but a', valid, format, missing, 'must be', allow, known, match, regex

注意

データ型の制約エラーの場合、messageにキーワード「required」が含まれます。

Type.php:  gettype($value) value found, but a $type is required

制約エラーの場合にどんなmessageが設定される?

$ find vendor/justinrainbow/json-schema -type f -name "*.php" | xargs grep "this->addError(" | grep ...

Collection.php: There must be a minimum of $schema->minItems in the array
Collection.php: There must be a maximum of $schema->maxItems in the array
Collection.php: There are no duplicates allowed in the array
Collection.php: The item ' $i '[' $k '] is not defined and the definition does not allow additional items

Enum.php:       does not have a value in the enumeration print_r($schema->enum, true)

Format.php:     Invalid date %s, expected format YYYY-MM-DD, json_encode($element)
Format.php:     Invalid time %s, expected format hh:mm:ss, json_encode($element)
Format.php:     Invalid date-time %s, expected format YYYY-MM-DDThh:mm:ssZ or YYYY-MM-DDThh:mm:ss+hh:mm, json_encode($element)
Format.php:     Invalid time %s, expected integer of milliseconds since Epoch, json_encode($element)
Format.php:     Invalid regex format $element
Format.php:     Invalid color
Format.php:     Invalid style
Format.php:     Invalid phone number
Format.php:     Invalid URL format
Format.php:     Invalid email
Format.php:     Invalid IP address
Format.php:     Invalid IP address
Format.php:     Invalid hostname
Format.php:     Unknown format: json_encode($schema->format)

Number.php:     must have a minimum value greater than boundary value of $schema->minimum
Number.php:     must have a minimum value of $schema->minimum
Number.php:     use of exclusive Minimum requires presence of minimum
Number.php:     must have a minimum value of $schema->minimum
Number.php:     must have a maximum value less than boundary value of $schema->maximum
Number.php:     must have a maximum value of $schema->maximum
Number.php:     use of exclusive Maximum requires presence of maximum
Number.php:     must have a maximum value of $schema->maximum
Number.php:     is not divisible by $schema->divisibleBy
Number.php:     must be a multiple of $schema->multipleOf

Object.php:     The pattern $pregex is invalid
Object.php:     The property $i is not defined and the definition does not allow additional properties
Object.php:     the presence of the property $i requires that $require also be present

String.php:     must be at most $schema->maxLength characters long
String.php:     must be at least $schema->minLength characters long
String.php:     does not match the regex pattern $schema->pattern

Type.php:       gettype($value) value found, but a $type is required

Undefined.php:  the property $required is required
Undefined.php:  is missing and it is required
Undefined.php:  disallowed value was matched
Undefined.php:  matched a schema which it should not
Undefined.php:  must contain a minimum of $schema->minProperties properties
Undefined.php:  must contain no more than $schema->maxProperties properties
Undefined.php:  failed to match all schemas
Undefined.php:  failed to match at least one schema
Undefined.php:  $key depends on $dependency and $dependency is missing
Undefined.php:  $key depends on $d and $d is missing