I am building a Java/Spring application that imports and parses bank statements from different banks. Each bank provides slightly different transaction data. After parsing, I normalize raw bank rows into a common object similar to this: public record ParsedTransaction( LocalDate transactionDate, BigDecimal amount, String merchantName, String description, String bankCategoryName, String mccCode, String transactionTypeCode ) {} The problem is that not all fields are always available: Some banks provide a category, for example Groceries , Transport , Restaurants .