code: public static String getLabel(String fullName, Messages messages, Options options) {
          logger.trace("getting label for '{}' with _label: {}", fullName, options._label());
  
          String[] parts = splitName(fullName);   // parts: (parent, name/index, isArray)
          boolean isArray = Boolean.parseBoolean(parts[2]);
          String defaultLabel = isArray
                  ? splitName(parts[0])[1] + "[" + parts[1] + "]"
                  : parts[1];
  
          String label = options._label().map(l -> l.startsWith("@") ? messages.get(l.substring(1)) : l)
                  .orElse(defaultLabel);
  
          logger.trace("getting label - return {}", label);
  
          return label;
      }
docs: i18n off: use label; else use last field name from full name