private Map<PropertyBuilder.PropertyId, Object> argsFromModel(ModelImpl model) {
if (model == null) return Collections.emptyMap();
final Map<PropertyBuilder.PropertyId, Object> args = new EnumMap<>(PropertyBuilder.PropertyId.class);
args.put(PropertyBuilder.PropertyId.DESCRIPTION, model.getDescription());
args.put(PropertyBuilder.PropertyId.EXAMPLE, model.getExample());
args.put(PropertyBuilder.PropertyId.ENUM, model.getEnum());
args.put(PropertyBuilder.PropertyId.TITLE, model.getTitle());
args.put(PropertyBuilder.PropertyId.DEFAULT, model.getDefaultValue());
args.put(PropertyBuilder.PropertyId.DESCRIMINATOR, model.getDiscriminator());
args.put(PropertyBuilder.PropertyId.UNIQUE_ITEMS, model.getUniqueItems());
args.put(PropertyBuilder.PropertyId.VENDOR_EXTENSIONS, model.getVendorExtensions());
args.put(PropertyBuilder.PropertyId.PATTERN, model.getPattern());
args.put(PropertyBuilder.PropertyId.MAXIMUM, model.getMaximum());
args.put(PropertyBuilder.PropertyId.MINIMUM, model.getMinimum());
args.put(PropertyBuilder.PropertyId.EXCLUSIVE_MAXIMUM, model.getExclusiveMaximum());
args.put(PropertyBuilder.PropertyId.EXCLUSIVE_MINIMUM, model.getExclusiveMinimum());
args.put(PropertyBuilder.PropertyId.MULTIPLE_OF, model.getMultipleOf());
args.put(PropertyBuilder.PropertyId.MIN_LENGTH, model.getMinLength());
args.put(PropertyBuilder.PropertyId.MAX_LENGTH, model.getMaxLength());
return args;
}