# This list should be kept as short as possible, and things should remain here
# only as long as necessary, since in general the goal is for all of the latest
# versions of packages to be mutually compatible, and compilable with Wasm.

# This is only used for wasm compilation. Once all packages in the repo have
# been migrated, remove this file and use `exclude_all_packages_app.yaml` only.

# Packages that aren't migrated yet.
# https://github.com/flutter/flutter/issues/117022
- camera
- webview_flutter

# Dependencies are not migrated yet
# https://github.com/flutter/flutter/issues/148624
- google_maps_flutter
