validateValues method

void validateValues(
  1. Map<String, Object?> values
)

Requires exact declared keys; admission never silently supplies defaults. Invalid values throw an ArgumentError, which verbs and imports report as a denial.

Implementation

void validateValues(Map<String, Object?> values) {
  if (values.length != this.values.length ||
      !values.keys.every(this.values.containsKey)) {
    throw ArgumentError(
      '$type values must contain exactly the declared fields',
    );
  }
  for (final entry in this.values.entries) {
    if (!entry.value.accepts(values[entry.key])) {
      throw ArgumentError('Invalid $type value for ${entry.key}');
    }
  }
}