T illegalArg<T>(String prop, [String? message]) => throw Exception( message ?? "Illegal argument $prop: ${message ?? 'No message'}");