Why not `Message` instead of `I18nMessage`? And this class should implement `JsonSerializer` and be a `@Component`