Olá,
Legal o conceito de Open Close, lembrou bastante o padrão Command. Quanto a validação de um JSON (se atributo existe, se valor está dentro de range, se um determinado atributo possui limite máximo de tamanho), devemos implementar uma validação para cada atributo ou podemos centralizar as validações em uma classe Validacao que possui todos os métodos de validação, recebendo como parâmetro atributo e valor a ser validado?
Exemplo de JSON: { "title" : " Calça Jeans Azul", "genre" : "M", "ageGroup": "A" }