RouteBase get $requiredExtraValueRoute => GoRouteData.$route(
      path: '/default-value-route',
      factory: $RequiredExtraValueRouteExtension._fromState,
    );

extension $RequiredExtraValueRouteExtension on RequiredExtraValueRoute {
  static RequiredExtraValueRoute _fromState(GoRouterState state) =>
      RequiredExtraValueRoute(
        $extra: state.extra as int,
      );

  String get location => GoRouteData.$location(
        '/default-value-route',
      );

  void go(BuildContext context) => context.go(location, extra: $extra);

  Future<T?> push<T>(BuildContext context) =>
      context.push<T>(location, extra: $extra);

  void pushReplacement(BuildContext context) =>
      context.pushReplacement(location, extra: $extra);

  void replace(BuildContext context) =>
      context.replace(location, extra: $extra);
}
