What do you think about validation&deserialization flow:
1. Read annotations and generate validation rules. Can be done by 3rd party library. As result Map<Class, List<Rules>>
2. Parse json as a map
3. Apply validation rules. Validation rules can be passed as parameter in configuration.
4. Create object