# Below is a list of Flutter team members who are suggested reviewers
# for contributions to packages in this repository.
#
# These names are just suggestions. It is fine to have your changes
# reviewed by someone else.

packages/animations/**                                   @goderbauer
packages/camera/**                                       @bparrishMines
packages/cross_file/**                                   @ditman
packages/css_colors/**                                   @stuartmorgan
packages/extension_google_sign_in_as_googleapis_auth/**  @ditman
packages/file_selector/**                                @stuartmorgan
packages/flutter_adaptive_scaffold/**                    @gspencergoog
packages/flutter_image/**                                @stuartmorgan
packages/flutter_lints/**                                @goderbauer
packages/flutter_markdown/**                             @domesticmouse
packages/flutter_migrate/**                              @stuartmorgan
packages/flutter_template_images/**                      @stuartmorgan
packages/go_router/**                                    @chunhtai
packages/go_router_builder/**                            @chunhtai
packages/google_identity_services_web/**                 @ditman
packages/google_maps_flutter/**                          @stuartmorgan
packages/google_sign_in/**                               @stuartmorgan
packages/image_picker/**                                 @tarrinneal
packages/interactive_media_ads/**                        @bparrishMines
packages/in_app_purchase/**                              @bparrishMines
packages/local_auth/**                                   @stuartmorgan
packages/metrics_center/**                               @christopherfujino
packages/multicast_dns/**                                @jmagman
packages/palette_generator/**                            @gspencergoog
packages/path_provider/**                                @stuartmorgan
packages/pigeon/**                                       @tarrinneal
packages/platform/**                                     @stuartmorgan
packages/plugin_platform_interface/**                    @stuartmorgan
packages/pointer_interceptor/**                          @ditman
packages/process/**                                      @stuartmorgan
packages/quick_actions/**                                @bparrishMines
packages/rfw/**                                          @Hixie
packages/shared_preferences/**                           @tarrinneal
packages/standard_message_codec/**                       @jonahwilliams
packages/two_dimensional_scrollables/**                  @Piinks
packages/url_launcher/**                                 @stuartmorgan
packages/vector_graphics/**                              @jonahwilliams
packages/vector_graphics_codec/**                        @jonahwilliams
packages/vector_graphics_compiler/**                     @jonahwilliams
packages/video_player/**                                 @tarrinneal
packages/web_benchmarks/**                               @yjbanov
packages/webview_flutter/**                              @bparrishMines
packages/xdg_directories/**                              @stuartmorgan
third_party/packages/cupertino_icons/**                  @MitchellGoodwin
third_party/packages/cupertino_icons/test/goldens/**     @LongCatIsLooong
third_party/packages/flutter_svg/**                      @domesticmouse
third_party/packages/flutter_svg_test/**                 @domesticmouse
third_party/packages/path_parsing/**                     @domesticmouse

# Plugin platform implementation rules. These should stay last, since the last
# matching entry takes precedence.

# - Web
packages/camera/camera_web/**                            @ditman
packages/file_selector/file_selector_web/**              @ditman
packages/google_maps_flutter/google_maps_flutter_web/**  @ditman
packages/google_sign_in/google_sign_in_web/**            @ditman
packages/image_picker/image_picker_for_web/**            @ditman
packages/pointer_interceptor/pointer_interceptor_web/**  @ditman
packages/shared_preferences/shared_preferences_web/**    @ditman
packages/url_launcher/url_launcher_web/**                @ditman
packages/video_player/video_player_web/**                @ditman
packages/webview_flutter/webview_flutter_web/**          @ditman

# - Android
packages/camera/camera_android/**                        @camsim99
packages/camera/camera_android_camerax/**                @camsim99
packages/espresso/**                                     @reidbaker
packages/file_selector/file_selector_android/**          @gmackall
packages/flutter_plugin_android_lifecycle/**             @reidbaker
packages/google_maps_flutter/google_maps_flutter_android/**  @reidbaker
packages/google_sign_in/google_sign_in_android/**        @camsim99
packages/image_picker/image_picker_android/**            @gmackall
packages/in_app_purchase/in_app_purchase_android/**      @gmackall
packages/local_auth/local_auth_android/**                @camsim99
packages/path_provider/path_provider_android/**          @camsim99
packages/quick_actions/quick_actions_android/**          @camsim99
packages/shared_preferences/shared_preferences_android/**  @reidbaker
packages/url_launcher/url_launcher_android/**            @gmackall
packages/video_player/video_player_android/**            @camsim99 @matanlurey
# Owned by ecosystem team for now during the wrapper evaluation.
packages/webview_flutter/webview_flutter_android/**      @bparrishMines

# - Darwin
packages/camera/camera_avfoundation/**                   @hellohuanlin
packages/file_selector/file_selector_ios/**              @jmagman
packages/file_selector/file_selector_macos/**            @jmagman
packages/google_maps_flutter/google_maps_flutter_ios/**  @cbracken
packages/google_sign_in/google_sign_in_ios/**            @loic-sharma
packages/image_picker/image_picker_ios/**                @loic-sharma
packages/image_picker/image_picker_macos/**              @jmagman
packages/in_app_purchase/in_app_purchase_storekit/**     @louisehsu
packages/ios_platform_images/**                          @jmagman
packages/local_auth/local_auth_darwin/**                 @louisehsu
packages/path_provider/path_provider_foundation/**       @jmagman
packages/pigeon/**/ios/**/*                              @hellohuanlin @louisehsu
packages/pointer_interceptor/pointer_interceptor_ios/**  @louisehsu
packages/quick_actions/quick_actions_ios/**              @jmagman
packages/shared_preferences/shared_preferences_foundation/**  @tarrinneal
packages/url_launcher/url_launcher_ios/**                @jmagman
packages/url_launcher/url_launcher_macos/**              @jmagman
packages/video_player/video_player_avfoundation/**       @hellohuanlin
packages/webview_flutter/webview_flutter_wkwebview/**    @cbracken

# - Linux
packages/file_selector/file_selector_linux/**            @cbracken
packages/image_picker/image_picker_linux/**              @cbracken
packages/path_provider/path_provider_linux/**            @cbracken
packages/shared_preferences/shared_preferences_linux/**  @cbracken
packages/url_launcher/url_launcher_linux/**              @cbracken

# - Windows
packages/camera/camera_windows/**                        @cbracken
packages/file_selector/file_selector_windows/**          @cbracken
packages/image_picker/image_picker_windows/**            @cbracken
packages/local_auth/local_auth_windows/**                @cbracken
packages/path_provider/path_provider_windows/**          @cbracken
packages/shared_preferences/shared_preferences_windows/** @cbracken
packages/url_launcher/url_launcher_windows/**            @cbracken
