Version 3.5.0-191.0.dev

Merge 1e9351672bfc6524bbb5f9c8b7fb21882975db68 into dev
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/remove_type_arguments.dart b/pkg/analysis_server/lib/src/services/correction/dart/remove_type_arguments.dart
index c84f914..0e512a9 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/remove_type_arguments.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/remove_type_arguments.dart
@@ -20,13 +20,15 @@
 
   @override
   Future<void> compute(ChangeBuilder builder) async {
-    var typeArguments = coveringNode;
-    if (typeArguments is! TypeArgumentList) {
-      return;
+    var node = coveringNode;
+    // A<int>.i;
+    if (node is ConstructorName) {
+      node = node.type.typeArguments;
     }
+    if (node is! TypeArgumentList) return;
 
     await builder.addDartFileEdit(file, (builder) {
-      builder.addDeletion(range.node(typeArguments));
+      builder.addDeletion(range.node(node!));
     });
   }
 }
diff --git a/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml b/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
index 632d997..ccc5c18 100644
--- a/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
+++ b/pkg/analysis_server/lib/src/services/correction/error_fix_status.yaml
@@ -45,8 +45,8 @@
 #
 # Stats:
 # -  42 "needsEvaluation"
-# - 363 "needsFix"
-# - 388 "hasFix"
+# - 361 "needsFix"
+# - 390 "hasFix"
 # - 516 "noFix"
 
 AnalysisOptionsErrorCode.INCLUDED_FILE_PARSE_ERROR:
@@ -118,9 +118,7 @@
   notes: |-
     We should be able to replace the deprecated lint rule with its replacement.
 AnalysisOptionsWarningCode.UNDEFINED_LINT:
-  status: needsFix
-  notes: |-
-    The fix is to remove the name of the lint rule.
+  status: hasFix
 AnalysisOptionsWarningCode.UNRECOGNIZED_ERROR_CODE:
   status: needsFix
   notes: |-
@@ -293,10 +291,7 @@
   status: noFix
   since: 2.15
 CompileTimeErrorCode.CLASS_INSTANTIATION_ACCESS_TO_STATIC_MEMBER:
-  status: needsFix
-  notes: |-
-    The fix is to remove the type arguments.
-  since: 2.15
+  status: hasFix
 CompileTimeErrorCode.CLASS_INSTANTIATION_ACCESS_TO_UNKNOWN_MEMBER:
   status: noFix
   notes: |-
diff --git a/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart b/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart
index f322c31..0c00c8f 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix/analysis_options/fix_generator.dart
@@ -30,6 +30,7 @@
     AnalysisOptionsWarningCode.ANALYSIS_OPTION_DEPRECATED_WITH_REPLACEMENT,
     AnalysisOptionsHintCode.DUPLICATE_RULE,
     AnalysisOptionsWarningCode.REMOVED_LINT,
+    AnalysisOptionsWarningCode.UNDEFINED_LINT,
     AnalysisOptionsWarningCode.UNSUPPORTED_OPTION_WITHOUT_VALUES,
   ];
 
@@ -101,7 +102,8 @@
       }
     } else if (errorCode == AnalysisOptionsHintCode.DEPRECATED_LINT ||
         errorCode == AnalysisOptionsHintCode.DUPLICATE_RULE ||
-        errorCode == AnalysisOptionsWarningCode.REMOVED_LINT) {
+        errorCode == AnalysisOptionsWarningCode.REMOVED_LINT ||
+        errorCode == AnalysisOptionsWarningCode.UNDEFINED_LINT) {
       await _addFix_removeLint(coveringNodePath);
     } else if (errorCode ==
         AnalysisOptionsWarningCode.UNSUPPORTED_OPTION_WITHOUT_VALUES) {
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index 9ef02b0..4ced115 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -889,6 +889,9 @@
     CreateClass.new,
     CreateMixin.new,
   ],
+  CompileTimeErrorCode.CLASS_INSTANTIATION_ACCESS_TO_STATIC_MEMBER: [
+    RemoveTypeArguments.new,
+  ],
   CompileTimeErrorCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER: [
     ConvertIntoBlockBody.missingBody,
     CreateNoSuchMethod.new,
diff --git a/pkg/analysis_server/test/src/services/correction/fix/analysis_options/remove_lint_test.dart b/pkg/analysis_server/test/src/services/correction/fix/analysis_options/remove_lint_test.dart
index 722a30c..71d3d99 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/analysis_options/remove_lint_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/analysis_options/remove_lint_test.dart
@@ -138,4 +138,17 @@
     - camel_case_types
 ''');
   }
+
+  Future<void> test_undefined() async {
+    await assertHasFix('''
+linter:
+  rules:
+    - camel_case_types
+    - undefined_rule
+''', '''
+linter:
+  rules:
+    - camel_case_types
+''');
+  }
 }
diff --git a/pkg/analysis_server/test/src/services/correction/fix/remove_type_arguments_test.dart b/pkg/analysis_server/test/src/services/correction/fix/remove_type_arguments_test.dart
index 472127c..a9575cd 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/remove_type_arguments_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/remove_type_arguments_test.dart
@@ -19,6 +19,23 @@
   @override
   FixKind get kind => DartFixKind.REMOVE_TYPE_ARGUMENTS;
 
+  Future<void> test_classInstantiationAccessToStaticMember() async {
+    await resolveTestCode('''
+class A<T> {
+  static int i = 1;
+}
+
+var x = A<int>.i;
+''');
+    await assertHasFix('''
+class A<T> {
+  static int i = 1;
+}
+
+var x = A.i;
+''');
+  }
+
   Future<void> test_explicitConst() async {
     await resolveTestCode('''
 void f() {
diff --git a/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart b/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart
index bb6dd94..f743ff6 100644
--- a/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/assignment_of_do_not_store_test.dart
@@ -129,24 +129,6 @@
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
-  test_classMemberVariable() async {
-    await assertErrorsInCode('''
-import 'package:meta/meta.dart';
-
-class A{
-  @doNotStore
-  final f = '';
-}
-
-class B {
-  String f = A().f;
-}
-''', [
-      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 99, 5),
-    ]);
-  }
-
   test_classStaticGetter() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
@@ -164,24 +146,6 @@
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
-  test_classStaticVariable() async {
-    await assertErrorsInCode('''
-import 'package:meta/meta.dart';
-
-class A{
-  @doNotStore
-  static final f = '';
-}
-
-class B {
-  String f = A.f;
-}
-''', [
-      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 106, 3),
-    ]);
-  }
-
   test_functionAssignment() async {
     await assertNoErrorsInCode('''
 import 'package:meta/meta.dart';
@@ -272,56 +236,23 @@
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
-  test_topLevelVariable() async {
+  test_topLevelGetter_binaryExpression() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
 
 @doNotStore
-final v = '';
+String? get v => '';
 
 class A {
-  final f = v;
+  final f = v ?? v;
 }
 ''', [
-      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 83, 1),
+      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 90, 1),
+      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 95, 1),
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
-  test_topLevelVariable_assignment_field() async {
-    await assertErrorsInCode('''
-import 'package:meta/meta.dart';
-
-String top = A().f;
-
-class A{
-  @doNotStore
-  final f = '';
-}
-''', [
-      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 47, 5,
-          messageContains: ["'f'"]),
-    ]);
-  }
-
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
-  test_topLevelVariable_assignment_functionExpression() async {
-    await assertErrorsInCode('''
-import 'package:meta/meta.dart';
-
-@doNotStore
-String _v = '';
-
-var c = ()=> _v;
-
-String v = c();
-''', [
-      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 76, 2),
-    ]);
-  }
-
-  test_topLevelVariable_assignment_getter() async {
+  test_topLevelGVariable_assignment_getter() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
 
@@ -335,6 +266,37 @@
     ]);
   }
 
+  test_topLevelVariable_assignment_field() async {
+    await assertErrorsInCode('''
+import 'package:meta/meta.dart';
+
+String top = A().f;
+
+class A{
+  @doNotStore
+  String get f => '';
+}
+''', [
+      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 47, 5,
+          messageContains: ["'f'"]),
+    ]);
+  }
+
+  test_topLevelVariable_assignment_functionExpression() async {
+    await assertErrorsInCode('''
+import 'package:meta/meta.dart';
+
+@doNotStore
+String get _v => '';
+
+var c = () => _v;
+
+String v = c();
+''', [
+      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 82, 2),
+    ]);
+  }
+
   test_topLevelVariable_assignment_method() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
@@ -351,23 +313,6 @@
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
-  test_topLevelVariable_binaryExpression() async {
-    await assertErrorsInCode('''
-import 'package:meta/meta.dart';
-
-@doNotStore
-final String? v = '';
-
-class A {
-  final f = v ?? v;
-}
-''', [
-      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 91, 1),
-      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 96, 1),
-    ]);
-  }
-
   test_topLevelVariable_libraryAnnotation() async {
     newFile('$testPackageLibPath/library.dart', '''
 @doNotStore
@@ -389,21 +334,20 @@
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
   test_topLevelVariable_ternary() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
 
 @doNotStore
-final v = '';
+String get v => '';
 
 class A {
   static bool c = false;
   final f = c ? v : v;
 }
 ''', [
-      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 112, 1),
-      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 116, 1),
+      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 118, 1),
+      error(WarningCode.ASSIGNMENT_OF_DO_NOT_STORE, 122, 1),
     ]);
   }
 }
diff --git a/pkg/analyzer/test/src/diagnostics/inference_failure_on_function_invocation_test.dart b/pkg/analyzer/test/src/diagnostics/inference_failure_on_function_invocation_test.dart
index 8e09d73..f1712cb 100644
--- a/pkg/analyzer/test/src/diagnostics/inference_failure_on_function_invocation_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/inference_failure_on_function_invocation_test.dart
@@ -48,16 +48,6 @@
 ''');
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
-  test_functionType_optionalTypeArgs() async {
-    await assertNoErrorsInCode('''
-import 'package:meta/meta.dart';
-void f(@optionalTypeArgs void Function<T>() m) {
-  m();
-}
-''');
-  }
-
   test_genericFunctionExpression_explicitTypeArg() async {
     await assertNoErrorsInCode('''
 void f(void Function<T>()? m, void Function<T>() n) {
diff --git a/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart b/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart
index 58a4b8c..4428b41 100644
--- a/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/return_of_do_not_store_test.dart
@@ -22,7 +22,6 @@
     writeTestPackageConfigWithMeta();
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
   test_noHintsInTestDir() async {
     // Code that is in a test dir (the default for PubPackageResolutionTests)
     // should not trigger the hint.
@@ -32,7 +31,7 @@
 import 'package:meta/meta.dart';
 
 @doNotStore
-String _v = '';
+String get _v => '';
 
 String f() {
   var v = () => _v;
@@ -76,30 +75,28 @@
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
   test_returnFromClosureInFunction() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
 
 @doNotStore
-String _v = '';
+String get _v => '';
 
 String f() {
   var v = () => _v;
   return v();
 }
 ''', [
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 92, 2),
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 97, 2),
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
   test_returnFromFunction() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
 
 @doNotStore
-String v = '';
+String get v => '';
 
 String getV() {
   return v;
@@ -110,20 +107,19 @@
 @doNotStore
 String getV3() => v;
 ''', [
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 87, 1,
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 92, 1,
           messageContains: ['getV']),
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 111, 1,
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 116, 1,
           messageContains: ['getV2']),
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
   test_returnFromGetter() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
 
 @doNotStore
-String _v = '';
+String get _v => '';
 
 String get v {
   return _v;
@@ -134,60 +130,57 @@
 @doNotStore
 String get v3 => _v;
 ''', [
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 87, 2, messageContains: ['v']),
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 111, 2,
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 92, 2, messageContains: ['v']),
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 116, 2,
           messageContains: ['v2']),
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
   test_returnFromGetter_binaryExpression() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
 
 @doNotStore
-String? _v = '';
+String? get _v => '';
 
 @doNotStore
-String? _v2 = '';
+String? get _v2 => '';
 
 String? get v => _v ?? _v2;
 ''', [
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 112, 2,
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 122, 2,
           messageContains: ['_v']),
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 118, 3,
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 128, 3,
           messageContains: ['_v2']),
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
   test_returnFromGetter_ternary() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
 
 @doNotStore
-String _v = '';
+String get _v => '';
 
 @doNotStore
-String _v2 = '';
+String get _v2 => '';
 
 var b = true;
 
 String get v => b ? _v : _v2;
 ''', [
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 128, 2),
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 133, 3),
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 138, 2),
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 143, 3),
     ]);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/48476')
   test_returnFromMethod() async {
     await assertErrorsInCode('''
 import 'package:meta/meta.dart';
 
 class A {
   @doNotStore
-  String _v = '';
+  String get _v => '';
 
   String getV() {
     return _v;
@@ -199,9 +192,9 @@
   String getV3() => _v;
 }
 ''', [
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 106, 2,
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 111, 2,
           messageContains: ['getV']),
-      error(WarningCode.RETURN_OF_DO_NOT_STORE, 135, 2,
+      error(WarningCode.RETURN_OF_DO_NOT_STORE, 140, 2,
           messageContains: ['getV2']),
     ]);
   }
diff --git a/pkg/json/CHANGELOG.md b/pkg/json/CHANGELOG.md
index 3548d2e..cfbb0ba 100644
--- a/pkg/json/CHANGELOG.md
+++ b/pkg/json/CHANGELOG.md
@@ -1,6 +1,7 @@
-# 0.20.2-wip
+# 0.20.2
 
 - Fix generated code syntax error when defining fields containing the dollar sign `$` by using raw strings.
+- Remove vendored package workaround, require ^3.5.0-154 Dart SDK.
 
 # 0.20.1
 
diff --git a/pkg/json/lib/.dart_tool/_macros/CHANGELOG.md b/pkg/json/lib/.dart_tool/_macros/CHANGELOG.md
deleted file mode 100644
index 0156f6a..0000000
--- a/pkg/json/lib/.dart_tool/_macros/CHANGELOG.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## 0.1.5
-
-- Handle ParallelWaitError with DiagnosticException errors nicely.
-- Fix a bug where we weren't reporting diagnostics for nested builders.
-
-## 0.1.4
-
-- Improve formatting of constructor initializer augmentations.
-
-## 0.1.3
-
-- Validate parts in `Code.fromParts()`.
-
-## 0.1.2
-
-- Add caching for `typeDeclarationOf` results.
-
-## 0.1.1
-
-- Add caching for `TypeDeclaration` related introspection results.
-
-## 0.1.0
-
-Initial release, copied from `_fe_analyzer_shared/lib/src/macros`.
diff --git a/pkg/json/lib/.dart_tool/_macros/CONTRIBUTING.md b/pkg/json/lib/.dart_tool/_macros/CONTRIBUTING.md
deleted file mode 100644
index 5c8bf5a..0000000
--- a/pkg/json/lib/.dart_tool/_macros/CONTRIBUTING.md
+++ /dev/null
@@ -1,45 +0,0 @@
-## Required steps when updating this package
-
-Whenever any change to the `lib` directory of this package is made, the
-following procedure **must** be followed.
-
-### Update pubspec/changelog for each release.
-
-Because this is an SDK vendored package, every change is treated as a release,
-and must have a stable version number and CHANGELOG.md entry.
-
-### Update and publish `package:macros`
-
-Additionally, the pub package `macros`, which lives at `pkg/macros`, must have
-a corresponding release on pub for each version of this package.
-
-The version of the `_macros` dependency in its pubspec must be updated to match
-the new version of this package, and the pubspec version and changelog should be
-updated. The changelog should have the same information as the associated
-versions of this package.
-
-These changes to the `macros` package should be landed in the same CL as the
-changes to this package, and it should be immediately published when the CL is
-merged. These should be marked as pre-release versions (with the `-main.x`
-suffix), and stable versions will only be published when the beta SDK has been
-released (exact process is TBD, possibly could do it as a hotfix, or publish
-from a branch).
-
-It is possible that multiple breaking changes can land within the same major
-version of this package, during the pre-release period. Version compatibility is
-thus **not** guaranteed on the dev or main channels, only the beta and stable
-channels.
-
-## Special considerations for this package
-
-This package should generally be treated like a `dart:` library, since only
-exactly one version of it ships with any SDK. That has several implications.
-
-### Must follow breaking change process
-
-Any breaking change to this package should follow the same breaking change
-process as any change to the `dart:` libraries.
-
-In general any breaking change made here can result in users not being able to
-get a version solve on the newest SDK, if their macro dependencies have not yet
-updated to the latest version.
diff --git a/pkg/json/lib/.dart_tool/_macros/LICENSE b/pkg/json/lib/.dart_tool/_macros/LICENSE
deleted file mode 100644
index b03a788..0000000
--- a/pkg/json/lib/.dart_tool/_macros/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright 2024, the Dart project authors.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-    * Neither the name of Google LLC nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/pkg/json/lib/.dart_tool/_macros/OWNERS b/pkg/json/lib/.dart_tool/_macros/OWNERS
deleted file mode 100644
index 876a884..0000000
--- a/pkg/json/lib/.dart_tool/_macros/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-file:/tools/OWNERS_FOUNDATION
diff --git a/pkg/json/lib/.dart_tool/_macros/PRESUBMIT.py b/pkg/json/lib/.dart_tool/_macros/PRESUBMIT.py
deleted file mode 100644
index 26676a4..0000000
--- a/pkg/json/lib/.dart_tool/_macros/PRESUBMIT.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-"""_macros package presubmit python script.
-
-See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
-for more details about the presubmit API built into gcl.
-"""
-
-PRESUBMIT_VERSION = '2.0.0'
-USE_PYTHON3 = True
-
-
-# Ensures that the pubspec of `package_name` has been altered.
-#
-# Returns a list of errors if not.
-#
-# TODO(jakemac): Ensure the version was bumped as well.
-def EnsurePubspecAndChangelogAltered(input_api, package_name):
-    errors = []
-    package_path = 'pkg/%s' % package_name
-    pubspec_path = '%s/pubspec.yaml' % package_path
-    pubspec_changed = any(file.LocalPath() == pubspec_path
-                          for file in input_api.change.AffectedFiles())
-    if not pubspec_changed:
-        errors.append(
-            ('The pkg/_macros/lib dir was altered but the version of %s was '
-             'not bumped. See pkg/_macros/CONTRIBUTING.md' % package_path))
-
-    changelog_path = '%s/CHANGELOG.md' % package_path
-    changelog_changed = any(file.LocalPath() == changelog_path
-                            for file in input_api.change.AffectedFiles())
-    if not changelog_changed:
-        errors.append(
-            ('The pkg/_macros/lib dir was altered but the CHANGELOG.md of %s '
-             'was not edited. See pkg/_macros/CONTRIBUTING.md' % package_path))
-    return errors
-
-# Invoked on upload and commit.
-def CheckChange(input_api, output_api):
-    errors = []
-
-    # If the `lib` dir is altered, we also require a change to the pubspec.yaml
-    # of both this package and the `macros` package.
-    lib_changed = any(file.LocalPath().startswith('pkg/_macros/lib')
-                      for file in input_api.AffectedFiles())
-    if lib_changed:
-        errors += EnsurePubspecAndChangelogAltered(input_api, '_macros')
-        errors += EnsurePubspecAndChangelogAltered(input_api, 'macros')
-
-    if errors:
-        return [
-            output_api.PresubmitError(
-                'pkg/_macros presubmit/PRESUBMIT.py failure(s):',
-                long_text='\n\n'.join(errors))
-        ]
-
-    return []
diff --git a/pkg/json/lib/.dart_tool/_macros/README.md b/pkg/json/lib/.dart_tool/_macros/README.md
deleted file mode 100644
index 3ea36b9..0000000
--- a/pkg/json/lib/.dart_tool/_macros/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-Package `_macros` contains a private API for authoring macros. 
-It is exposed as a public API by [`package:macros`](./macros/README.md).
diff --git a/pkg/json/lib/.dart_tool/_macros/analysis_options.yaml b/pkg/json/lib/.dart_tool/_macros/analysis_options.yaml
deleted file mode 100644
index 055ac10..0000000
--- a/pkg/json/lib/.dart_tool/_macros/analysis_options.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-include: package:lints/recommended.yaml
-
-analyzer:
-  language:
-    strict-casts: true
diff --git a/pkg/json/lib/.dart_tool/_macros/benchmark/serialization_benchmark.dart b/pkg/json/lib/.dart_tool/_macros/benchmark/serialization_benchmark.dart
deleted file mode 100644
index 5aa0a9d..0000000
--- a/pkg/json/lib/.dart_tool/_macros/benchmark/serialization_benchmark.dart
+++ /dev/null
@@ -1,466 +0,0 @@
-// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:convert';
-import 'dart:io';
-import 'dart:isolate';
-import 'dart:typed_data';
-
-import 'package:_macros/src/executor/message_grouper.dart';
-import 'package:_macros/src/executor/serialization.dart';
-
-void main() async {
-  for (var serializationMode in [
-    SerializationMode.json,
-    SerializationMode.byteData
-  ]) {
-    await withSerializationMode(serializationMode, () async {
-      await _isolateSpawnBenchmarks();
-      await _isolateSpawnUriBenchmarks();
-      await _separateProcessStdioBenchmarks();
-      await _separateProcessSocketBenchmarks();
-    });
-  }
-}
-
-Future<void> _isolateSpawnBenchmarks() async {
-  void Function(SendPort) childIsolateFn(SerializationMode mode) =>
-      (SendPort sendPort) => withSerializationMode(mode, () {
-            var isolateReceivePort = ReceivePort();
-            isolateReceivePort.listen((data) {
-              deserialize(data);
-              var result = serialize();
-              result = result is Uint8List
-                  ? TransferableTypedData.fromList([result])
-                  : result;
-              sendPort.send(result);
-            });
-            sendPort.send(isolateReceivePort.sendPort);
-          });
-
-  Completer? responseCompleter;
-  late SendPort sendPort;
-
-  var receivePort = ReceivePort();
-
-  var isolate = await Isolate.spawn(
-      childIsolateFn(serializationMode), receivePort.sendPort);
-
-  final sendPortCompleter = Completer<SendPort>();
-  receivePort.listen((data) {
-    if (!sendPortCompleter.isCompleted) {
-      sendPortCompleter.complete(data as SendPort);
-    } else {
-      responseCompleter!.complete(data);
-    }
-  });
-  sendPort = await sendPortCompleter.future;
-
-  // warmup
-  for (var i = 0; i < 100; i++) {
-    responseCompleter = Completer();
-    var result = serialize();
-    result =
-        result is Uint8List ? TransferableTypedData.fromList([result]) : result;
-    sendPort.send(result);
-    deserialize(await responseCompleter.future);
-  }
-  // measure
-  var watch = Stopwatch()..start();
-  for (var i = 0; i < 100; i++) {
-    responseCompleter = Completer();
-    var result = serialize();
-    result =
-        result is Uint8List ? TransferableTypedData.fromList([result]) : result;
-    sendPort.send(result);
-    deserialize(await responseCompleter.future);
-  }
-  print('Isolate.spawn + $serializationMode: ${watch.elapsed}');
-
-  receivePort.close();
-  isolate.kill();
-}
-
-Future<void> _isolateSpawnUriBenchmarks() async {
-  Completer? responseCompleter;
-  late SendPort sendPort;
-
-  var receivePort = ReceivePort();
-
-  var isolate = await Isolate.spawnUri(
-      Uri.dataFromString(childProgram(serializationMode)),
-      [],
-      receivePort.sendPort);
-
-  final sendPortCompleter = Completer<SendPort>();
-  receivePort.listen((data) {
-    if (!sendPortCompleter.isCompleted) {
-      sendPortCompleter.complete(data as SendPort);
-    } else {
-      responseCompleter!.complete(data);
-    }
-  });
-  sendPort = await sendPortCompleter.future;
-
-  // warmup
-  for (var i = 0; i < 100; i++) {
-    responseCompleter = Completer();
-    var result = serialize();
-    result =
-        result is Uint8List ? TransferableTypedData.fromList([result]) : result;
-    sendPort.send(result);
-    deserialize(await responseCompleter.future);
-  }
-  // measure
-  var watch = Stopwatch()..start();
-  for (var i = 0; i < 100; i++) {
-    responseCompleter = Completer();
-    var result = serialize();
-    result =
-        result is Uint8List ? TransferableTypedData.fromList([result]) : result;
-    sendPort.send(result);
-    deserialize(await responseCompleter.future);
-  }
-  print('Isolate.spawnUri + $serializationMode: ${watch.elapsed}');
-
-  receivePort.close();
-  isolate.kill();
-}
-
-Future<void> _separateProcessStdioBenchmarks() async {
-  Completer? responseCompleter;
-
-  var tmpDir = Directory.systemTemp.createTempSync('serialize_bench');
-  try {
-    var file = File(tmpDir.uri.resolve('main.dart').toFilePath());
-    file.writeAsStringSync(childProgram(serializationMode));
-    var process = await Process.start(Platform.resolvedExecutable, [
-      '--packages=${(await Isolate.packageConfig)!.toFilePath()}',
-      file.path,
-    ]);
-
-    var listeners = <StreamSubscription>[
-      process.stderr.listen((event) {
-        print('stderr: ${utf8.decode(event)}');
-      }),
-      (serializationMode == SerializationMode.json
-              ? process.stdout
-              : MessageGrouper(process.stdout).messageStream)
-          .listen((data) {
-        responseCompleter!.complete(data);
-      }),
-    ];
-
-    // warmup
-    for (var i = 0; i < 100; i++) {
-      responseCompleter = Completer();
-      var result = serialize();
-      if (result is List<int>) {
-        final bytesBuilder = BytesBuilder(copy: false);
-        _writeLength(result, bytesBuilder);
-        bytesBuilder.add(result);
-        process.stdin.add(bytesBuilder.takeBytes());
-      } else {
-        process.stdin.writeln(jsonEncode(result));
-      }
-      deserialize(await responseCompleter.future);
-    }
-    // measure
-    var watch = Stopwatch()..start();
-    for (var i = 0; i < 100; i++) {
-      responseCompleter = Completer();
-      var result = serialize();
-      if (result is List<int>) {
-        final bytesBuilder = BytesBuilder(copy: false);
-        _writeLength(result, bytesBuilder);
-        bytesBuilder.add(result);
-        process.stdin.add(bytesBuilder.takeBytes());
-      } else {
-        process.stdin.writeln(jsonEncode(result));
-      }
-      deserialize(await responseCompleter.future);
-    }
-    print('Separate process + Stdio + $serializationMode: ${watch.elapsed}');
-
-    for (var listener in listeners) {
-      listener.cancel();
-    }
-    process.kill();
-  } catch (e, s) {
-    print('Error running benchmark \n$e\n\n$s');
-  } finally {
-    tmpDir.deleteSync(recursive: true);
-  }
-}
-
-Future<void> _separateProcessSocketBenchmarks() async {
-  Completer? responseCompleter;
-
-  var tmpDir = Directory.systemTemp.createTempSync('serialize_bench');
-  try {
-    var file = File(tmpDir.uri.resolve('main.dart').toFilePath());
-    file.writeAsStringSync(childProgram(serializationMode));
-
-    ServerSocket serverSocket;
-    // Try an ipv6 address loopback first, and fall back on ipv4.
-    try {
-      serverSocket = await ServerSocket.bind(InternetAddress.loopbackIPv6, 0);
-    } on SocketException catch (_) {
-      serverSocket = await ServerSocket.bind(InternetAddress.loopbackIPv4, 0);
-    }
-
-    Completer<Socket> clientCompleter = Completer();
-    serverSocket.listen((client) {
-      clientCompleter.complete(client);
-    });
-
-    var process = await Process.start(Platform.resolvedExecutable, [
-      '--packages=${(await Isolate.packageConfig)!.toFilePath()}',
-      file.path,
-      serverSocket.address.address,
-      serverSocket.port.toString(),
-    ]);
-    var client = await clientCompleter.future;
-    // Nagle's algorithm slows us down >100x, disable it.
-    client.setOption(SocketOption.tcpNoDelay, true);
-
-    var listeners = <StreamSubscription>[
-      (serializationMode == SerializationMode.json
-              ? client
-              : MessageGrouper(client).messageStream)
-          .listen((event) {
-        responseCompleter!.complete(event);
-      }),
-      process.stderr.listen((event) {
-        print('stderr: ${utf8.decode(event)}');
-      }),
-      process.stdout.listen((event) {
-        print('stdout: ${utf8.decode(event)}');
-      }),
-    ];
-
-    // warmup
-    for (var i = 0; i < 100; i++) {
-      responseCompleter = Completer();
-      var result = serialize();
-      if (result is List<int>) {
-        final bytesBuilder = BytesBuilder(copy: false);
-        _writeLength(result, bytesBuilder);
-        bytesBuilder.add(result);
-        client.add(bytesBuilder.takeBytes());
-      } else {
-        client.write(jsonEncode(result));
-      }
-      deserialize(await responseCompleter.future);
-    }
-    // measure
-    var watch = Stopwatch()..start();
-    for (var i = 0; i < 100; i++) {
-      responseCompleter = Completer();
-      var result = serialize();
-      if (result is List<int>) {
-        final bytesBuilder = BytesBuilder(copy: false);
-        _writeLength(result, bytesBuilder);
-        bytesBuilder.add(result);
-        client.add(bytesBuilder.takeBytes());
-      } else {
-        client.write(jsonEncode(result));
-      }
-      deserialize(await responseCompleter.future);
-    }
-    print('Separate process + Socket + $serializationMode: ${watch.elapsed}');
-
-    for (var listener in listeners) {
-      listener.cancel();
-    }
-    process.kill();
-    await serverSocket.close();
-    client.destroy();
-  } catch (e, s) {
-    print('Error running benchmark \n$e\n\n$s');
-  } finally {
-    tmpDir.deleteSync(recursive: true);
-  }
-}
-
-void _writeLength(List<int> result, BytesBuilder bytesBuilder) {
-  int length = (result as Uint8List).lengthInBytes;
-  if (length > 0xffffffff) {
-    throw StateError('Message was larger than the allowed size!');
-  }
-  bytesBuilder.add([
-    length >> 24 & 0xff,
-    length >> 16 & 0xff,
-    length >> 8 & 0xff,
-    length & 0xff
-  ]);
-}
-
-String childProgram(SerializationMode mode) => '''
-      import 'dart:convert';
-      import 'dart:io';
-      import 'dart:isolate';
-      import 'dart:typed_data';
-
-      import 'package:_fe_analyzer_shared/src/macros/executor/message_grouper.dart';
-      import 'package:_fe_analyzer_shared/src/macros/executor/serialization.dart';
-
-      void main(List<String> args, [SendPort? sendPort]) async {
-        var mode = $mode;
-        await withSerializationMode(mode, () async {
-          if (sendPort != null) {
-              var isolateReceivePort = ReceivePort();
-              isolateReceivePort.listen((data) {
-                deserialize(data);
-                var result = serialize();
-                result = result is Uint8List
-                    ? TransferableTypedData.fromList([result])
-                    : result;
-                sendPort.send(result);
-              });
-              sendPort.send(isolateReceivePort.sendPort);
-          } else if (args.isNotEmpty) {
-            var address = args[0];
-            var port = int.parse(args[1]);
-            var socket = await Socket.connect(address, port);
-            if (mode == SerializationMode.json) {
-              socket.listen((data) {
-                var json = utf8.decode(data).trimRight();
-                deserialize(jsonDecode(json));
-                socket.write(jsonEncode(serialize()));
-              });
-            } else {
-              MessageGrouper(socket).messageStream.listen((data) {
-                deserialize(data);
-                var result = serialize() as Uint8List;
-                final bytesBuilder = BytesBuilder(copy: false);
-                _writeLength(result, bytesBuilder);
-                bytesBuilder.add(result);
-                socket.add(bytesBuilder.takeBytes());
-              });
-            }
-          } else {
-            // We allow one empty line to work around some weird data.
-            var allowEmpty = true;
-            if (mode == SerializationMode.json) {
-              stdin.listen((data) {
-                var json = utf8.decode(data).trimRight();
-                // On exit we tend to get extra empty lines sometimes?
-                if (json.isEmpty && allowEmpty) {
-                  allowEmpty = false;
-                  return;
-                }
-                deserialize(jsonDecode(json));
-                stdout.write(jsonEncode(serialize()));
-              });
-            } else {
-              MessageGrouper(stdin).messageStream.listen((data) {
-                deserialize(data);
-                var result = serialize() as Uint8List;
-                final bytesBuilder = BytesBuilder(copy: false);
-                _writeLength(result, bytesBuilder);
-                bytesBuilder.add(result);
-                stdout.add(bytesBuilder.takeBytes());
-              });
-            }
-          }
-        });
-      }
-
-      Object? serialize() {
-        var serializer = serializerFactory();
-        for (var i = 0; i < 100; i++) {
-          serializer.addInt(i * 100);
-          serializer.addString('foo' * i);
-          serializer.addBool(i % 2 == 0);
-          serializer.startList();
-          for (var j = 0; j < 10; j++) {
-            serializer.addDouble(i * 5);
-          }
-          serializer.endList();
-          serializer.addNull();
-        }
-        return serializer.result;
-      }
-
-      void deserialize(Object? result) {
-        result = result is TransferableTypedData
-            ? result.materialize().asUint8List()
-            : result;
-        var deserializer = deserializerFactory(result);
-        while (deserializer.moveNext()) {
-          deserializer
-            ..expectInt()
-            ..moveNext()
-            ..expectString()
-            ..moveNext()
-            ..expectBool()
-            ..moveNext()
-            ..expectList();
-          while (deserializer.moveNext()) {
-            deserializer.expectDouble();
-          }
-          deserializer
-            ..moveNext()
-            ..checkNull();
-        }
-      }
-
-      void _writeLength(Uint8List result, BytesBuilder bytesBuilder) {
-        int length = result.lengthInBytes;
-        if (length > 0xffffffff) {
-          throw new StateError('Message was larger than the allowed size!');
-        }
-        bytesBuilder.add([
-          length >> 24 & 0xff,
-          length >> 16 & 0xff,
-          length >> 8 & 0xff,
-          length & 0xff
-        ]);
-      }''';
-
-Object? serialize() {
-  var serializer = serializerFactory();
-  for (var i = -50; i < 50; i++) {
-    serializer.addInt(i % 2 * 100);
-    serializer.addString('foo' * i);
-    serializer.addBool(i < 0);
-    serializer.startList();
-    for (var j = 0.0; j < 10; j++) {
-      serializer.addDouble(i * j);
-    }
-    serializer.endList();
-    serializer.addNull();
-  }
-  return serializer.result;
-}
-
-void deserialize(Object? result) {
-  result = result is TransferableTypedData
-      ? result.materialize().asUint8List()
-      : result;
-  if (serializationMode == SerializationMode.json) {
-    if (result is List<int>) {
-      result = jsonDecode(utf8.decode(result));
-    }
-  }
-  var deserializer = deserializerFactory(result);
-  while (deserializer.moveNext()) {
-    deserializer
-      ..expectInt()
-      ..moveNext()
-      ..expectString()
-      ..moveNext()
-      ..expectBool()
-      ..moveNext()
-      ..expectList();
-    while (deserializer.moveNext()) {
-      deserializer.expectDouble();
-    }
-    deserializer
-      ..moveNext()
-      ..checkNull();
-  }
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/api.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/api.dart
deleted file mode 100644
index 3d891b2..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/api.dart
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:collection' show UnmodifiableListView;
-
-part 'api/builders.dart';
-part 'api/code.dart';
-part 'api/diagnostic.dart';
-part 'api/exceptions.dart';
-part 'api/introspection.dart';
-part 'api/macros.dart';
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/api/builders.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/api/builders.dart
deleted file mode 100644
index c4a00bb..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/api/builders.dart
+++ /dev/null
@@ -1,313 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of '../api.dart';
-
-/// The base interface used to add declarations to the program as well
-/// as augment existing ones.
-///
-/// Can also be used to emit diagnostic messages back to the parent tool.
-abstract interface class Builder {
-  /// Attaches [diagnostic] to the result of this macro application phase.
-  ///
-  /// Note that this will not immediately send the result, these will all be
-  /// collected and reported at once when the macro completes this phase.
-  void report(Diagnostic diagnostic);
-}
-
-/// The interface for all introspection that is allowed during the type phase
-/// (and later).
-abstract interface class TypePhaseIntrospector {
-  /// Returns an [Identifier] for a top level [name] in [library].
-  ///
-  /// You should only do this for libraries that are definitely in the
-  /// transitive import graph of the library you are generating code into. If
-  /// [library] is not in this transitive import graph, then an unspecified
-  /// [Exception] should be thrown. The best way to ensure this, is to have the
-  /// macro library itself import [library] (even if it doesn't directly use
-  /// it).
-  ///
-  /// When the name alone is not sufficient to disambiguate between multiple
-  /// declarations, such as the case of a field (which has a synthetic getter),
-  /// an [Identifier] pointing to the non-synthetic declaration will be
-  /// returned. Future calls to `declarationOf(identifier)` will return that
-  /// non-synthetic declaration.
-  ///
-  /// If [name] does not exist in [library], then an unspecified [Exception]
-  /// should be thrown.
-  @Deprecated(
-      'This API should eventually be replaced with a different, safer API.')
-  Future<Identifier> resolveIdentifier(Uri library, String name);
-}
-
-/// The API used by [Macro]s to contribute new type declarations to the
-/// current library, and get [TypeAnnotation]s from runtime [Type] objects.
-abstract interface class TypeBuilder implements Builder, TypePhaseIntrospector {
-  /// Adds a new type declaration to the surrounding library.
-  ///
-  /// The [name] must match the name of the new [typeDeclaration] (this does
-  /// not include any type parameters, just the name).
-  void declareType(String name, DeclarationCode typeDeclaration);
-}
-
-/// The API used by macros in the type phase to add interfaces to an existing
-/// type.
-abstract interface class InterfaceTypesBuilder implements TypeBuilder {
-  /// Appends [interfaces] to the list of interfaces for this type.
-  void appendInterfaces(Iterable<TypeAnnotationCode> interfaces);
-}
-
-/// The API used by macros in the type phase to add mixins to an existing
-/// type.
-abstract interface class MixinTypesBuilder implements TypeBuilder {
-  /// Appends [mixins] to the list of mixins for this type.
-  void appendMixins(Iterable<TypeAnnotationCode> mixins);
-}
-
-/// The API used by macros in the type phase to augment classes.
-abstract interface class ClassTypeBuilder
-    implements TypeBuilder, InterfaceTypesBuilder, MixinTypesBuilder {}
-
-/// The API used by macros in the type phase to augment enums.
-abstract interface class EnumTypeBuilder
-    implements TypeBuilder, InterfaceTypesBuilder, MixinTypesBuilder {}
-
-/// The API used by macros in the type phase to augment mixins.
-///
-/// Note that mixins don't support mixins, only interfaces.
-abstract interface class MixinTypeBuilder
-    implements TypeBuilder, InterfaceTypesBuilder {}
-
-/// The interface for all introspection that is allowed during the declaration
-/// phase (and later).
-abstract interface class DeclarationPhaseIntrospector
-    implements TypePhaseIntrospector {
-  /// Instantiates a new [StaticType] for a given [type] annotation.
-  ///
-  /// Throws if [type] is a [RawTypeAnnotationCode], more specific subtypes must
-  /// be used, as raw [Identifier]s are not allowed.
-  ///
-  /// Throws an error if the [type] object contains [Identifier]s which cannot
-  /// be resolved. This should only happen in the case of incomplete or invalid
-  /// programs, but macros may be asked to run in this state during the
-  /// development cycle. It may be helpful for users if macros provide a best
-  /// effort implementation in that case or handle the error in a useful way.
-  Future<StaticType> resolve(TypeAnnotationCode type);
-
-  /// The values available for [enuum].
-  ///
-  /// This may be incomplete if additional declaration macros are going to run
-  /// on [enuum].
-  Future<List<EnumValueDeclaration>> valuesOf(covariant EnumDeclaration enuum);
-
-  /// The fields available for [type].
-  ///
-  /// This may be incomplete if additional declaration macros are going to run
-  /// on [type].
-  Future<List<FieldDeclaration>> fieldsOf(covariant TypeDeclaration type);
-
-  /// The methods available for [type].
-  ///
-  /// This may be incomplete if additional declaration macros are going to run
-  /// on [type].
-  Future<List<MethodDeclaration>> methodsOf(covariant TypeDeclaration type);
-
-  /// The constructors available for [type].
-  ///
-  /// This may be incomplete if additional declaration macros are going to run
-  /// on [type].
-  Future<List<ConstructorDeclaration>> constructorsOf(
-      covariant TypeDeclaration type);
-
-  /// [TypeDeclaration]s for all the types declared in [library].
-  ///
-  /// Note that this includes [ExtensionDeclaration]s as well, even though they
-  /// do not actually introduce a new type.
-  Future<List<TypeDeclaration>> typesOf(covariant Library library);
-
-  /// Resolves an [identifier] to its [TypeDeclaration].
-  ///
-  /// If [identifier] does not resolve to a [TypeDeclaration], then a
-  /// [MacroImplementationException] is thrown.
-  Future<TypeDeclaration> typeDeclarationOf(covariant Identifier identifier);
-}
-
-/// The API used by [Macro]s to contribute new (non-type)
-/// declarations to the current library.
-///
-/// Can also be used to do subtype checks on types.
-abstract interface class DeclarationBuilder
-    implements Builder, DeclarationPhaseIntrospector {
-  /// Adds a new regular declaration to the surrounding library.
-  ///
-  /// Note that type declarations are not supported.
-  void declareInLibrary(DeclarationCode declaration);
-}
-
-/// The API used by [Macro]s to contribute new members to a type.
-abstract interface class MemberDeclarationBuilder
-    implements DeclarationBuilder {
-  /// Adds a new declaration to the surrounding class.
-  void declareInType(DeclarationCode declaration);
-}
-
-/// The API used by [Macro]s to contribute new members or values to an enum.
-abstract interface class EnumDeclarationBuilder
-    implements MemberDeclarationBuilder {
-  /// Adds a new enum entry declaration to the surrounding enum.
-  void declareEnumValue(DeclarationCode declaration);
-}
-
-/// The interface for all introspection that is allowed during the definition
-/// phase (and later).
-abstract interface class DefinitionPhaseIntrospector
-    implements DeclarationPhaseIntrospector {
-  /// Resolves any [identifier] to its [Declaration].
-  Future<Declaration> declarationOf(covariant Identifier identifier);
-
-  /// Resolves an [identifier] referring to a type to its [TypeDeclaration].
-  @override
-  Future<TypeDeclaration> typeDeclarationOf(covariant Identifier identifier);
-
-  /// Infers a real type annotation for [omittedType].
-  ///
-  /// If no type could be inferred, then a type annotation representing the
-  /// dynamic type will be given.
-  Future<TypeAnnotation> inferType(covariant OmittedTypeAnnotation omittedType);
-
-  /// Returns a list of all the [Declaration]s in the given [library].
-  Future<List<Declaration>> topLevelDeclarationsOf(covariant Library library);
-}
-
-/// The base class for builders in the definition phase. These can convert
-/// any [TypeAnnotation] into its corresponding [TypeDeclaration], and also
-/// reflect more deeply on those.
-abstract interface class DefinitionBuilder
-    implements Builder, DefinitionPhaseIntrospector {}
-
-/// The APIs used by [Macro]s that run on library directives, to fill in the
-/// definitions of any declarations within that library.
-abstract interface class LibraryDefinitionBuilder implements DefinitionBuilder {
-  /// Retrieve a [TypeDefinitionBuilder] for a type declaration with
-  /// [identifier].
-  ///
-  /// Throws a [MacroImplementationException] if [identifier] does not refer to
-  /// a type declaration in this library.
-  Future<TypeDefinitionBuilder> buildType(Identifier identifier);
-
-  /// Retrieve a [FunctionDefinitionBuilder] for a function declaration with
-  /// [identifier].
-  ///
-  /// Throws a [MacroImplementationException] if [identifier] does not refer to
-  /// a top level function declaration in this library.
-  Future<FunctionDefinitionBuilder> buildFunction(Identifier identifier);
-
-  /// Retrieve a [VariableDefinitionBuilder] for a variable declaration with
-  /// [identifier].
-  ///
-  /// Throws a [MacroImplementationException] if [identifier] does not refer to
-  /// a top level variable declaration in this library.
-  Future<VariableDefinitionBuilder> buildVariable(Identifier identifier);
-}
-
-/// The APIs used by [Macro]s that run on type declarations, to fill in the
-/// definitions of any declarations within that class.
-abstract interface class TypeDefinitionBuilder implements DefinitionBuilder {
-  /// Retrieve a [VariableDefinitionBuilder] for a field with [identifier].
-  ///
-  /// Throws a [MacroImplementationException] if [identifier] does not refer to
-  /// a field in this class.
-  Future<VariableDefinitionBuilder> buildField(Identifier identifier);
-
-  /// Retrieve a [FunctionDefinitionBuilder] for a method with [identifier].
-  ///
-  /// Throws a [MacroImplementationException] if [identifier] does not refer to
-  /// a method in this class.
-  Future<FunctionDefinitionBuilder> buildMethod(Identifier identifier);
-
-  /// Retrieve a [ConstructorDefinitionBuilder] for a constructor with
-  /// [identifier].
-  ///
-  /// Throws a [MacroImplementationException] if [identifier] does not refer to
-  /// a constructor in this class.
-  Future<ConstructorDefinitionBuilder> buildConstructor(Identifier identifier);
-}
-
-/// The APIs used by [Macro]s that run on enums, to fill in the
-/// definitions of any declarations within that enum.
-abstract interface class EnumDefinitionBuilder
-    implements TypeDefinitionBuilder {
-  /// Retrieve an [EnumValueDefinitionBuilder] for an entry with [identifier].
-  ///
-  /// Throws a [MacroImplementationException] if [identifier] does not refer to
-  /// an entry on this enum.
-  Future<EnumValueDefinitionBuilder> buildEnumValue(Identifier identifier);
-}
-
-/// The APIs used by [Macro]s to define the body of a constructor
-/// or wrap the body of an existing constructor with additional statements.
-abstract interface class ConstructorDefinitionBuilder
-    implements DefinitionBuilder {
-  /// Augments an existing constructor body with [body] and [initializers].
-  ///
-  /// The [initializers] should not contain trailing or preceding commas.
-  ///
-  /// If [docComments] are supplied, they will be added above this augment
-  /// declaration.
-  ///
-  /// TODO: Link the library augmentations proposal to describe the semantics.
-  void augment({
-    FunctionBodyCode? body,
-    List<Code>? initializers,
-    CommentCode? docComments,
-  });
-}
-
-/// The APIs used by [Macro]s to augment functions or methods.
-abstract interface class FunctionDefinitionBuilder
-    implements DefinitionBuilder {
-  /// Augments the function.
-  ///
-  /// If [docComments] are supplied, they will be added above this augment
-  /// declaration.
-  ///
-  /// TODO: Link the library augmentations proposal to describe the semantics.
-  void augment(
-    FunctionBodyCode body, {
-    CommentCode? docComments,
-  });
-}
-
-/// The API used by [Macro]s to augment a top level variable or instance field.
-abstract interface class VariableDefinitionBuilder
-    implements DefinitionBuilder {
-  /// Augments the field.
-  ///
-  /// For [getter] and [setter] the full function declaration should be
-  /// provided, minus the `augment` keyword (which will be implicitly added).
-  ///
-  /// If [initializerDocComments] are supplied, they will be added above the
-  /// augment declaration for [initializer]. It is an error to provide
-  /// [initializerDocComments] but not [initializer].
-  ///
-  /// To provide doc comments for [getter] or [setter], just include them in
-  /// the [DeclarationCode] object for those.
-  ///
-  /// TODO: Link the library augmentations proposal to describe the semantics.
-  void augment({
-    DeclarationCode? getter,
-    DeclarationCode? setter,
-    ExpressionCode? initializer,
-    CommentCode? initializerDocComments,
-  });
-}
-
-/// The API used by [Macro]s to augment an enum entry.
-abstract interface class EnumValueDefinitionBuilder
-    implements DefinitionBuilder {
-  /// Augments the entry by replacing it with a new one.
-  ///
-  /// The name of the produced [entry] must match the original name.
-  void augment(DeclarationCode entry);
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/api/code.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/api/code.dart
deleted file mode 100644
index 8d2ca66..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/api/code.dart
+++ /dev/null
@@ -1,484 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of '../api.dart';
-
-/// The base class representing an arbitrary chunk of Dart code, which may or
-/// may not be syntactically or semantically valid yet.
-sealed class Code {
-  /// All the chunks of [Code], raw [String]s, or [Identifier]s that
-  /// comprise this [Code] object.
-  final List<Object> parts;
-
-  /// Can be used to more efficiently detect the kind of code, avoiding is
-  /// checks and enabling switch statements.
-  CodeKind get kind;
-
-  Code.fromString(String code) : parts = [code];
-
-  Code.fromParts(this.parts) {
-    for (final part in parts) {
-      switch (part) {
-        case Code():
-        case Identifier():
-        case String():
-          break; // OK
-        default:
-          throw StateError('Unrecognized code part ${part.runtimeType}');
-      }
-    }
-  }
-}
-
-/// An arbitrary chunk of code, which does not have to be syntactically valid
-/// on its own. Useful to construct other types of code from several parts.
-final class RawCode extends Code {
-  @override
-  CodeKind get kind => CodeKind.raw;
-
-  RawCode.fromString(super.code) : super.fromString();
-
-  RawCode.fromParts(super.parts) : super.fromParts();
-}
-
-/// A piece of code representing a syntactically valid declaration.
-final class DeclarationCode extends Code {
-  @override
-  CodeKind get kind => CodeKind.declaration;
-
-  DeclarationCode.fromString(super.code) : super.fromString();
-
-  DeclarationCode.fromParts(super.parts) : super.fromParts();
-}
-
-/// A piece of code representing a code comment. This may contain identifier
-/// references inside of `[]` brackets if the comments are doc comments.
-final class CommentCode extends Code {
-  @override
-  CodeKind get kind => CodeKind.comment;
-
-  CommentCode.fromString(super.code) : super.fromString();
-
-  CommentCode.fromParts(super.parts) : super.fromParts();
-}
-
-/// A piece of code representing a syntactically valid expression.
-final class ExpressionCode extends Code {
-  @override
-  CodeKind get kind => CodeKind.expression;
-
-  ExpressionCode.fromString(super.code) : super.fromString();
-
-  ExpressionCode.fromParts(super.parts) : super.fromParts();
-}
-
-/// A piece of code representing a syntactically valid function body.
-///
-/// This includes any and all code after the parameter list of a function,
-/// including modifiers like `async`.
-///
-/// Both arrow and block function bodies are allowed.
-final class FunctionBodyCode extends Code {
-  @override
-  CodeKind get kind => CodeKind.functionBody;
-
-  FunctionBodyCode.fromString(super.code) : super.fromString();
-
-  FunctionBodyCode.fromParts(super.parts) : super.fromParts();
-}
-
-/// A piece of code identifying a syntactically valid function or function type
-/// parameter.
-///
-/// There is no distinction here made between named and positional parameters.
-///
-/// There is also no distinction between function type parameters and normal
-/// function parameters, so the [name] is nullable (it is not required for
-/// positional function type parameters).
-///
-/// It is the job of the user to construct and combine these together in a way
-/// that creates valid parameter lists.
-final class ParameterCode implements Code {
-  final Code? defaultValue;
-  final List<String> keywords;
-  final String? name;
-  final TypeAnnotationCode? type;
-
-  @override
-  CodeKind get kind => CodeKind.parameter;
-
-  @override
-  List<Object> get parts => [
-        if (keywords.isNotEmpty) ...[
-          ...keywords.joinAsCode(' '),
-          ' ',
-        ],
-        if (type != null) ...[
-          type!,
-          ' ',
-        ],
-        if (name != null) name!,
-        if (defaultValue != null) ...[
-          ' = ',
-          defaultValue!,
-        ]
-      ];
-
-  ParameterCode({
-    this.defaultValue,
-    this.keywords = const [],
-    this.name,
-    this.type,
-  });
-}
-
-/// A piece of code representing a type annotation.
-sealed class TypeAnnotationCode implements Code, TypeAnnotation {
-  @override
-  TypeAnnotationCode get code => this;
-
-  /// Returns a [TypeAnnotationCode] object which is a non-nullable version
-  /// of this one.
-  ///
-  /// Returns the current instance if it is already non-nullable.
-  TypeAnnotationCode get asNonNullable => this;
-
-  /// Returns a [TypeAnnotationCode] object which is a non-nullable version
-  /// of this one.
-  ///
-  /// Returns the current instance if it is already nullable.
-  NullableTypeAnnotationCode get asNullable => NullableTypeAnnotationCode(this);
-
-  /// Whether or not this type is nullable.
-  @override
-  bool get isNullable => false;
-}
-
-/// The nullable version of an underlying type annotation.
-final class NullableTypeAnnotationCode implements TypeAnnotationCode {
-  /// The underlying type that is being made nullable.
-  TypeAnnotationCode underlyingType;
-
-  @override
-  TypeAnnotationCode get code => this;
-
-  @override
-  CodeKind get kind => CodeKind.nullableTypeAnnotation;
-
-  @override
-  List<Object> get parts => [...underlyingType.parts, '?'];
-
-  /// Creates a nullable [underlyingType] annotation.
-  ///
-  /// If [underlyingType] is a NullableTypeAnnotationCode, returns that
-  /// same type.
-  NullableTypeAnnotationCode(this.underlyingType);
-
-  @override
-  TypeAnnotationCode get asNonNullable => underlyingType;
-
-  @override
-  NullableTypeAnnotationCode get asNullable => this;
-
-  @override
-  bool get isNullable => true;
-}
-
-/// A piece of code representing a reference to a named type.
-final class NamedTypeAnnotationCode extends TypeAnnotationCode {
-  final Identifier name;
-
-  final List<TypeAnnotationCode> typeArguments;
-
-  @override
-  CodeKind get kind => CodeKind.namedTypeAnnotation;
-
-  @override
-  List<Object> get parts => [
-        name,
-        if (typeArguments.isNotEmpty) ...[
-          '<',
-          ...typeArguments.joinAsCode(', '),
-          '>',
-        ],
-      ];
-
-  NamedTypeAnnotationCode({required this.name, this.typeArguments = const []});
-}
-
-/// A piece of code representing a function type annotation.
-final class FunctionTypeAnnotationCode extends TypeAnnotationCode {
-  final List<ParameterCode> namedParameters;
-
-  final List<ParameterCode> optionalPositionalParameters;
-
-  final List<ParameterCode> positionalParameters;
-
-  final TypeAnnotationCode? returnType;
-
-  final List<TypeParameterCode> typeParameters;
-
-  @override
-  CodeKind get kind => CodeKind.functionTypeAnnotation;
-
-  @override
-  List<Object> get parts => [
-        if (returnType != null) returnType!,
-        ' Function',
-        if (typeParameters.isNotEmpty) ...[
-          '<',
-          ...typeParameters.joinAsCode(', '),
-          '>',
-        ],
-        '(',
-        for (ParameterCode positional in positionalParameters) ...[
-          positional,
-          ', ',
-        ],
-        if (optionalPositionalParameters.isNotEmpty) ...[
-          '[',
-          for (ParameterCode optional in optionalPositionalParameters) ...[
-            optional,
-            ', ',
-          ],
-          ']',
-        ],
-        if (namedParameters.isNotEmpty) ...[
-          '{',
-          for (ParameterCode named in namedParameters) ...[
-            named,
-            ', ',
-          ],
-          '}',
-        ],
-        ')',
-      ];
-
-  FunctionTypeAnnotationCode({
-    this.namedParameters = const [],
-    this.optionalPositionalParameters = const [],
-    this.positionalParameters = const [],
-    this.returnType,
-    this.typeParameters = const [],
-  });
-}
-
-/// A piece of code identifying a syntactically valid record field declaration.
-/// This is only usable in the context of [RecordTypeAnnotationCode] objects.
-///
-/// There is no distinction here made between named and positional fields.
-///
-/// The name is not required because it is optional for positional fields.
-///
-/// It is the job of the user to construct and combine these together in a way
-/// that creates valid record type annotations.
-final class RecordFieldCode implements Code {
-  final String? name;
-  final TypeAnnotationCode type;
-
-  @override
-  CodeKind get kind => CodeKind.recordField;
-
-  @override
-  List<Object> get parts => [
-        type,
-        if (name != null) ' ${name!}',
-      ];
-
-  RecordFieldCode({
-    this.name,
-    required this.type,
-  });
-}
-
-/// A piece of code representing a syntactically valid record type annotation.
-final class RecordTypeAnnotationCode extends TypeAnnotationCode {
-  final List<RecordFieldCode> namedFields;
-
-  final List<RecordFieldCode> positionalFields;
-
-  @override
-  CodeKind get kind => CodeKind.recordTypeAnnotation;
-
-  @override
-  List<Object> get parts => [
-        '(',
-        if (positionalFields.isNotEmpty)
-          for (RecordFieldCode positional in positionalFields) ...[
-            if (positional != positionalFields.first) ', ',
-            positional,
-          ],
-        if (namedFields.isNotEmpty) ...[
-          if (positionalFields.isNotEmpty) ', ',
-          '{',
-          for (RecordFieldCode named in namedFields) ...[
-            if (named != namedFields.first) ', ',
-            named,
-          ],
-          '}',
-        ],
-        ')',
-      ];
-
-  RecordTypeAnnotationCode({
-    this.namedFields = const [],
-    this.positionalFields = const [],
-  });
-}
-
-final class OmittedTypeAnnotationCode extends TypeAnnotationCode {
-  final OmittedTypeAnnotation typeAnnotation;
-
-  OmittedTypeAnnotationCode(this.typeAnnotation);
-
-  @override
-  CodeKind get kind => CodeKind.omittedTypeAnnotation;
-
-  @override
-  List<Object> get parts => [typeAnnotation];
-}
-
-/// Raw type annotations are typically used to refer to a local type which you
-/// do not have an [Identifier] for (possibly you just created it).
-///
-/// Whenever possible, use a more specific [TypeAnnotationCode] subtype.
-final class RawTypeAnnotationCode extends RawCode
-    implements TypeAnnotationCode {
-  @override
-  CodeKind get kind => CodeKind.rawTypeAnnotation;
-
-  /// Returns a [TypeAnnotationCode] object which is a non-nullable version
-  /// of this one.
-  ///
-  /// Returns the current instance if it is already non-nullable.
-  @override
-  TypeAnnotationCode get asNonNullable => this;
-
-  /// Returns a [TypeAnnotationCode] object which is a non-nullable version
-  /// of this one.
-  ///
-  /// Returns the current instance if it is already nullable.
-  @override
-  NullableTypeAnnotationCode get asNullable => NullableTypeAnnotationCode(this);
-
-  RawTypeAnnotationCode._(super.parts) : super.fromParts();
-
-  /// Creates a [TypeAnnotationCode] from a raw [String].
-  ///
-  /// The [code] object must not have trailing whitespace.
-  static TypeAnnotationCode fromString(String code) => fromParts([code]);
-
-  /// Creates a [TypeAnnotationCode] from a raw code [parts].
-  ///
-  /// Must not end in trailing whitespace.
-  static TypeAnnotationCode fromParts(List<Object> parts) {
-    bool wasNullable;
-    (wasNullable, parts) = _makeNonNullable(parts);
-    TypeAnnotationCode code = RawTypeAnnotationCode._(parts);
-    if (wasNullable) code = code.asNullable;
-    return code;
-  }
-
-  @override
-  TypeAnnotationCode get code => this;
-
-  @override
-  bool get isNullable => false;
-
-  /// Checks if [parts] ends with a ?, and if so then it is removed.
-  ///
-  /// Returns a record which indicates if [parts] was nullable originally, as
-  /// well as the potentially new list of parts.
-  ///
-  /// Throws if [parts] ends with whitespace because we don't allow type
-  /// annotations to do that.
-  static (bool wasNullable, List<Object> parts) _makeNonNullable(
-      List<Object> parts) {
-    final Iterator<Object> iterator = parts.reversed.iterator;
-    while (iterator.moveNext()) {
-      final Object current = iterator.current;
-      switch (current) {
-        case String():
-          if (current.trimRight() != current) {
-            throw ArgumentError(
-                'Invalid type annotation, type annotations should not end with '
-                'whitespace but got `$current`.');
-          } else if (current.isEmpty) {
-            continue;
-          } else if (current.endsWith('?')) {
-            // It was nullable, trim the `?` and return a copy.
-            return (
-              true,
-              // We are iterating backwards, and need to reverse it after.
-              [
-                // Strip the '?'.
-                current.substring(0, current.length - 1),
-                for (bool hasNext = iterator.moveNext();
-                    hasNext;
-                    hasNext = iterator.moveNext())
-                  iterator.current,
-              ].reversed.toList(),
-            );
-          } else {
-            return (false, parts);
-          }
-        case Identifier():
-          // Identifiers never contain a `?`.
-          return (false, parts);
-      }
-    }
-    throw ArgumentError('The empty string is not a valid type annotation.');
-  }
-}
-
-/// A piece of code representing a valid named type parameter.
-final class TypeParameterCode implements Code {
-  final TypeAnnotationCode? bound;
-  final String name;
-
-  @override
-  CodeKind get kind => CodeKind.typeParameter;
-
-  @override
-  List<Object> get parts => [
-        name,
-        if (bound != null) ...[
-          ' extends ',
-          bound!,
-        ]
-      ];
-
-  TypeParameterCode({this.bound, required this.name});
-}
-
-extension Join<T extends Object> on List<T> {
-  /// Joins all the items in [this] with [separator], and returns a new list.
-  ///
-  /// Works on any kind of non-nullable list which accepts String entries, and
-  /// does not convert the individual items to strings.
-  List<Object> joinAsCode(String separator) => [
-        for (int i = 0; i < length - 1; i++) ...[
-          this[i],
-          separator,
-        ],
-        if (isNotEmpty) last,
-      ];
-}
-
-enum CodeKind {
-  comment,
-  declaration,
-  expression,
-  functionBody,
-  functionTypeAnnotation,
-  namedTypeAnnotation,
-  nullableTypeAnnotation,
-  omittedTypeAnnotation,
-  parameter,
-  raw,
-  rawTypeAnnotation,
-  recordField,
-  recordTypeAnnotation,
-  typeParameter,
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/api/diagnostic.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/api/diagnostic.dart
deleted file mode 100644
index b96c708..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/api/diagnostic.dart
+++ /dev/null
@@ -1,108 +0,0 @@
-// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of '../api.dart';
-
-/// A diagnostic reported from a [Macro].
-class Diagnostic {
-  /// Additional [DiagnosticMessage]s related to this one, to help with the
-  /// context.
-  final Iterable<DiagnosticMessage> contextMessages;
-
-  /// An optional message describing to the user how they might fix this
-  /// diagnostic.
-  final String? correctionMessage;
-
-  /// The primary message for this diagnostic.
-  final DiagnosticMessage message;
-
-  /// The severity of this diagnostic.
-  final Severity severity;
-
-  /// General diagnostics for the current macro application.
-  ///
-  /// These will be attached to the macro application itself.
-  Diagnostic(this.message, this.severity,
-      {List<DiagnosticMessage> contextMessages = const [],
-      this.correctionMessage})
-      : contextMessages = UnmodifiableListView(contextMessages);
-}
-
-/// A message and optional target for a [Diagnostic] reported by a [Macro].
-class DiagnosticMessage {
-  /// The primary message for this diagnostic message.
-  final String message;
-
-  /// The optional target for this diagnostic message.
-  ///
-  /// If provided, the diagnostic should be linked to this target.
-  ///
-  /// If not provided, it should be implicitly linked to the macro application
-  /// that generated this diagnostic.
-  final DiagnosticTarget? target;
-
-  DiagnosticMessage(this.message, {this.target});
-}
-
-/// A target for a [DiagnosticMessage]. We use a sealed class to represent a
-/// union type of the valid target types.
-sealed class DiagnosticTarget {}
-
-/// A [DiagnosticMessage] target which is a [Declaration].
-final class DeclarationDiagnosticTarget extends DiagnosticTarget {
-  final Declaration declaration;
-
-  DeclarationDiagnosticTarget(this.declaration);
-}
-
-/// A simplified way of creating a [DiagnosticTarget] target for a
-/// [Declaration].
-extension DeclarationAsTarget on Declaration {
-  DeclarationDiagnosticTarget get asDiagnosticTarget =>
-      DeclarationDiagnosticTarget(this);
-}
-
-/// A [DiagnosticMessage] target which is a [TypeAnnotation].
-final class TypeAnnotationDiagnosticTarget extends DiagnosticTarget {
-  final TypeAnnotation typeAnnotation;
-
-  TypeAnnotationDiagnosticTarget(this.typeAnnotation);
-}
-
-/// A simplified way of creating a [DiagnosticTarget] target for a
-/// [TypeAnnotation].
-extension TypeAnnotationAsTarget on TypeAnnotation {
-  TypeAnnotationDiagnosticTarget get asDiagnosticTarget =>
-      TypeAnnotationDiagnosticTarget(this);
-}
-
-/// A [DiagnosticMessage] target which is a [MetadataAnnotation].
-final class MetadataAnnotationDiagnosticTarget extends DiagnosticTarget {
-  final MetadataAnnotation metadataAnnotation;
-
-  MetadataAnnotationDiagnosticTarget(this.metadataAnnotation);
-}
-
-extension MetadataAnnotationAsTarget on MetadataAnnotation {
-  MetadataAnnotationDiagnosticTarget get asDiagnosticTarget =>
-      MetadataAnnotationDiagnosticTarget(this);
-}
-
-/// The severities supported for [Diagnostic]s.
-enum Severity {
-  /// Informational message only, for example a style guideline is not being
-  /// followed. These may not always be shown to the user depending on how the
-  /// app is being compiled and with what flags.
-  info,
-
-  /// Not a critical failure, but something is likely wrong and the code should
-  /// be changed. Always shown to the user by default, but may be silenceable by
-  /// some tools.
-  warning,
-
-  /// Critical failure, the macro could not proceed. Cannot be silenced and will
-  /// always prevent the app from compiling successfully. These are always shown
-  /// to the user and cannot be silenced.
-  error,
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/api/exceptions.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/api/exceptions.dart
deleted file mode 100644
index ec65ab2..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/api/exceptions.dart
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of '../api.dart';
-
-/// Exception for use in macro implementations.
-///
-/// Throw to stop the current macro execution and report a [Diagnostic].
-class DiagnosticException implements Exception {
-  final Diagnostic diagnostic;
-  DiagnosticException(this.diagnostic);
-}
-
-/// Base class for exceptions thrown by the host implementation during macro
-/// execution.
-///
-/// Macro implementations can catch these exceptions to provide more
-/// information to the user. In case an exception results from user error, they
-/// can provide a pointer to the likely fix. If the exception results from an
-/// implementation error or unknown error, the macro implementation might give
-/// the user information on where and how to file an issue.
-///
-/// If a `MacroException` is not caught by a macro implementation then it will
-/// be reported in a user-oriented way, for example for
-/// `MacroImplementationException` the displayed message suggests that there
-/// is a bug in the macro implementation.
-abstract interface class MacroException implements Exception {
-  String get message;
-  String? get stackTrace;
-}
-
-/// Something unexpected happened during macro execution.
-///
-/// For example, a bug in the SDK.
-abstract interface class UnexpectedMacroException implements MacroException {}
-
-/// An error due to incorrect implementation was thrown during macro execution.
-///
-/// For example, an incorrect argument was passed to the macro API.
-///
-/// The type `Error` is usually used for such throwables, and it's common to
-/// allow the program to crash when one is thrown.
-///
-/// In the case of macros, however, type `Exception` is used because the macro
-/// implementation can usefully catch it in order to give the user information
-/// about how to notify the macro author about the bug.
-abstract interface class MacroImplementationException
-    implements MacroException {}
-
-/// A cycle was detected in macro applications introspecting targets of other
-/// macro applications.
-///
-/// The order the macros should run in is not defined, so allowing
-/// introspection in this case would make the macro output non-deterministic.
-/// Instead, all the introspection calls in the cycle fail with this exception.
-abstract interface class MacroIntrospectionCycleException
-    implements MacroException {}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/api/introspection.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/api/introspection.dart
deleted file mode 100644
index 1269ba5..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/api/introspection.dart
+++ /dev/null
@@ -1,441 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of '../api.dart';
-
-/// The interface for classes that can be targeted by macros.
-///
-/// Could be a [Declaration] or [Library].
-abstract interface class MacroTarget {}
-
-/// The interface for things that can be annotated with [MetadataAnnotation]s.
-abstract interface class Annotatable {
-  Iterable<MetadataAnnotation> get metadata;
-}
-
-/// A concrete reference to a named declaration, which may or may not yet be
-/// resolved.
-///
-/// These can be passed directly to [Code] objects, which will automatically do
-/// any necessary prefixing when emitting references.
-///
-/// Identifier equality/identity is not specified. To check for type equality, a
-/// [StaticType] should be used.
-abstract interface class Identifier {
-  String get name;
-}
-
-/// The interface for an unresolved reference to a type.
-///
-/// See the subtypes [FunctionTypeAnnotation] and [NamedTypeAnnotation].
-abstract interface class TypeAnnotation {
-  /// Whether or not the type annotation is explicitly nullable (contains a
-  /// trailing `?`)
-  bool get isNullable;
-
-  /// A convenience method to get a [Code] object equivalent to this type
-  /// annotation.
-  TypeAnnotationCode get code;
-}
-
-/// The interface for function type declarations.
-abstract interface class FunctionTypeAnnotation implements TypeAnnotation {
-  /// The return type of this function.
-  TypeAnnotation get returnType;
-
-  /// The positional parameters for this function.
-  Iterable<FormalParameter> get positionalParameters;
-
-  /// The named parameters for this function.
-  Iterable<FormalParameter> get namedParameters;
-
-  /// The type parameters for this function.
-  Iterable<TypeParameter> get typeParameters;
-}
-
-/// An unresolved reference to a type.
-///
-/// These can be resolved to a [TypeDeclaration] using the `builder` classes
-/// depending on the phase a macro is running in.
-abstract interface class NamedTypeAnnotation implements TypeAnnotation {
-  /// An identifier pointing to this named type.
-  Identifier get identifier;
-
-  /// The type arguments, if applicable.
-  Iterable<TypeAnnotation> get typeArguments;
-}
-
-/// The interface for record type annotations.
-abstract interface class RecordTypeAnnotation implements TypeAnnotation {
-  /// The positional fields for this record.
-  Iterable<RecordField> get positionalFields;
-
-  /// The named fields for this record.
-  Iterable<RecordField> get namedFields;
-}
-
-/// An omitted type annotation.
-///
-/// This will be given whenever there is no explicit type annotation for a
-/// declaration.
-///
-/// These type annotations can still produce valid [Code] objects, which will
-/// result in the inferred type being emitted into the resulting code (or
-/// dynamic).
-///
-/// In the definition phase, you may also ask explicitly for the inferred type
-/// using the `inferType` API.
-abstract interface class OmittedTypeAnnotation implements TypeAnnotation {}
-
-/// The interface representing a resolved type.
-///
-/// Resolved types understand exactly what type they represent, and can be
-/// compared to other static types.
-abstract interface class StaticType {
-  /// Returns true if this is a subtype of [other].
-  Future<bool> isSubtypeOf(covariant StaticType other);
-
-  /// Returns true if this is an identical type to [other].
-  Future<bool> isExactly(covariant StaticType other);
-}
-
-/// A subtype of [StaticType] representing types that can be resolved by name
-/// to a concrete declaration.
-abstract interface class NamedStaticType implements StaticType {}
-
-/// The interface for all declarations.
-abstract interface class Declaration implements Annotatable, MacroTarget {
-  /// The library in which this declaration is defined.
-  Library get library;
-
-  ///  An identifier pointing to this named declaration.
-  Identifier get identifier;
-}
-
-/// Interface for all Declarations which are a member of a surrounding type
-/// declaration.
-abstract interface class MemberDeclaration implements Declaration {
-  /// The type that defines this member.
-  Identifier get definingType;
-
-  /// Whether or not member has the `static` keyword.
-  bool get hasStatic;
-}
-
-/// Marker interface for a declaration that defines a new type in the program.
-///
-/// See [ParameterizedTypeDeclaration] and [TypeParameterDeclaration].
-abstract interface class TypeDeclaration implements Declaration {}
-
-/// A [TypeDeclaration] which may have type parameters.
-///
-/// See subtypes [ClassDeclaration], [EnumDeclaration], [MixinDeclaration], and
-/// [TypeAliasDeclaration].
-abstract interface class ParameterizedTypeDeclaration
-    implements TypeDeclaration {
-  /// The type parameters defined for this type declaration.
-  Iterable<TypeParameterDeclaration> get typeParameters;
-}
-
-/// Class introspection information.
-///
-/// Information about fields, methods, and constructors must be retrieved from
-/// the `builder` objects.
-abstract interface class ClassDeclaration
-    implements ParameterizedTypeDeclaration {
-  /// Whether this class has an `abstract` modifier.
-  bool get hasAbstract;
-
-  /// Whether this class has a `base` modifier.
-  bool get hasBase;
-
-  /// Whether this class has an `external` modifier.
-  bool get hasExternal;
-
-  /// Whether this class has a `final` modifier.
-  bool get hasFinal;
-
-  /// Whether this class has an `interface` modifier.
-  bool get hasInterface;
-
-  /// Whether this class has a `mixin` modifier.
-  bool get hasMixin;
-
-  /// Whether this class has a `sealed` modifier.
-  bool get hasSealed;
-
-  /// The `extends` type annotation, if present.
-  NamedTypeAnnotation? get superclass;
-
-  /// All the `implements` type annotations.
-  Iterable<NamedTypeAnnotation> get interfaces;
-
-  /// All the `with` type annotations.
-  Iterable<NamedTypeAnnotation> get mixins;
-}
-
-/// Enum introspection information.
-///
-/// Information about values, fields, methods, and constructors must be
-/// retrieved from the `builder` objects.
-abstract interface class EnumDeclaration
-    implements ParameterizedTypeDeclaration {
-  /// All the `implements` type annotations.
-  Iterable<NamedTypeAnnotation> get interfaces;
-
-  /// All the `with` type annotations.
-  Iterable<NamedTypeAnnotation> get mixins;
-}
-
-/// Enum entry introspection information.
-///
-/// Note that enum values are not introspectable, because they can be augmented.
-///
-/// You can however do const evaluation of enum values, if they are not in a
-/// library cycle with the current library.
-abstract interface class EnumValueDeclaration implements Declaration {
-  /// The enum that surrounds this entry.
-  Identifier get definingEnum;
-}
-
-/// The class for introspecting on an extension.
-///
-/// Note that extensions do not actually introduce a new type, but we model them
-/// as [ParameterizedTypeDeclaration]s anyway, because they generally look
-/// exactly like other type declarations, and are treated the same.
-abstract interface class ExtensionDeclaration
-    implements ParameterizedTypeDeclaration, Declaration {
-  /// The type that appears on the `on` clause of this extension.
-  TypeAnnotation get onType;
-}
-
-/// The class for introspecting on an extension type.
-abstract interface class ExtensionTypeDeclaration
-    implements ParameterizedTypeDeclaration, Declaration {
-  /// The representation type of this extension type.
-  TypeAnnotation get representationType;
-}
-
-/// Mixin introspection information.
-///
-/// Information about fields and methods must be retrieved from the `builder`
-/// objects.
-abstract interface class MixinDeclaration
-    implements ParameterizedTypeDeclaration {
-  /// Whether this mixin has a `base` modifier.
-  bool get hasBase;
-
-  /// All the `implements` type annotations.
-  Iterable<NamedTypeAnnotation> get interfaces;
-
-  /// All the `on` clause type annotations.
-  Iterable<NamedTypeAnnotation> get superclassConstraints;
-}
-
-/// Type alias introspection information.
-abstract interface class TypeAliasDeclaration
-    implements ParameterizedTypeDeclaration {
-  /// The type annotation this is an alias for.
-  TypeAnnotation get aliasedType;
-}
-
-/// Function introspection information.
-abstract interface class FunctionDeclaration implements Declaration {
-  /// Whether or not this function has a body.
-  ///
-  /// This is useful when augmenting a function, so you know whether an
-  /// `augment super` call would be valid or not.
-  ///
-  /// Note that for external functions, this may return `false` even though
-  /// there is actually a body that is filled in later by another tool.
-  bool get hasBody;
-
-  /// Whether this function has an `external` modifier.
-  bool get hasExternal;
-
-  /// Whether this function is an operator.
-  bool get isOperator;
-
-  /// Whether this function is actually a getter.
-  bool get isGetter;
-
-  /// Whether this function is actually a setter.
-  bool get isSetter;
-
-  /// The return type of this function.
-  TypeAnnotation get returnType;
-
-  /// The positional parameters for this function.
-  Iterable<FormalParameterDeclaration> get positionalParameters;
-
-  /// The named parameters for this function.
-  Iterable<FormalParameterDeclaration> get namedParameters;
-
-  /// The type parameters for this function.
-  Iterable<TypeParameterDeclaration> get typeParameters;
-}
-
-/// Method introspection information.
-abstract interface class MethodDeclaration
-    implements FunctionDeclaration, MemberDeclaration {}
-
-/// Constructor introspection information.
-abstract interface class ConstructorDeclaration implements MethodDeclaration {
-  /// Whether or not this is a factory constructor.
-  bool get isFactory;
-}
-
-/// Variable introspection information.
-abstract interface class VariableDeclaration implements Declaration {
-  /// Whether this variable has a `const` modifier.
-  bool get hasConst;
-
-  /// Whether this variable has an `external` modifier.
-  bool get hasExternal;
-
-  /// Whether this variable has a `final` modifier.
-  bool get hasFinal;
-
-  /// Whether this variable has an initializer at its declaration.
-  bool get hasInitializer;
-
-  /// Whether this variable has a `late` modifier.
-  bool get hasLate;
-
-  /// The type of this field.
-  TypeAnnotation get type;
-}
-
-/// Field introspection information.
-abstract interface class FieldDeclaration
-    implements VariableDeclaration, MemberDeclaration {
-  /// Whether this field has an `abstract` modifier.
-  bool get hasAbstract;
-}
-
-/// General parameter introspection information, for both function type
-/// parameters and regular parameters.
-///
-/// See the subtype [FormalParameterDeclaration] as well, for regular
-/// parameters which are not a part of a function type.
-abstract interface class FormalParameter implements Annotatable {
-  /// The type of this parameter.
-  TypeAnnotation get type;
-
-  /// Whether or not this is a named parameter.
-  bool get isNamed;
-
-  /// Whether or not this parameter is either a non-optional positional
-  /// parameter or an optional parameter with the `required` keyword.
-  bool get isRequired;
-
-  /// The name of this parameter, if present.
-  ///
-  /// Specifically, function type parameters may not have a name.
-  String? get name;
-
-  /// A convenience method to get a `code` object equivalent to this parameter.
-  ///
-  /// Note that the original default value will not be included, as it is not a
-  /// part of this API.
-  ParameterCode get code;
-}
-
-/// Parameters of normal functions/methods, which always have an identifier, and
-/// declare a new variable in scope.
-abstract interface class FormalParameterDeclaration
-    implements FormalParameter, Declaration {
-  @override
-  String get name;
-}
-
-/// Generic type parameter introspection information.
-///
-/// Not all type parameters introduce new declarations that can be referenced,
-/// but those that do will implement the [TypeParameterDeclaration] interface.
-abstract interface class TypeParameter implements Annotatable {
-  /// The bound for this type parameter, if it has any.
-  TypeAnnotation? get bound;
-
-  /// The name of this type parameter.
-  String get name;
-
-  /// A convenience method to get a `code` object equivalent to this type
-  /// parameter.
-  TypeParameterCode get code;
-}
-
-/// Generic type parameter introspection information for type parameters which
-/// introduce a true type declaration that can be referenced.
-///
-/// Note that type parameters for function types cannot be referenced and only
-/// implement [TypeParameter].
-abstract interface class TypeParameterDeclaration
-    implements TypeDeclaration, TypeParameter {}
-
-/// Introspection information for a field on a Record type.
-///
-/// Note that for positional fields the [identifier] will be the synthesized
-/// one (`$1` etc), while for named fields it will be the declared name.
-abstract interface class RecordField {
-  /// A convenience method to get a `code` object equivalent to this field.
-  RecordFieldCode get code;
-
-  /// Record fields don't always have names (if they are positional).
-  ///
-  /// If you want to reference the getter for a field, you should use
-  /// [identifier] instead.
-  String? get name;
-
-  /// The type of this field.
-  TypeAnnotation get type;
-}
-
-/// Introspection information for a Library.
-abstract interface class Library implements Annotatable, MacroTarget {
-  /// The language version of this library.
-  LanguageVersion get languageVersion;
-
-  /// The uri identifying this library.
-  Uri get uri;
-}
-
-/// The language version of a library, see
-/// https://dart.dev/guides/language/evolution#language-version-numbers.
-abstract interface class LanguageVersion {
-  int get major;
-
-  int get minor;
-}
-
-/// A metadata annotation on a declaration or library directive.
-abstract interface class MetadataAnnotation {}
-
-/// A [MetadataAnnotation] which is a reference to a const value.
-abstract interface class IdentifierMetadataAnnotation
-    implements MetadataAnnotation {
-  /// The [Identifier] for the const reference.
-  Identifier get identifier;
-}
-
-/// A [MetadataAnnotation] which is a constructor call.
-abstract interface class ConstructorMetadataAnnotation
-    implements MetadataAnnotation {
-  /// The [NamedTypeAnnotation] of the type that is being constructed.
-  ///
-  /// If type arguments are provided, this is where they would appear.
-  NamedTypeAnnotation get type;
-
-  /// An [Identifier] referring to the specific constructor being called.
-  ///
-  /// For unnamed constructors, the name of this identifier will be the empty
-  /// String.
-  Identifier get constructor;
-
-  /// The positional arguments of this constructor call.
-  Iterable<ExpressionCode> get positionalArguments;
-
-  /// The named arguments of this constructor call.
-  Map<String, ExpressionCode> get namedArguments;
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/api/macros.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/api/macros.dart
deleted file mode 100644
index 2e04fd9..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/api/macros.dart
+++ /dev/null
@@ -1,285 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of '../api.dart';
-
-/// The marker interface for all types of macros.
-abstract interface class Macro {}
-
-/// The interface for [Macro]s that can be applied to a library directive, and
-/// want to contribute new type declarations to the library.
-abstract interface class LibraryTypesMacro implements Macro {
-  FutureOr<void> buildTypesForLibrary(Library library, TypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to a library directive, and
-/// want to contribute new non-type declarations to the library.
-abstract interface class LibraryDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForLibrary(
-      Library library, DeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to a library directive, and
-/// want to provide definitions for declarations in the library.
-abstract interface class LibraryDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForLibrary(
-      Library library, LibraryDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any top level function,
-/// instance method, or static method, and want to contribute new type
-/// declarations to the program.
-abstract interface class FunctionTypesMacro implements Macro {
-  FutureOr<void> buildTypesForFunction(
-      FunctionDeclaration function, TypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any top level function,
-/// instance method, or static method, and want to contribute new non-type
-/// declarations to the program.
-abstract interface class FunctionDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForFunction(
-      FunctionDeclaration function, DeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any top level function,
-/// instance method, or static method, and want to augment the function
-/// definition.
-abstract interface class FunctionDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForFunction(
-      FunctionDeclaration function, FunctionDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any top level variable or
-/// instance field, and want to contribute new type declarations to the
-/// program.
-abstract interface class VariableTypesMacro implements Macro {
-  FutureOr<void> buildTypesForVariable(
-      VariableDeclaration variable, TypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any top level variable or
-/// instance field and want to contribute new non-type declarations to the
-/// program.
-abstract interface class VariableDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForVariable(
-      VariableDeclaration variable, DeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any top level variable
-/// or instance field, and want to augment the variable definition.
-abstract interface class VariableDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForVariable(
-      VariableDeclaration variable, VariableDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any class, and want to
-/// contribute new type declarations to the program.
-abstract interface class ClassTypesMacro implements Macro {
-  FutureOr<void> buildTypesForClass(
-      ClassDeclaration clazz, ClassTypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any class, and want to
-/// contribute new non-type declarations to the program.
-abstract interface class ClassDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForClass(
-      ClassDeclaration clazz, MemberDeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any class, and want to
-/// augment the definitions of the members of that class.
-abstract interface class ClassDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForClass(
-      ClassDeclaration clazz, TypeDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any enum, and want to
-/// contribute new type declarations to the program.
-abstract interface class EnumTypesMacro implements Macro {
-  FutureOr<void> buildTypesForEnum(
-      EnumDeclaration enuum, EnumTypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any enum, and want to
-/// contribute new non-type declarations to the program.
-abstract interface class EnumDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForEnum(
-      EnumDeclaration enuum, EnumDeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any enum, and want to
-/// augment the definitions of members or values of that enum.
-abstract interface class EnumDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForEnum(
-      EnumDeclaration enuum, EnumDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any enum, and want to
-/// contribute new type declarations to the program.
-abstract interface class EnumValueTypesMacro implements Macro {
-  FutureOr<void> buildTypesForEnumValue(
-      EnumValueDeclaration entry, TypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any enum, and want to
-/// contribute new non-type declarations to the program.
-abstract interface class EnumValueDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForEnumValue(
-      EnumValueDeclaration entry, EnumDeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any enum, and want to
-/// augment the definitions of members or values of that enum.
-abstract interface class EnumValueDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForEnumValue(
-      EnumValueDeclaration entry, EnumValueDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any field, and want to
-/// contribute new type declarations to the program.
-abstract interface class FieldTypesMacro implements Macro {
-  FutureOr<void> buildTypesForField(
-      FieldDeclaration field, TypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any field, and want to
-/// contribute new type declarations to the program.
-abstract interface class FieldDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForField(
-      FieldDeclaration field, MemberDeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any field, and want to
-/// augment the field definition.
-abstract interface class FieldDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForField(
-      FieldDeclaration field, VariableDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any method, and want to
-/// contribute new type declarations to the program.
-abstract interface class MethodTypesMacro implements Macro {
-  FutureOr<void> buildTypesForMethod(
-      MethodDeclaration method, TypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any method, and want to
-/// contribute new non-type declarations to the program.
-abstract interface class MethodDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForMethod(
-      MethodDeclaration method, MemberDeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any method, and want to
-/// augment the function definition.
-abstract interface class MethodDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForMethod(
-      MethodDeclaration method, FunctionDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any constructor, and want
-/// to contribute new type declarations to the program.
-abstract interface class ConstructorTypesMacro implements Macro {
-  FutureOr<void> buildTypesForConstructor(
-      ConstructorDeclaration constructor, TypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any constructors, and
-/// want to contribute new non-type declarations to the program.
-abstract interface class ConstructorDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForConstructor(
-      ConstructorDeclaration constructor, MemberDeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any constructor, and want
-/// to augment the function definition.
-abstract interface class ConstructorDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForConstructor(
-      ConstructorDeclaration constructor, ConstructorDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any mixin declaration, and
-/// want to contribute new type declarations to the program.
-abstract interface class MixinTypesMacro implements Macro {
-  FutureOr<void> buildTypesForMixin(
-      MixinDeclaration mixin, MixinTypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any mixin declaration, and
-/// want to contribute new non-type declarations to the program.
-abstract interface class MixinDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForMixin(
-      MixinDeclaration mixin, MemberDeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any mixin declaration, and
-/// want to augment the definitions of the members of that mixin.
-abstract interface class MixinDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForMixin(
-      MixinDeclaration mixin, TypeDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any extension declaration,
-/// and want to contribute new type declarations to the program.
-abstract interface class ExtensionTypesMacro implements Macro {
-  FutureOr<void> buildTypesForExtension(
-      ExtensionDeclaration extension, TypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any extension declaration,
-/// and want to contribute new non-type declarations to the program.
-abstract interface class ExtensionDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForExtension(
-      ExtensionDeclaration extension, MemberDeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any extension declaration,
-/// and want to augment the definitions of the members of that extension.
-abstract interface class ExtensionDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForExtension(
-      ExtensionDeclaration extension, TypeDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any extension type
-/// declaration, and want to contribute new type declarations to the program.
-abstract interface class ExtensionTypeTypesMacro implements Macro {
-  FutureOr<void> buildTypesForExtensionType(
-      ExtensionTypeDeclaration extension, TypeBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any extension type
-/// declaration, and want to contribute new non-type declarations to the
-/// program.
-abstract interface class ExtensionTypeDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForExtensionType(
-      ExtensionTypeDeclaration extension, MemberDeclarationBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any extension type
-/// declaration, and want to augment the definitions of the members of that
-/// extension.
-abstract interface class ExtensionTypeDefinitionMacro implements Macro {
-  FutureOr<void> buildDefinitionForExtensionType(
-      ExtensionTypeDeclaration extension, TypeDefinitionBuilder builder);
-}
-
-/// The interface for [Macro]s that can be applied to any type alias
-/// declaration, and want to contribute new type declarations to the program.
-abstract interface class TypeAliasTypesMacro implements Macro {
-  FutureOr<void> buildTypesForTypeAlias(
-    TypeAliasDeclaration declaration,
-    TypeBuilder builder,
-  );
-}
-
-/// The interface for [Macro]s that can be applied to any type alias
-/// declaration, and want to contribute new non-type declarations to the
-/// program.
-abstract interface class TypeAliasDeclarationsMacro implements Macro {
-  FutureOr<void> buildDeclarationsForTypeAlias(
-    TypeAliasDeclaration declaration,
-    DeclarationBuilder builder,
-  );
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/bootstrap.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/bootstrap.dart
deleted file mode 100644
index 21be20c..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/bootstrap.dart
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'executor/serialization.dart'
-    show SerializationMode, SerializationModeHelpers;
-
-/// Generates a Dart program for a given set of macros, which can be compiled
-/// and then passed as a precompiled kernel file to `MacroExecutor.loadMacro`.
-///
-/// The [macroDeclarations] is a map from library URIs to macro classes for the
-/// macros supported. The macro classes are provided as a map from macro class
-/// names to the names of the macro class constructors.
-///
-/// The [serializationMode] must be a client variant.
-String bootstrapMacroIsolate(
-    Map<String, Map<String, List<String>>> macroDeclarations,
-    SerializationMode serializationMode) {
-  StringBuffer imports = StringBuffer();
-  StringBuffer constructorEntries = StringBuffer();
-  macroDeclarations
-      .forEach((String macroImport, Map<String, List<String>> macroClasses) {
-    imports.writeln('import \'$macroImport\';');
-    constructorEntries.writeln("Uri.parse('$macroImport'): {");
-    macroClasses.forEach((String macroName, List<String> constructorNames) {
-      constructorEntries.writeln("'$macroName': {");
-      for (String constructor in constructorNames) {
-        constructorEntries.writeln("'$constructor': "
-            "$macroName.${constructor.isEmpty ? 'new' : constructor},");
-      }
-      constructorEntries.writeln('},');
-    });
-    constructorEntries.writeln('},');
-  });
-  return template
-      .replaceFirst(_importMarker, imports.toString())
-      .replaceFirst(
-          _macroConstructorEntriesMarker, constructorEntries.toString())
-      .replaceFirst(_modeMarker, serializationMode.asCode);
-}
-
-const String _importMarker = '{{IMPORT}}';
-const String _macroConstructorEntriesMarker = '{{MACRO_CONSTRUCTOR_ENTRIES}}';
-const String _modeMarker = '{{SERIALIZATION_MODE}}';
-
-const String template = '''
-import 'dart:io';
-import 'dart:isolate';
-
-import 'package:_macros/src/executor/client.dart';
-import 'package:_macros/src/executor/serialization.dart';
-
-$_importMarker
-
-/// Entrypoint to be spawned with [Isolate.spawnUri] or [Process.start].
-///
-/// Supports the client side of the macro expansion protocol.
-void main(List<String> arguments, [SendPort? sendPort]) async {
-  await MacroExpansionClient.start(
-      $_modeMarker, _macroConstructors, arguments, sendPort);
-}
-
-/// Maps libraries by uri to macros by name, and then constructors by name.
-final _macroConstructors = <Uri, Map<String, Map<String, Function>>>{
-  $_macroConstructorEntriesMarker
-};
-''';
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/client.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/client.dart
deleted file mode 100644
index d96faa3..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/client.dart
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'executor/client.dart';
-export 'executor/serialization.dart';
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor.dart
deleted file mode 100644
index be79795f..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor.dart
+++ /dev/null
@@ -1,219 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'executor/serialization_extensions.dart';
-
-import 'api.dart';
-import 'executor/cast.dart';
-import 'executor/introspection_impls.dart';
-import 'executor/serialization.dart';
-import 'executor/span.dart';
-
-part 'executor/arguments.dart';
-
-/// The interface used by Dart language implementations, in order to load
-/// and execute macros, as well as produce library augmentations from those
-/// macro applications.
-///
-/// This class more clearly defines the role of a Dart language implementation
-/// during macro discovery and expansion, and unifies how augmentation libraries
-/// are produced.
-abstract class MacroExecutor {
-  /// Creates an instance of the macro [name] from [library] in the executor,
-  /// and returns an identifier for that instance.
-  ///
-  /// Throws an exception if an instance is not created.
-  ///
-  /// Instances may be re-used throughout a single build, but should be
-  /// re-created on subsequent builds (even incremental ones).
-  Future<MacroInstanceIdentifier> instantiateMacro(
-      Uri library, String name, String constructor, Arguments arguments);
-
-  /// Disposes a macro [instance] by its identifier.
-  ///
-  /// All macros should be disposed once expanded to prevent memory leaks in the
-  /// client macro executor.
-  ///
-  /// This is a fire and forget API, it does not happen synchronously but there
-  /// is no reason to wait for it to complete, and the client does not send a
-  /// response.
-  void disposeMacro(MacroInstanceIdentifier instance);
-
-  /// Runs the type phase for [macro] on a given [declaration].
-  ///
-  /// Throws an exception if there is an error executing the macro.
-  Future<MacroExecutionResult> executeTypesPhase(MacroInstanceIdentifier macro,
-      MacroTarget target, TypePhaseIntrospector introspector);
-
-  /// Runs the declarations phase for [macro] on a given [declaration].
-  ///
-  /// Throws an exception if there is an error executing the macro.
-  Future<MacroExecutionResult> executeDeclarationsPhase(
-      MacroInstanceIdentifier macro,
-      MacroTarget target,
-      DeclarationPhaseIntrospector introspector);
-
-  /// Runs the definitions phase for [macro] on a given [declaration].
-  ///
-  /// Throws an exception if there is an error executing the macro.
-  Future<MacroExecutionResult> executeDefinitionsPhase(
-      MacroInstanceIdentifier macro,
-      MacroTarget target,
-      DefinitionPhaseIntrospector introspector);
-
-  /// Combines multiple [MacroExecutionResult]s into a single library
-  /// augmentation file, and returns a [String] representing that file.
-  ///
-  /// The [resolveDeclaration] argument should return the [TypeDeclaration] for
-  /// an [Identifier] pointing at a named type in the library being augmented
-  /// (note this could be a type that was added in the "types" phase).
-  ///
-  /// The [resolveIdentifier] argument should return the import uri to be used
-  /// for that identifier.
-  ///
-  /// The [inferOmittedType] argument is used to get the inferred type for a
-  /// given [OmittedTypeAnnotation].
-  ///
-  /// If [omittedTypes] is provided, [inferOmittedType] is allowed to return
-  /// `null` for types that have not yet been inferred. In this case a fresh
-  /// name will be used for the omitted type in the generated library code and
-  /// the omitted type will be mapped to the fresh name in [omittedTypes].
-  ///
-  /// The generated library files content must be deterministic, including the
-  /// generation of fresh names for import prefixes and omitted types.
-  ///
-  /// If [spans] is provided, the [Span]s for the generated source are added
-  /// to [spans]. This is used to compute the offset relation between
-  /// intermediate augmentation libraries and the merged augmentation library.
-  String buildAugmentationLibrary(
-      Uri augmentedLibraryUri,
-      Iterable<MacroExecutionResult> macroResults,
-      TypeDeclaration Function(Identifier) resolveDeclaration,
-      ResolvedIdentifier Function(Identifier) resolveIdentifier,
-      TypeAnnotation? Function(OmittedTypeAnnotation) inferOmittedType,
-      {Map<OmittedTypeAnnotation, String>? omittedTypes,
-      List<Span>? spans});
-
-  /// Tell the executor to shut down and clean up any resources it may have
-  /// allocated.
-  Future<void> close();
-}
-
-/// A resolved [Identifier], this is used when creating augmentation libraries
-/// to qualify identifiers where needed.
-class ResolvedIdentifier implements Identifier {
-  /// The import URI for the library that defines the member that is referenced
-  /// by this identifier.
-  ///
-  /// If this identifier is an instance member or a built-in type, like
-  /// `void`, [uri] is `null`.
-  final Uri? uri;
-
-  /// Type of identifier this is (instance, static, top level).
-  final IdentifierKind kind;
-
-  /// The unqualified name of this identifier.
-  @override
-  final String name;
-
-  /// If this is a static member, then the name of the fully qualified scope
-  /// surrounding this member. Should not contain a trailing `.`.
-  ///
-  /// Typically this would just be the name of a type.
-  final String? staticScope;
-
-  ResolvedIdentifier({
-    required this.kind,
-    required this.name,
-    required this.staticScope,
-    required this.uri,
-  });
-}
-
-/// The types of identifiers.
-enum IdentifierKind {
-  instanceMember,
-  local, // Parameters, local variables, etc.
-  staticInstanceMember,
-  topLevelMember,
-}
-
-/// An opaque identifier for an instance of a macro class, retrieved by
-/// [MacroExecutor.instantiateMacro].
-///
-/// Used to execute or reload this macro in the future.
-abstract class MacroInstanceIdentifier implements Serializable {
-  /// Whether or not this instance should run in [phase] on [declarationKind].
-  ///
-  /// Attempting to execute a macro in a phase it doesn't support, or on a
-  /// declaration kind it doesn't support is an error.
-  bool shouldExecute(DeclarationKind declarationKind, Phase phase);
-
-  /// Whether or not this macro supports [declarationKind] in any phase.
-  bool supportsDeclarationKind(DeclarationKind declarationKind);
-}
-
-/// A summary of the results of running a macro in a given phase.
-///
-/// All modifications are expressed in terms of library augmentation
-/// declarations.
-abstract class MacroExecutionResult implements Serializable {
-  /// All [Diagnostic]s reported as a result of executing a macro.
-  List<Diagnostic> get diagnostics;
-
-  /// If execution was stopped by an exception, the exception.
-  MacroException? get exception;
-
-  /// Any augmentations to enum values that should be applied to an enum as a
-  /// result of executing a macro, indexed by the identifier of the enum.
-  Map<Identifier, Iterable<DeclarationCode>> get enumValueAugmentations;
-
-  /// Any interfaces that should be added to types as a result of executing a
-  /// macro, indexed by the identifier of the augmented type declaration.
-  Map<Identifier, Iterable<TypeAnnotationCode>> get interfaceAugmentations;
-
-  /// Any augmentations that should be applied to the library as a result of
-  /// executing a macro.
-  Iterable<DeclarationCode> get libraryAugmentations;
-
-  /// Any mixins that should be added to types as a result of executing a macro,
-  /// indexed by the identifier of the augmented type declaration.
-  Map<Identifier, Iterable<TypeAnnotationCode>> get mixinAugmentations;
-
-  /// The names of any new types declared in [augmentations].
-  Iterable<String> get newTypeNames;
-
-  /// Any augmentations that should be applied to a class as a result of
-  /// executing a macro, indexed by the identifier of the class.
-  Map<Identifier, Iterable<DeclarationCode>> get typeAugmentations;
-}
-
-/// Each of the possible types of declarations a macro can be applied to
-enum DeclarationKind {
-  classType,
-  constructor,
-  enumType,
-  enumValue,
-  extension,
-  extensionType,
-  field,
-  function,
-  library,
-  method,
-  mixinType,
-  typeAlias,
-  variable,
-}
-
-/// Each of the different macro execution phases.
-enum Phase {
-  /// Only new types are added in this phase.
-  types,
-
-  /// New non-type declarations are added in this phase.
-  declarations,
-
-  /// This phase allows augmenting existing declarations.
-  definitions,
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/arguments.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/arguments.dart
deleted file mode 100644
index 5d8fc3e..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/arguments.dart
+++ /dev/null
@@ -1,416 +0,0 @@
-// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-part of '../executor.dart';
-
-/// Representation of an argument to a macro constructor.
-sealed class Argument implements Serializable {
-  ArgumentKind get kind;
-
-  Object? get value;
-
-  Argument();
-
-  /// Reads the next argument from [Deserializer].
-  ///
-  /// By default this will call `moveNext` on [deserializer] before reading the
-  /// argument kind, but this can be skipped by passing `true` for
-  /// [alreadyMoved].
-  factory Argument.deserialize(Deserializer deserializer,
-      {bool alreadyMoved = false}) {
-    if (!alreadyMoved) deserializer.moveNext();
-    final ArgumentKind kind = ArgumentKind.values[deserializer.expectInt()];
-    return switch (kind) {
-      ArgumentKind.string =>
-        StringArgument((deserializer..moveNext()).expectString()),
-      ArgumentKind.bool =>
-        BoolArgument((deserializer..moveNext()).expectBool()),
-      ArgumentKind.double =>
-        DoubleArgument((deserializer..moveNext()).expectDouble()),
-      ArgumentKind.int => IntArgument((deserializer..moveNext()).expectInt()),
-      ArgumentKind.list ||
-      ArgumentKind.set =>
-        _IterableArgument._deserialize(kind, deserializer),
-      ArgumentKind.map => MapArgument._deserialize(deserializer),
-      ArgumentKind.nil => NullArgument(),
-      ArgumentKind.typeAnnotation => TypeAnnotationArgument(
-          (deserializer..moveNext()).expectRemoteInstance()),
-      ArgumentKind.code =>
-        CodeArgument((deserializer..moveNext()).expectCode()),
-      // These are just for type arguments and aren't supported as actual args.
-      ArgumentKind.object ||
-      ArgumentKind.dynamic ||
-      ArgumentKind.num ||
-      ArgumentKind.nullable =>
-        throw StateError('Argument kind $kind is not deserializable'),
-    };
-  }
-
-  /// All subtypes should override this and call super.
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(kind.index);
-  }
-
-  @override
-  String toString() => '$runtimeType:$value';
-}
-
-final class BoolArgument extends Argument {
-  @override
-  ArgumentKind get kind => ArgumentKind.bool;
-
-  @override
-  final bool value;
-
-  BoolArgument(this.value);
-
-  @override
-  void serialize(Serializer serializer) {
-    super.serialize(serializer);
-    serializer.addBool(value);
-  }
-}
-
-final class DoubleArgument extends Argument {
-  @override
-  ArgumentKind get kind => ArgumentKind.double;
-
-  @override
-  final double value;
-
-  DoubleArgument(this.value);
-
-  @override
-  void serialize(Serializer serializer) {
-    super.serialize(serializer);
-    serializer.addDouble(value);
-  }
-}
-
-final class IntArgument extends Argument {
-  @override
-  ArgumentKind get kind => ArgumentKind.int;
-
-  @override
-  final int value;
-
-  IntArgument(this.value);
-
-  @override
-  void serialize(Serializer serializer) {
-    super.serialize(serializer);
-    serializer.addInt(value);
-  }
-}
-
-final class NullArgument extends Argument {
-  @override
-  ArgumentKind get kind => ArgumentKind.nil;
-
-  @override
-  Null get value => null;
-}
-
-final class StringArgument extends Argument {
-  @override
-  ArgumentKind get kind => ArgumentKind.string;
-
-  @override
-  final String value;
-
-  StringArgument(this.value);
-
-  @override
-  void serialize(Serializer serializer) {
-    super.serialize(serializer);
-    serializer.addString(value);
-  }
-}
-
-final class CodeArgument extends Argument {
-  @override
-  ArgumentKind get kind => ArgumentKind.code;
-
-  @override
-  void serialize(Serializer serializer) {
-    super.serialize(serializer);
-    value.serialize(serializer);
-  }
-
-  @override
-  final Code value;
-
-  CodeArgument(this.value);
-}
-
-final class TypeAnnotationArgument extends Argument {
-  @override
-  ArgumentKind get kind => ArgumentKind.typeAnnotation;
-
-  @override
-  void serialize(Serializer serializer) {
-    super.serialize(serializer);
-    value.serialize(serializer);
-  }
-
-  @override
-  final TypeAnnotationImpl value;
-
-  TypeAnnotationArgument(this.value);
-}
-
-abstract base class _CollectionArgument extends Argument {
-  /// Flat list of the actual reified type arguments for this list, in the order
-  /// they would appear if written in code.
-  ///
-  /// For nullable types, they should be preceded by an [ArgumentKind.nullable].
-  ///
-  /// Note that nested type arguments appear here and are just flattened, so
-  /// the type `List<Map<String, List<int>?>>` would have the type arguments:
-  ///
-  /// [
-  ///   ArgumentKind.map,
-  ///   ArgumentKind.string,
-  ///   ArgumentKind.nullable,
-  ///   ArgumentKind.list,
-  ///   ArgumentKind.int,
-  /// ]
-  final List<ArgumentKind> _typeArguments;
-
-  _CollectionArgument(this._typeArguments);
-
-  /// Creates a one or two element list, based on [_typeArguments], but
-  /// converted into deep [Cast] objects.
-  ///
-  /// For an iterable, this will always have a single value, and for a map it
-  /// will always have two values.
-  List<Cast> _extractTypeArgumentCasts() {
-    List<Cast> castStack = [];
-
-    // We build up the list type backwards.
-    for (ArgumentKind type in _typeArguments.reversed) {
-      castStack.add(switch (type) {
-        ArgumentKind.bool => const Cast<bool>(),
-        ArgumentKind.double => const Cast<double>(),
-        ArgumentKind.int => const Cast<int>(),
-        ArgumentKind.map =>
-          MapCast.from(castStack.removeLast(), castStack.removeLast()),
-        ArgumentKind.nil => const Cast<Null>(),
-        ArgumentKind.set => SetCast.from(castStack.removeLast()),
-        ArgumentKind.string => const Cast<String>(),
-        ArgumentKind.list => ListCast.from(castStack.removeLast()),
-        ArgumentKind.typeAnnotation => const Cast<TypeAnnotation>(),
-        ArgumentKind.code => const Cast<Code>(),
-        ArgumentKind.object => const Cast<Object>(),
-        ArgumentKind.dynamic => const Cast<dynamic>(),
-        ArgumentKind.num => const Cast<num>(),
-        ArgumentKind.nullable => castStack.removeLast().nullable,
-      });
-    }
-    return castStack;
-  }
-
-  @override
-  void serialize(Serializer serializer) {
-    super.serialize(serializer);
-    serializer.startList();
-    for (ArgumentKind typeArgument in _typeArguments) {
-      serializer.addInt(typeArgument.index);
-    }
-    serializer.endList();
-  }
-}
-
-/// The base class for [ListArgument] and [SetArgument], most of the logic is
-/// the same.
-abstract base class _IterableArgument<T extends Iterable<Object?>>
-    extends _CollectionArgument {
-  /// These are the raw argument values for each entry in this iterable.
-  final List<Argument> _arguments;
-
-  _IterableArgument(this._arguments, super._typeArguments);
-
-  factory _IterableArgument._deserialize(
-      ArgumentKind kind, Deserializer deserializer) {
-    deserializer
-      ..moveNext()
-      ..expectList();
-    final List<ArgumentKind> typeArguments = [
-      for (; deserializer.moveNext();)
-        ArgumentKind.values[deserializer.expectInt()],
-    ];
-    deserializer
-      ..moveNext()
-      ..expectList();
-    final List<Argument> values = [
-      for (; deserializer.moveNext();)
-        Argument.deserialize(deserializer, alreadyMoved: true),
-    ];
-    return switch (kind) {
-      ArgumentKind.list => ListArgument(values, typeArguments),
-      ArgumentKind.set => SetArgument(values, typeArguments),
-      _ =>
-        throw UnsupportedError('Could not deserialize argument of kind $kind'),
-    } as _IterableArgument<T>;
-  }
-
-  @override
-  void serialize(Serializer serializer) {
-    super.serialize(serializer);
-    serializer.startList();
-    for (Argument argument in _arguments) {
-      argument.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-final class ListArgument extends _IterableArgument<List<Object?>> {
-  @override
-  ArgumentKind get kind => ArgumentKind.list;
-
-  /// Materializes all the `_arguments` as actual values.
-  @override
-  List<Object?> get value =>
-      ListCast.from(_extractTypeArgumentCasts().single).cast([
-        for (Argument arg in _arguments) arg.value,
-      ]);
-
-  ListArgument(super._arguments, super._typeArguments);
-}
-
-final class SetArgument extends _IterableArgument<Set<Object?>> {
-  @override
-  ArgumentKind get kind => ArgumentKind.set;
-
-  /// Materializes all the `_arguments` as actual values.
-  @override
-  Set<Object?> get value =>
-      SetCast.from(_extractTypeArgumentCasts().single).cast({
-        for (Argument arg in _arguments) arg.value,
-      });
-
-  SetArgument(super._arguments, super._typeArguments);
-}
-
-final class MapArgument extends _CollectionArgument {
-  @override
-  ArgumentKind get kind => ArgumentKind.map;
-
-  /// These are the raw argument values for the entries in this map.
-  final Map<Argument, Argument> _arguments;
-
-  /// Materializes all the `_arguments` as actual values.
-  @override
-  Map<Object?, Object?> get value {
-    // We should have exactly two type arguments, the key and value types.
-    final List<Cast> extractedTypes = _extractTypeArgumentCasts();
-    assert(extractedTypes.length == 2);
-    return MapCast.from(extractedTypes[1], extractedTypes[0]).cast({
-      for (MapEntry<Argument, Argument> argument in _arguments.entries)
-        argument.key.value: argument.value.value,
-    });
-  }
-
-  MapArgument(this._arguments, super._typeArguments);
-
-  factory MapArgument._deserialize(Deserializer deserializer) {
-    deserializer
-      ..moveNext()
-      ..expectList();
-    final List<ArgumentKind> typeArguments = [
-      for (; deserializer.moveNext();)
-        ArgumentKind.values[deserializer.expectInt()],
-    ];
-    deserializer
-      ..moveNext()
-      ..expectList();
-    final Map<Argument, Argument> arguments = {
-      for (; deserializer.moveNext();)
-        Argument.deserialize(deserializer, alreadyMoved: true):
-            Argument.deserialize(deserializer),
-    };
-    return MapArgument(arguments, typeArguments);
-  }
-
-  @override
-  void serialize(Serializer serializer) {
-    super.serialize(serializer);
-    serializer.startList();
-    for (MapEntry<Argument, Argument> argument in _arguments.entries) {
-      argument.key.serialize(serializer);
-      argument.value.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-/// The arguments passed to a macro constructor.
-///
-/// All argument instances must be of type [Code] or a built-in value type that
-/// is serializable (num, bool, String, null, etc).
-class Arguments implements Serializable {
-  final List<Argument> positional;
-
-  final Map<String, Argument> named;
-
-  Arguments(this.positional, this.named);
-
-  factory Arguments.deserialize(Deserializer deserializer) {
-    deserializer
-      ..moveNext()
-      ..expectList();
-    final List<Argument> positionalArgs = [
-      for (; deserializer.moveNext();)
-        Argument.deserialize(deserializer, alreadyMoved: true),
-    ];
-    deserializer
-      ..moveNext()
-      ..expectList();
-    final Map<String, Argument> namedArgs = {
-      for (; deserializer.moveNext();)
-        deserializer.expectString(): Argument.deserialize(deserializer),
-    };
-    return Arguments(positionalArgs, namedArgs);
-  }
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.startList();
-    for (Argument arg in positional) {
-      arg.serialize(serializer);
-    }
-    serializer.endList();
-
-    serializer.startList();
-    for (MapEntry<String, Argument> arg in named.entries) {
-      serializer.addString(arg.key);
-      arg.value.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-/// Used for serializing and deserializing arguments.
-///
-/// Note that the `nullable` variants, as well as `object`, `dynamic`, and `num`
-/// are only used for type arguments. Instances should have an argument kind
-/// that matches their their actual value.
-enum ArgumentKind {
-  bool,
-  string,
-  double,
-  int,
-  list,
-  map,
-  set,
-  nil,
-  object,
-  dynamic,
-  num,
-  nullable,
-  typeAnnotation,
-  code,
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/augmentation_library.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/augmentation_library.dart
deleted file mode 100644
index 8eecf25..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/augmentation_library.dart
+++ /dev/null
@@ -1,374 +0,0 @@
-// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import '../api.dart';
-import '../executor.dart';
-import 'span.dart';
-
-/// A mixin which provides a shared implementation of
-/// [MacroExecutor.buildAugmentationLibrary].
-mixin AugmentationLibraryBuilder on MacroExecutor {
-  @override
-  String buildAugmentationLibrary(
-      Uri augmentedLibraryUri,
-      Iterable<MacroExecutionResult> macroResults,
-      TypeDeclaration Function(Identifier) resolveDeclaration,
-      ResolvedIdentifier Function(Identifier) resolveIdentifier,
-      TypeAnnotation? Function(OmittedTypeAnnotation) typeInferrer,
-      {Map<OmittedTypeAnnotation, String>? omittedTypes,
-      List<Span>? spans}) {
-    return _Builder(augmentedLibraryUri, resolveDeclaration, resolveIdentifier,
-            typeInferrer, omittedTypes)
-        .build(macroResults, spans: spans);
-  }
-}
-
-class _Builder {
-  /// The import URI for the augmented library.
-  final Uri _augmentedLibraryUri;
-
-  final TypeDeclaration Function(Identifier) _resolveDeclaration;
-  final ResolvedIdentifier Function(Identifier) _resolveIdentifier;
-  final TypeAnnotation? Function(OmittedTypeAnnotation) _typeInferrer;
-  final Map<OmittedTypeAnnotation, String>? _omittedTypes;
-
-  final Map<Uri, _SynthesizedNamePart> _importNames = {};
-  final Map<OmittedTypeAnnotation, _SynthesizedNamePart> _typeNames = {};
-  final List<_AppliedPart<_Part>> _importParts = [];
-  final List<_AppliedPart<_Part>> _directivesParts = [];
-  final List<_AppliedPart<_StringPart>> _stringParts = [];
-  List<_AppliedPart<_StringPart>> _directivesStringPartBuffer = [];
-
-  // Keeps track of the last part written in `lastDirectivePart`.
-  String _lastDirectivePart = '';
-
-  _Builder(this._augmentedLibraryUri, this._resolveDeclaration,
-      this._resolveIdentifier, this._typeInferrer, this._omittedTypes);
-
-  void _flushStringParts() {
-    if (_directivesStringPartBuffer.isNotEmpty) {
-      _directivesParts.addAll(_directivesStringPartBuffer);
-      _stringParts.addAll(_directivesStringPartBuffer);
-      _directivesStringPartBuffer = [];
-    }
-  }
-
-  void _writeDirectiveStringPart(Key key, String part) {
-    _lastDirectivePart = part;
-    _directivesStringPartBuffer.add(_AppliedPart.string(key, part));
-  }
-
-  void _writeDirectiveSynthesizedNamePart(Key key, _SynthesizedNamePart part) {
-    _flushStringParts();
-    _lastDirectivePart = '';
-    _directivesParts.add(_AppliedPart.synthesized(key, part));
-  }
-
-  void _buildString(Key parent, int index, String part) {
-    _writeDirectiveStringPart(ContentKey.string(parent, index), part);
-  }
-
-  void _buildIdentifier(Key parent, int index, Identifier part) {
-    ResolvedIdentifier resolved = _resolveIdentifier(part);
-    _SynthesizedNamePart? prefix;
-    Uri? resolvedUri = resolved.uri;
-    if (resolvedUri != null) {
-      prefix = _importNames.putIfAbsent(resolvedUri, () {
-        _SynthesizedNamePart prefix = _SynthesizedNamePart();
-        _importParts.add(_AppliedPart.string(
-            UriKey.importPrefix(resolvedUri), "import '$resolvedUri' as "));
-        _importParts.add(_AppliedPart.synthesized(
-            UriKey.prefixDefinition(resolvedUri), prefix));
-        _importParts
-            .add(_AppliedPart.string(UriKey.importSuffix(resolvedUri), ";\n"));
-        return prefix;
-      });
-    }
-    if (resolved.kind == IdentifierKind.instanceMember) {
-      // Qualify with `this.` if we don't have a receiver.
-      if (!_lastDirectivePart.trimRight().endsWith('.')) {
-        _writeDirectiveStringPart(
-            ContentKey.implicitThis(parent, index), 'this.');
-      }
-    } else if (prefix != null) {
-      _writeDirectiveSynthesizedNamePart(
-          PrefixUseKey(parent, index, resolvedUri!), prefix);
-      _writeDirectiveStringPart(ContentKey.prefixDot(parent, index), '.');
-    }
-    if (resolved.kind == IdentifierKind.staticInstanceMember) {
-      _writeDirectiveStringPart(
-          ContentKey.staticScope(parent, index), '${resolved.staticScope!}.');
-    }
-    _writeDirectiveStringPart(
-        ContentKey.identifierName(parent, index), part.name);
-  }
-
-  void _buildOmittedTypeAnnotation(
-      Key parent, int index, OmittedTypeAnnotation part) {
-    TypeAnnotation? type = _typeInferrer(part);
-    Key typeAnnotationKey = OmittedTypeAnnotationKey(parent, index, part);
-    if (type == null) {
-      if (_omittedTypes != null) {
-        _SynthesizedNamePart name =
-            _typeNames.putIfAbsent(part, () => _SynthesizedNamePart());
-        _writeDirectiveSynthesizedNamePart(typeAnnotationKey, name);
-      } else {
-        throw ArgumentError("No type inferred for $part");
-      }
-    } else {
-      _buildCode(typeAnnotationKey, type.code);
-    }
-  }
-
-  void _buildCode(Key parent, Code code) {
-    List<Object> parts = code.parts;
-    for (int index = 0; index < parts.length; index++) {
-      Object part = parts[index];
-      if (part is String) {
-        _buildString(parent, index, part);
-      } else if (part is Code) {
-        _buildCode(ContentKey.code(parent, index), part);
-      } else if (part is Identifier) {
-        _buildIdentifier(parent, index, part);
-      } else if (part is OmittedTypeAnnotation) {
-        _buildOmittedTypeAnnotation(parent, index, part);
-      } else {
-        throw ArgumentError(
-            'Code objects only support String, Identifier, and Code '
-            'instances but got $part which was not one of those.');
-      }
-    }
-  }
-
-  String build(Iterable<MacroExecutionResult> macroResults,
-      {List<Span>? spans}) {
-    Map<Identifier, List<(Key, DeclarationCode)>> mergedTypeResults = {};
-    Map<Identifier, List<(Key, DeclarationCode)>> mergedEntryResults = {};
-    Map<Identifier, List<(Key, TypeAnnotationCode)>> mergedInterfaceResults =
-        {};
-    Map<Identifier, List<(Key, TypeAnnotationCode)>> mergedMixinResults = {};
-    for (MacroExecutionResult result in macroResults) {
-      Key key = MacroExecutionResultKey(result);
-      int index = 0;
-      for (DeclarationCode augmentation in result.libraryAugmentations) {
-        _buildCode(ContentKey.libraryAugmentation(key, index), augmentation);
-        _writeDirectiveStringPart(
-            ContentKey.libraryAugmentationSeparator(key, index), '\n');
-        index++;
-      }
-      result.enumValueAugmentations.forEach((identifier, value) {
-        int index = 0;
-        final Iterable<(Key, DeclarationCode)> values = value
-            .map((e) => (IdentifierKey.enum_(key, index++, identifier), e));
-        mergedEntryResults.update(
-            identifier, (enumValues) => enumValues..addAll(values),
-            ifAbsent: () => values.toList());
-      });
-      result.interfaceAugmentations.forEach((identifier, value) {
-        int index = 0;
-        final Iterable<(Key, TypeAnnotationCode)> values = value
-            .map((e) => (IdentifierKey.interface(key, index++, identifier), e));
-        mergedInterfaceResults.update(
-            identifier, (declarations) => declarations..addAll(values),
-            ifAbsent: () => values.toList());
-      });
-      result.mixinAugmentations.forEach((identifier, value) {
-        int index = 0;
-        final Iterable<(Key, TypeAnnotationCode)> values = value
-            .map((e) => (IdentifierKey.mixin(key, index++, identifier), e));
-        mergedMixinResults.update(
-            identifier, (declarations) => declarations..addAll(values),
-            ifAbsent: () => values.toList());
-      });
-      result.typeAugmentations.forEach((identifier, value) {
-        int index = 0;
-        final Iterable<(Key, DeclarationCode)> values = value
-            .map((e) => (IdentifierKey.member(key, index++, identifier), e));
-        mergedTypeResults.update(
-            identifier, (declarations) => declarations..addAll(values),
-            ifAbsent: () => values.toList());
-      });
-    }
-    final Set<Identifier> mergedAugmentedTypes = {
-      ...mergedEntryResults.keys,
-      ...mergedInterfaceResults.keys,
-      ...mergedMixinResults.keys,
-      ...mergedTypeResults.keys,
-    };
-    for (Identifier type in mergedAugmentedTypes) {
-      final TypeDeclaration typeDeclaration = _resolveDeclaration(type);
-      final TypeDeclarationKey key = TypeDeclarationKey(typeDeclaration);
-      String declarationKind = switch (typeDeclaration) {
-        ClassDeclaration() => 'class',
-        EnumDeclaration() => 'enum',
-        ExtensionDeclaration() => 'extension',
-        MixinDeclaration() => 'mixin',
-        _ => throw UnsupportedError(
-            'Unsupported augmentation type $typeDeclaration'),
-      };
-      final List<String> keywords = [
-        if (typeDeclaration is ClassDeclaration) ...[
-          if (typeDeclaration.hasAbstract) 'abstract',
-          if (typeDeclaration.hasBase) 'base',
-          if (typeDeclaration.hasExternal) 'external',
-          if (typeDeclaration.hasFinal) 'final',
-          if (typeDeclaration.hasInterface) 'interface',
-          if (typeDeclaration.hasMixin) 'mixin',
-          if (typeDeclaration.hasSealed) 'sealed',
-        ] else if (typeDeclaration is MixinDeclaration &&
-            typeDeclaration.hasBase)
-          'base',
-      ];
-      // Has the effect of adding a space after the keywords
-      if (keywords.isNotEmpty) keywords.add('');
-      _writeDirectiveStringPart(TypeDeclarationContentKey.declaration(key),
-          'augment ${keywords.join(' ')}$declarationKind ${type.name} ');
-
-      if (mergedMixinResults[type] case var mixins? when mixins.isNotEmpty) {
-        Key mixinsKey = TypeDeclarationContentKey.mixins(key);
-        int index = 0;
-        _buildString(mixinsKey, index++, 'with ');
-        bool needsComma = false;
-        for (var (Key key, TypeAnnotationCode mixin) in mixins) {
-          if (needsComma) {
-            _buildString(mixinsKey, index++, ', ');
-          }
-          _buildCode(key, mixin);
-          needsComma = true;
-        }
-        _buildString(mixinsKey, index++, ' ');
-      }
-
-      if (mergedInterfaceResults[type] case var interfaces?
-          when interfaces.isNotEmpty) {
-        Key interfacesKey = TypeDeclarationContentKey.interfaces(key);
-        int index = 0;
-        _buildString(interfacesKey, index++, 'implements ');
-        bool needsComma = false;
-        for (var (Key key, TypeAnnotationCode interface) in interfaces) {
-          if (needsComma) {
-            _buildString(interfacesKey, index++, ', ');
-          }
-          _buildCode(key, interface);
-          needsComma = true;
-        }
-        _buildString(interfacesKey, index++, ' ');
-      }
-
-      _writeDirectiveStringPart(
-          TypeDeclarationContentKey.bodyStart(key), '{\n');
-      if (typeDeclaration is EnumDeclaration) {
-        for (var (Key key, DeclarationCode entryAugmentation)
-            in mergedEntryResults[type] ?? []) {
-          _buildCode(key, entryAugmentation);
-        }
-        _writeDirectiveStringPart(
-            TypeDeclarationContentKey.enumValueEnd(key), ';\n');
-      }
-      for (var (Key key, DeclarationCode augmentation)
-          in mergedTypeResults[type] ?? []) {
-        _buildCode(key, augmentation);
-        _writeDirectiveStringPart(
-            TypeDeclarationContentKey.declarationSeparator(key), '\n');
-      }
-      _writeDirectiveStringPart(TypeDeclarationContentKey.bodyEnd(key), '}\n');
-    }
-    _flushStringParts();
-
-    if (_importNames.isNotEmpty) {
-      String prefix = _computeFreshPrefix(_stringParts, 'prefix');
-      int index = 0;
-      for (_SynthesizedNamePart part in _importNames.values) {
-        part.text = '$prefix${index++}';
-      }
-    }
-    if (_omittedTypes != null && _typeNames.isNotEmpty) {
-      String prefix = _computeFreshPrefix(_stringParts, 'OmittedType');
-      int index = 0;
-      _typeNames.forEach(
-          (OmittedTypeAnnotation omittedType, _SynthesizedNamePart part) {
-        String name = '$prefix${index++}';
-        part.text = name;
-        _omittedTypes[omittedType] = name;
-      });
-    }
-
-    StringBuffer sb = StringBuffer();
-
-    void addText(Key key, String text) {
-      spans?.add(Span(key, sb.length, text));
-      sb.write(text);
-    }
-
-    addText(const LibraryAugmentKey(),
-        'augment library \'$_augmentedLibraryUri\';\n\n');
-    for (_AppliedPart<_Part> appliedPart in _importParts) {
-      addText(appliedPart.key, appliedPart.part.text);
-    }
-    if (_importParts.isNotEmpty) {
-      addText(const ImportDeclarationSeparatorKey(), '\n');
-    }
-    for (_AppliedPart<_Part> appliedPart in _directivesParts) {
-      addText(appliedPart.key, appliedPart.part.text);
-    }
-    addText(const EndOfFileKey(), "");
-
-    return sb.toString();
-  }
-}
-
-class _AppliedPart<T extends _Part> {
-  final Key key;
-  final T part;
-
-  _AppliedPart(this.key, this.part);
-
-  static _AppliedPart<_StringPart> string(Key key, String part) =>
-      _AppliedPart<_StringPart>(key, _StringPart(part));
-
-  static _AppliedPart<_SynthesizedNamePart> synthesized(
-          Key key, _SynthesizedNamePart part) =>
-      _AppliedPart<_SynthesizedNamePart>(key, part);
-}
-
-abstract class _Part {
-  String get text;
-}
-
-class _SynthesizedNamePart implements _Part {
-  @override
-  late String text;
-}
-
-class _StringPart implements _Part {
-  @override
-  final String text;
-
-  _StringPart(this.text);
-}
-
-/// Computes a name starting with [name] that is unique with respect to the
-/// text in [stringParts].
-///
-/// This algorithm assumes that no two parts in [stringParts] occur in direct
-/// sequence where they are used, i.e. there is always at least one
-/// [_SynthesizedNamePart] between them.
-String _computeFreshPrefix(
-    List<_AppliedPart<_StringPart>> stringParts, String name) {
-  int index = -1;
-  String prefix = name;
-  for (_AppliedPart<_StringPart> appliedPart in stringParts) {
-    while (appliedPart.part.text.contains(prefix)) {
-      index++;
-      prefix = '$name$index';
-    }
-  }
-
-  if (index > 0) {
-    // Add a separator when an index was needed. This is to ensure that
-    // suffixing number to [prefix] doesn't blend the digits.
-    prefix = '${prefix}_';
-  }
-  return prefix;
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/builder_impls.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/builder_impls.dart
deleted file mode 100644
index 013f118..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/builder_impls.dart
+++ /dev/null
@@ -1,661 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-
-import '../api.dart';
-import '../executor.dart';
-import 'exception_impls.dart';
-import 'introspection_impls.dart';
-import 'response_impls.dart';
-
-abstract class TypeBuilderBase implements TypePhaseIntrospector, Builder {
-  /// All the collected diagnostics for this builder.
-  final List<Diagnostic> _diagnostics;
-
-  /// If execution was stopped by an exception, the exception.
-  MacroExceptionImpl? _exception;
-
-  /// All the enum values to be added, indexed by the identifier for the
-  /// augmented enum declaration.
-  final Map<IdentifierImpl, List<DeclarationCode>> _enumValueAugmentations;
-
-  /// All the interfaces to be added, indexed by the identifier for the
-  /// augmented type declaration.
-  final Map<IdentifierImpl, List<TypeAnnotationCode>> _interfaceAugmentations;
-
-  /// All the top level declarations to add to the current library.
-  final List<DeclarationCode> _libraryAugmentations;
-
-  /// All the mixins to be added, indexed by the identifier for the
-  /// augmented type declaration.
-  final Map<IdentifierImpl, List<TypeAnnotationCode>> _mixinAugmentations;
-
-  /// The names of any new types added in [_libraryAugmentations].
-  final List<String> _newTypeNames = [];
-
-  /// All the declarations to be added to types, indexed by the identifier for
-  /// the augmented type.
-  final Map<IdentifierImpl, List<DeclarationCode>> _typeAugmentations;
-
-  TypePhaseIntrospector get introspector;
-
-  /// Creates and returns a [MacroExecutionResult] out of the [_augmentations]
-  /// created by this builder.
-  MacroExecutionResult get result => MacroExecutionResultImpl(
-        diagnostics: _diagnostics,
-        exception: _exception,
-        enumValueAugmentations: _enumValueAugmentations,
-        interfaceAugmentations: _interfaceAugmentations,
-        libraryAugmentations: _libraryAugmentations,
-        mixinAugmentations: _mixinAugmentations,
-        newTypeNames: _newTypeNames,
-        typeAugmentations: _typeAugmentations,
-      );
-
-  TypeBuilderBase({
-    Map<IdentifierImpl, List<DeclarationCode>>? parentEnumValueAugmentations,
-    Map<IdentifierImpl, List<TypeAnnotationCode>>? parentInterfaceAugmentations,
-    List<DeclarationCode>? parentLibraryAugmentations,
-    Map<IdentifierImpl, List<TypeAnnotationCode>>? parentMixinAugmentations,
-    Map<IdentifierImpl, List<DeclarationCode>>? parentTypeAugmentations,
-    List<Diagnostic>? parentDiagnostics,
-  })  : _diagnostics = parentDiagnostics ?? [],
-        _enumValueAugmentations = parentEnumValueAugmentations ?? {},
-        _interfaceAugmentations = parentInterfaceAugmentations ?? {},
-        _libraryAugmentations = parentLibraryAugmentations ?? [],
-        _mixinAugmentations = parentMixinAugmentations ?? {},
-        _typeAugmentations = parentTypeAugmentations ?? {};
-
-  @override
-  void report(Diagnostic diagnostic) => _diagnostics.add(diagnostic);
-
-  void failWithException(MacroExceptionImpl exception) {
-    if (_exception != null) throw StateError('Already set exception');
-    _exception = exception;
-  }
-
-  @override
-  Future<Identifier> resolveIdentifier(Uri library, String identifier) =>
-      // ignore: deprecated_member_use_from_same_package
-      introspector.resolveIdentifier(library, identifier);
-}
-
-class TypeBuilderImpl extends TypeBuilderBase implements TypeBuilder {
-  @override
-  final TypePhaseIntrospector introspector;
-
-  TypeBuilderImpl(this.introspector);
-
-  @override
-  void declareType(String name, DeclarationCode typeDeclaration) {
-    _newTypeNames.add(name);
-    _libraryAugmentations.add(typeDeclaration);
-  }
-}
-
-mixin InterfaceTypesBuilderImpl on TypeBuilderImpl
-    implements InterfaceTypesBuilder {
-  /// The type that we are going to be adding interfaces to.
-  IdentifierImpl get originalType;
-
-  /// Appends [interfaces] to the list of interfaces for this type.
-  @override
-  void appendInterfaces(Iterable<TypeAnnotationCode> interfaces) {
-    _interfaceAugmentations
-        .putIfAbsent(originalType, () => [])
-        .addAll(interfaces);
-  }
-}
-
-mixin MixinTypesBuilderImpl on TypeBuilderImpl implements MixinTypesBuilder {
-  /// The type that we are going to be adding mixins to.
-  IdentifierImpl get originalType;
-
-  /// Appends [mixins] to the list of mixins for this type.
-  @override
-  void appendMixins(Iterable<TypeAnnotationCode> mixins) {
-    (_mixinAugmentations[originalType] ??= []).addAll(mixins);
-  }
-}
-
-class ClassTypeBuilderImpl extends TypeBuilderImpl
-    with InterfaceTypesBuilderImpl, MixinTypesBuilderImpl
-    implements ClassTypeBuilder {
-  @override
-  final IdentifierImpl originalType;
-
-  ClassTypeBuilderImpl(this.originalType, super.introspector);
-}
-
-class EnumTypeBuilderImpl extends TypeBuilderImpl
-    with InterfaceTypesBuilderImpl, MixinTypesBuilderImpl
-    implements EnumTypeBuilder {
-  @override
-  final IdentifierImpl originalType;
-
-  EnumTypeBuilderImpl(this.originalType, super.introspector);
-}
-
-class MixinTypeBuilderImpl extends TypeBuilderImpl
-    with InterfaceTypesBuilderImpl
-    implements MixinTypeBuilder {
-  @override
-  final IdentifierImpl originalType;
-
-  MixinTypeBuilderImpl(this.originalType, super.introspector);
-}
-
-/// Base class for all [DeclarationBuilder]s.
-abstract class DeclarationBuilderBase extends TypeBuilderBase
-    implements DeclarationPhaseIntrospector {
-  @override
-  DeclarationPhaseIntrospector get introspector;
-
-  DeclarationBuilderBase({
-    super.parentDiagnostics,
-    super.parentEnumValueAugmentations,
-    super.parentInterfaceAugmentations,
-    super.parentLibraryAugmentations,
-    super.parentTypeAugmentations,
-    super.parentMixinAugmentations,
-  });
-
-  @override
-  Future<TypeDeclaration> typeDeclarationOf(IdentifierImpl identifier) =>
-      introspector.typeDeclarationOf(identifier);
-
-  @override
-  Future<List<ConstructorDeclaration>> constructorsOf(TypeDeclaration type) =>
-      introspector.constructorsOf(type);
-
-  @override
-  Future<List<EnumValueDeclaration>> valuesOf(
-          covariant EnumDeclaration enuum) =>
-      introspector.valuesOf(enuum);
-
-  @override
-  Future<List<FieldDeclaration>> fieldsOf(TypeDeclaration type) =>
-      introspector.fieldsOf(type);
-
-  @override
-  Future<List<MethodDeclaration>> methodsOf(TypeDeclaration type) =>
-      introspector.methodsOf(type);
-
-  @override
-  Future<StaticType> resolve(TypeAnnotationCode code) =>
-      introspector.resolve(code);
-
-  @override
-  Future<List<TypeDeclaration>> typesOf(Library library) =>
-      introspector.typesOf(library);
-}
-
-class DeclarationBuilderImpl extends DeclarationBuilderBase
-    implements DeclarationBuilder {
-  @override
-  final DeclarationPhaseIntrospector introspector;
-
-  DeclarationBuilderImpl(this.introspector);
-
-  @override
-  void declareInLibrary(DeclarationCode declaration) {
-    _libraryAugmentations.add(declaration);
-  }
-}
-
-class MemberDeclarationBuilderImpl extends DeclarationBuilderImpl
-    implements MemberDeclarationBuilder {
-  final IdentifierImpl definingType;
-
-  MemberDeclarationBuilderImpl(
-    this.definingType,
-    super.introspector,
-  );
-
-  @override
-  void declareInType(DeclarationCode declaration) {
-    _typeAugmentations.update(definingType, (value) => value..add(declaration),
-        ifAbsent: () => [declaration]);
-  }
-}
-
-class EnumDeclarationBuilderImpl extends MemberDeclarationBuilderImpl
-    implements EnumDeclarationBuilder {
-  EnumDeclarationBuilderImpl(
-    super.definingType,
-    super.introspector,
-  );
-
-  @override
-  void declareEnumValue(DeclarationCode declaration) {
-    _enumValueAugmentations.update(
-        definingType, (value) => value..add(declaration),
-        ifAbsent: () => [declaration]);
-  }
-}
-
-/// Base class for all [DefinitionBuilder]s.
-class DefinitionBuilderBase extends DeclarationBuilderBase
-    implements DefinitionPhaseIntrospector {
-  @override
-  final DefinitionPhaseIntrospector introspector;
-
-  DefinitionBuilderBase(
-    this.introspector, {
-    super.parentDiagnostics,
-    super.parentEnumValueAugmentations,
-    super.parentInterfaceAugmentations,
-    super.parentLibraryAugmentations,
-    super.parentTypeAugmentations,
-    super.parentMixinAugmentations,
-  });
-
-  @override
-  Future<Declaration> declarationOf(Identifier identifier) =>
-      introspector.declarationOf(identifier);
-
-  @override
-  Future<TypeAnnotation> inferType(OmittedTypeAnnotationImpl omittedType) =>
-      introspector.inferType(omittedType);
-
-  @override
-  Future<List<Declaration>> topLevelDeclarationsOf(Library library) =>
-      introspector.topLevelDeclarationsOf(library);
-
-  @override
-  Future<TypeDeclaration> typeDeclarationOf(Identifier identifier) =>
-      introspector.typeDeclarationOf(identifier);
-}
-
-class TypeDefinitionBuilderImpl extends DefinitionBuilderBase
-    implements TypeDefinitionBuilder {
-  /// The declaration this is a builder for.
-  final TypeDeclaration declaration;
-
-  TypeDefinitionBuilderImpl(
-    this.declaration,
-    super.introspector, {
-    super.parentDiagnostics,
-    super.parentEnumValueAugmentations,
-    super.parentInterfaceAugmentations,
-    super.parentLibraryAugmentations,
-    super.parentTypeAugmentations,
-    super.parentMixinAugmentations,
-  });
-
-  @override
-  Future<ConstructorDefinitionBuilder> buildConstructor(
-      Identifier identifier) async {
-    ConstructorDeclarationImpl constructor = (await introspector
-                .constructorsOf(declaration))
-            .firstWhere((constructor) => constructor.identifier == identifier)
-        as ConstructorDeclarationImpl;
-    return ConstructorDefinitionBuilderImpl(constructor, introspector,
-        parentDiagnostics: _diagnostics,
-        parentTypeAugmentations: _typeAugmentations,
-        parentLibraryAugmentations: _libraryAugmentations);
-  }
-
-  @override
-  Future<VariableDefinitionBuilder> buildField(Identifier identifier) async {
-    FieldDeclaration field = (await introspector.fieldsOf(declaration))
-        .firstWhere((field) => field.identifier == identifier);
-    return VariableDefinitionBuilderImpl(field, introspector,
-        parentDiagnostics: _diagnostics,
-        parentTypeAugmentations: _typeAugmentations,
-        parentLibraryAugmentations: _libraryAugmentations);
-  }
-
-  @override
-  Future<FunctionDefinitionBuilder> buildMethod(Identifier identifier) async {
-    MethodDeclarationImpl method = (await introspector.methodsOf(declaration))
-            .firstWhere((method) => method.identifier == identifier)
-        as MethodDeclarationImpl;
-    return FunctionDefinitionBuilderImpl(method, introspector,
-        parentDiagnostics: _diagnostics,
-        parentTypeAugmentations: _typeAugmentations,
-        parentLibraryAugmentations: _libraryAugmentations);
-  }
-}
-
-class EnumDefinitionBuilderImpl extends TypeDefinitionBuilderImpl
-    implements EnumDefinitionBuilder {
-  @override
-  EnumDeclaration get declaration => super.declaration as EnumDeclaration;
-
-  EnumDefinitionBuilderImpl(
-    EnumDeclaration super.declaration,
-    super.introspector, {
-    super.parentEnumValueAugmentations,
-    super.parentInterfaceAugmentations,
-    super.parentLibraryAugmentations,
-    super.parentTypeAugmentations,
-    super.parentMixinAugmentations,
-  });
-
-  @override
-  Future<EnumValueDefinitionBuilder> buildEnumValue(
-      Identifier identifier) async {
-    EnumValueDeclarationImpl entry = (await introspector.valuesOf(declaration))
-            .firstWhere((entry) => entry.identifier == identifier)
-        as EnumValueDeclarationImpl;
-    return EnumValueDefinitionBuilderImpl(
-      entry,
-      introspector,
-      parentDiagnostics: _diagnostics,
-      parentEnumValueAugmentations: _enumValueAugmentations,
-      parentInterfaceAugmentations: _interfaceAugmentations,
-      parentLibraryAugmentations: _libraryAugmentations,
-      parentMixinAugmentations: _mixinAugmentations,
-      parentTypeAugmentations: _typeAugmentations,
-    );
-  }
-}
-
-class EnumValueDefinitionBuilderImpl extends DefinitionBuilderBase
-    implements EnumValueDefinitionBuilder {
-  final EnumValueDeclarationImpl declaration;
-
-  EnumValueDefinitionBuilderImpl(
-    this.declaration,
-    super.introspector, {
-    super.parentDiagnostics,
-    super.parentEnumValueAugmentations,
-    super.parentInterfaceAugmentations,
-    super.parentLibraryAugmentations,
-    super.parentMixinAugmentations,
-    super.parentTypeAugmentations,
-  });
-
-  @override
-  void augment(DeclarationCode entry) {
-    _enumValueAugmentations.update(
-        declaration.definingEnum, (value) => value..add(entry),
-        ifAbsent: () => [entry]);
-  }
-}
-
-/// Implementation of [FunctionDefinitionBuilder].
-class FunctionDefinitionBuilderImpl extends DefinitionBuilderBase
-    implements FunctionDefinitionBuilder {
-  final FunctionDeclarationImpl declaration;
-
-  FunctionDefinitionBuilderImpl(
-    this.declaration,
-    super.introspector, {
-    super.parentDiagnostics,
-    super.parentEnumValueAugmentations,
-    super.parentInterfaceAugmentations,
-    super.parentLibraryAugmentations,
-    super.parentMixinAugmentations,
-    super.parentTypeAugmentations,
-  });
-
-  @override
-  void augment(FunctionBodyCode body, {CommentCode? docComments}) {
-    DeclarationCode augmentation =
-        _buildFunctionAugmentation(body, declaration, docComments: docComments);
-    if (declaration is MemberDeclaration) {
-      _typeAugmentations.update(
-          (declaration as MethodDeclarationImpl).definingType,
-          (value) => value..add(augmentation),
-          ifAbsent: () => [augmentation]);
-    } else {
-      _libraryAugmentations.add(augmentation);
-    }
-  }
-}
-
-class ConstructorDefinitionBuilderImpl extends DefinitionBuilderBase
-    implements ConstructorDefinitionBuilder {
-  final ConstructorDeclarationImpl declaration;
-
-  ConstructorDefinitionBuilderImpl(
-    this.declaration,
-    super.introspector, {
-    super.parentDiagnostics,
-    super.parentEnumValueAugmentations,
-    super.parentInterfaceAugmentations,
-    super.parentLibraryAugmentations,
-    super.parentMixinAugmentations,
-    super.parentTypeAugmentations,
-  });
-
-  @override
-  void augment(
-      {FunctionBodyCode? body,
-      List<Code>? initializers,
-      CommentCode? docComments}) {
-    if (body != null && declaration.hasBody) {
-      // TODO: https://github.com/dart-lang/language/issues/3555
-      throw UnsupportedError(
-          'Augmenting existing constructor bodies is not allowed.');
-    }
-    DeclarationCode augmentation = _buildFunctionAugmentation(body, declaration,
-        initializers: initializers, docComments: docComments);
-    _typeAugmentations.update(
-        declaration.definingType, (value) => value..add(augmentation),
-        ifAbsent: () => [augmentation]);
-  }
-}
-
-class VariableDefinitionBuilderImpl extends DefinitionBuilderBase
-    implements VariableDefinitionBuilder {
-  final VariableDeclaration declaration;
-
-  VariableDefinitionBuilderImpl(
-    this.declaration,
-    super.introspector, {
-    super.parentDiagnostics,
-    super.parentEnumValueAugmentations,
-    super.parentInterfaceAugmentations,
-    super.parentLibraryAugmentations,
-    super.parentMixinAugmentations,
-    super.parentTypeAugmentations,
-  });
-
-  @override
-  void augment(
-      {DeclarationCode? getter,
-      DeclarationCode? setter,
-      ExpressionCode? initializer,
-      CommentCode? initializerDocComments}) {
-    List<DeclarationCode> augmentations = _buildVariableAugmentations(
-        declaration,
-        getter: getter,
-        setter: setter,
-        initializer: initializer,
-        initializerDocComments: initializerDocComments);
-    if (declaration is MemberDeclaration) {
-      _typeAugmentations.update(
-          (declaration as FieldDeclarationImpl).definingType,
-          (value) => value..addAll(augmentations),
-          ifAbsent: () => augmentations);
-    } else {
-      _libraryAugmentations.addAll(augmentations);
-    }
-  }
-}
-
-class LibraryDefinitionBuilderImpl extends DefinitionBuilderBase
-    implements LibraryDefinitionBuilder {
-  final Library library;
-
-  LibraryDefinitionBuilderImpl(
-    this.library,
-    super.introspector, {
-    super.parentDiagnostics,
-    super.parentEnumValueAugmentations,
-    super.parentInterfaceAugmentations,
-    super.parentLibraryAugmentations,
-    super.parentMixinAugmentations,
-    super.parentTypeAugmentations,
-  });
-
-  @override
-  Future<FunctionDefinitionBuilder> buildFunction(Identifier identifier) async {
-    FunctionDeclarationImpl function = (await introspector
-                .topLevelDeclarationsOf(library))
-            .firstWhere((declaration) => declaration.identifier == identifier)
-        as FunctionDeclarationImpl;
-    return FunctionDefinitionBuilderImpl(function, introspector,
-        parentDiagnostics: _diagnostics,
-        parentTypeAugmentations: _typeAugmentations,
-        parentLibraryAugmentations: _libraryAugmentations);
-  }
-
-  @override
-  Future<TypeDefinitionBuilder> buildType(Identifier identifier) async {
-    TypeDeclaration type = (await introspector.topLevelDeclarationsOf(library))
-            .firstWhere((declaration) => declaration.identifier == identifier)
-        as TypeDeclaration;
-    return TypeDefinitionBuilderImpl(type, introspector,
-        parentDiagnostics: _diagnostics,
-        parentTypeAugmentations: _typeAugmentations,
-        parentLibraryAugmentations: _libraryAugmentations);
-  }
-
-  @override
-  Future<VariableDefinitionBuilder> buildVariable(Identifier identifier) async {
-    VariableDeclarationImpl variable = (await introspector
-                .topLevelDeclarationsOf(library))
-            .firstWhere((declaration) => declaration.identifier == identifier)
-        as VariableDeclarationImpl;
-    return VariableDefinitionBuilderImpl(variable, introspector,
-        parentDiagnostics: _diagnostics,
-        parentTypeAugmentations: _typeAugmentations,
-        parentLibraryAugmentations: _libraryAugmentations);
-  }
-}
-
-/// Builds all the possible augmentations for a variable.
-List<DeclarationCode> _buildVariableAugmentations(
-    VariableDeclaration declaration,
-    {DeclarationCode? getter,
-    DeclarationCode? setter,
-    ExpressionCode? initializer,
-    CommentCode? initializerDocComments}) {
-  if (initializerDocComments != null && initializer == null) {
-    throw ArgumentError(
-        'initializerDocComments cannot be provided if an initializer is not '
-        'provided.');
-  }
-  List<DeclarationCode> augmentations = [];
-  if (getter != null) {
-    augmentations.add(DeclarationCode.fromParts([
-      if (declaration is FieldDeclaration) '  ',
-      'augment ',
-      if (declaration is FieldDeclaration && declaration.hasStatic) 'static ',
-      getter,
-    ]));
-  }
-  if (setter != null) {
-    augmentations.add(DeclarationCode.fromParts([
-      if (declaration is FieldDeclaration) '  ',
-      'augment ',
-      if (declaration is FieldDeclaration && declaration.hasStatic) 'static ',
-      setter,
-    ]));
-  }
-  if (initializer != null) {
-    augmentations.add(DeclarationCode.fromParts([
-      if (initializerDocComments != null) initializerDocComments,
-      if (declaration is FieldDeclaration) '  ',
-      'augment ',
-      if (declaration is FieldDeclaration && declaration.hasStatic) 'static ',
-      if (declaration.hasFinal) 'final ',
-      declaration.type.code,
-      ' ',
-      declaration.identifier.name,
-      ' = ',
-      initializer,
-      ';',
-    ]));
-  }
-
-  return augmentations;
-}
-
-/// Builds the code to augment a function, method, or constructor with a new
-/// body.
-///
-/// The [initializers] parameter can only be used if [declaration] is a
-/// constructor.
-DeclarationCode _buildFunctionAugmentation(
-    FunctionBodyCode? body, FunctionDeclaration declaration,
-    {List<Code>? initializers, CommentCode? docComments}) {
-  assert(initializers == null || declaration is ConstructorDeclaration);
-
-  return DeclarationCode.fromParts([
-    if (docComments != null) ...[docComments, '\n'],
-    if (declaration is MethodDeclaration) '  ',
-    'augment ',
-    if (declaration is ConstructorDeclaration) ...[
-      declaration.definingType.name,
-      if (declaration.identifier.name.isNotEmpty) '.',
-    ] else ...[
-      if (declaration is MethodDeclaration && declaration.hasStatic) 'static ',
-      declaration.returnType.code,
-      ' ',
-      if (declaration.isOperator) 'operator ',
-    ],
-    if (declaration.isGetter) 'get ',
-    if (declaration.isSetter) 'set ',
-    declaration.identifier.name,
-    if (!declaration.isGetter) ...[
-      if (declaration.typeParameters.isNotEmpty) ...[
-        '<',
-        for (TypeParameterDeclaration typeParam
-            in declaration.typeParameters) ...[
-          typeParam.identifier.name,
-          if (typeParam.bound != null) ...[' extends ', typeParam.bound!.code],
-          if (typeParam != declaration.typeParameters.last) ', ',
-        ],
-        '>',
-      ],
-      '(',
-      for (FormalParameterDeclaration positionalRequired in declaration
-          .positionalParameters
-          .takeWhile((p) => p.isRequired)) ...[
-        positionalRequired.code,
-        ', ',
-      ],
-      if (declaration.positionalParameters.any((p) => !p.isRequired)) ...[
-        '[',
-        for (FormalParameterDeclaration positionalOptional in declaration
-            .positionalParameters
-            .where((p) => !p.isRequired)) ...[
-          positionalOptional.code,
-          ', ',
-        ],
-        ']',
-      ],
-      if (declaration.namedParameters.isNotEmpty) ...[
-        '{',
-        for (FormalParameterDeclaration named
-            in declaration.namedParameters) ...[
-          named.code,
-          ', ',
-        ],
-        '}',
-      ],
-      ')',
-    ],
-    if (initializers != null && initializers.isNotEmpty) ...[
-      '\n      : ',
-      initializers.first,
-      for (Code initializer in initializers.skip(1)) ...[
-        ',\n        ',
-        initializer,
-      ],
-    ],
-    if (body == null)
-      ';'
-    else ...[
-      ' ',
-      body,
-    ]
-  ]);
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/cast.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/cast.dart
deleted file mode 100644
index 7f10177..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/cast.dart
+++ /dev/null
@@ -1,141 +0,0 @@
-// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// Enables building up dynamic schemas with deep casts.
-///
-/// These schemas are built up "inside out" using [getAsTypedCast] to extract
-/// the reified type argument from a [Cast],  and pass that to another [Cast]
-/// instance.
-class Cast<T> {
-  const Cast();
-
-  /// All casts happen in this method, custom [Cast] implementations must
-  /// override this method, and no other methods.
-  T _cast(Object? from) => from is T
-      ? from
-      : throw FailedCast(
-          'expected type $T but got type ${from.runtimeType} for: $from');
-
-  T cast(Object? from) => _cast(from);
-
-  Cast<T?> get nullable => NullableCast._(this);
-
-  /// Enables building up deeply nested generic types without requiring any
-  /// static knowledge or type inference.
-  ///
-  /// Example usage:
-  ///
-  /// Cast<dynamic> x = Cast<int>();
-  /// final y = x.getAsTypedCast(<T>(_) => Cast<Foo<T>>());
-  /// print(y.runtimeType); // Cast<Foo<int>>
-  R getAsTypedCast<R>(R Function<CastType>(Cast<CastType> self) callback) =>
-      callback<T>(this);
-}
-
-/// Wraps a [Cast] such that it also accepts `null`.
-class NullableCast<T> extends Cast<T?> {
-  final Cast<T> _original;
-
-  @override
-  Cast<T?> get nullable => this;
-
-  NullableCast._(this._original);
-
-  @override
-  T? _cast(Object? from) {
-    if (from == null) return null;
-    return _original._cast(from);
-  }
-}
-
-/// Specialized [Cast] implementation for [Map]s which does deep casting of keys
-/// and values.
-class MapCast<K, V> extends Cast<Map<K, V>> {
-  final Cast<K> _key;
-  final Cast<V> _value;
-  const MapCast._(Cast<K> key, Cast<V> value)
-      : _key = key,
-        _value = value;
-
-  /// Builds a [MapCast] whose runtime type is built from the runtime type
-  /// arguments of [keyCast] and [valueCast].
-  ///
-  /// The static type arguments are generally not interesting for these objects,
-  /// and so `<Object?, Object?>` is used to avoid unnecessary casts.
-  static MapCast<Object?, Object?> from(
-          Cast<Object?> keyCast, Cast<Object?> valueCast) =>
-      keyCast.getAsTypedCast(<K>(keyCast) => valueCast.getAsTypedCast(
-          <V>(valueCast) => MapCast<K, V>._(keyCast, valueCast)));
-
-  @override
-  Map<K, V> _cast(Object? from) {
-    if (from is! Map) {
-      return super._cast(from);
-    }
-    Map<K, V> result = {};
-    for (Object? key in from.keys) {
-      K newKey = _key._cast(key);
-      result[newKey] = _value._cast(from[key]);
-    }
-    return result;
-  }
-}
-
-/// Specialized [Cast] implementation for [List]s which does deep casting of
-/// entries.
-class ListCast<E> extends Cast<List<E>> {
-  final Cast<E> _entryCast;
-  const ListCast._(this._entryCast);
-
-  /// Builds a [ListCast] whose runtime type is built from the runtime type
-  /// arguments of [entryCast].
-  ///
-  /// The static type argument is generally not interesting for these objects,
-  /// and so `<Object?>` is used to avoid unnecessary casts.
-  static ListCast<Object?> from(Cast entryCast) =>
-      entryCast.getAsTypedCast(ListCast._);
-
-  @override
-  List<E> _cast(Object? from) {
-    if (from is! List) {
-      return super._cast(from);
-    }
-    return List<E>.generate(from.length, (i) => _entryCast._cast(from[i]));
-  }
-}
-
-/// Specialized [Cast] implementation for [Set]s which does deep casting of
-/// entries.
-class SetCast<E> extends Cast<Set<E>> {
-  final Cast<E> _entryCast;
-  const SetCast._(this._entryCast);
-
-  /// Builds a [SetCast] whose runtime type is built from the runtime type
-  /// arguments of [entryCast].
-  ///
-  /// The static type argument is generally not interesting for these objects,
-  /// and so `<Object?>` is used to avoid unnecessary casts.
-  static SetCast<Object?> from(Cast entryCast) =>
-      entryCast.getAsTypedCast(SetCast._);
-
-  @override
-  Set<E> _cast(Object? from) {
-    if (from is! Set) {
-      return super._cast(from);
-    }
-    return {
-      for (int i = 0; i < from.length; i++) _entryCast._cast(from.elementAt(i)),
-    };
-  }
-}
-
-/// A specific [Exception] for failed casts with information about the full path
-/// to the failed cast.
-class FailedCast implements Exception {
-  String message;
-  FailedCast(this.message);
-
-  @override
-  toString() => "Failed cast: $message";
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/client.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/client.dart
deleted file mode 100644
index 5be2a4c..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/client.dart
+++ /dev/null
@@ -1,341 +0,0 @@
-// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:convert';
-import 'dart:io';
-import 'dart:isolate';
-import 'dart:typed_data';
-
-import '../api.dart';
-import '../executor.dart';
-import 'exception_impls.dart';
-import 'execute_macro.dart';
-import 'message_grouper.dart';
-import 'protocol.dart';
-import 'remote_instance.dart';
-import 'response_impls.dart';
-import 'serialization.dart';
-
-/// Implements the client side of the macro instantiation/expansion protocol.
-final class MacroExpansionClient {
-  /// A map of the instantiable macro constructors.
-  ///
-  /// The outer map is keyed by the URI of the library defining macros, whose
-  /// values are Maps keyed
-  final Map<Uri, Map<String, Map<String, Function>>> _macroConstructors;
-
-  /// Maps macro instance identifiers to instances.
-  final Map<MacroInstanceIdentifierImpl, Macro> _macroInstances = {};
-
-  /// Holds on to response completers by request id.
-  final Map<int, Completer<Response>> _responseCompleters = {};
-
-  MacroExpansionClient._(void Function(Serializer) sendResult,
-      Stream<Object?> messageStream, this._macroConstructors) {
-    messageStream.listen((message) => _handleMessage(message, sendResult));
-  }
-
-  /// Spawns a client connecting either to [sendPort] or a socket address and
-  /// port given in [arguments].
-  static Future<MacroExpansionClient> start(
-      SerializationMode serializationMode,
-      Map<Uri, Map<String, Map<String, Function>>> macroConstructors,
-      List<String> arguments,
-      SendPort? sendPort) {
-    return withSerializationMode(serializationMode, () async {
-      // Function that sends the result of a `Serializer` using either
-      // `sendPort` or `stdout`.
-      void Function(Serializer) sendResult;
-
-      // The stream for incoming messages, could be either a ReceivePort, stdin,
-      // or a socket.
-      Stream<Object?> messageStream;
-
-      String? socketAddress;
-      int? socketPort;
-      if (arguments.isNotEmpty) {
-        if (arguments.length != 2) {
-          throw ArgumentError(
-              'Expected exactly two or zero arguments, got $arguments.');
-        }
-        socketAddress = arguments.first;
-        socketPort = int.parse(arguments[1]);
-      }
-
-      if (sendPort != null) {
-        ReceivePort receivePort = ReceivePort();
-        messageStream = receivePort;
-        sendResult =
-            (Serializer serializer) => _sendIsolateResult(serializer, sendPort);
-        // If using isolate communication, first send a sendPort to the parent
-        // isolate.
-        sendPort.send(receivePort.sendPort);
-      } else {
-        late Stream<List<int>> inputStream;
-        if (socketAddress != null && socketPort != null) {
-          Socket socket = await Socket.connect(socketAddress, socketPort);
-          // Nagle's algorithm slows us down >100x, disable it.
-          socket.setOption(SocketOption.tcpNoDelay, true);
-          sendResult = _sendIOSinkResultFactory(socket);
-          inputStream = socket;
-        } else {
-          sendResult = _sendIOSinkResultFactory(stdout);
-          inputStream = stdin;
-        }
-        if (serializationMode == SerializationMode.byteData) {
-          messageStream = MessageGrouper(inputStream).messageStream;
-        } else if (serializationMode == SerializationMode.json) {
-          messageStream = const Utf8Decoder()
-              .bind(inputStream)
-              .transform(const LineSplitter())
-              .map((line) => jsonDecode(line)!);
-        } else {
-          throw UnsupportedError(
-              'Unsupported serialization mode $serializationMode for '
-              'ProcessExecutor');
-        }
-      }
-
-      return MacroExpansionClient._(
-          sendResult, messageStream, macroConstructors);
-    });
-  }
-
-  void _handleMessage(
-      Object? message, void Function(Serializer) sendResult) async {
-    // Serializes `request` and sends it using `sendResult`.
-    Future<Response> sendRequest(Request request) =>
-        _sendRequest(request, sendResult);
-
-    if (serializationMode == SerializationMode.byteData &&
-        message is TransferableTypedData) {
-      message = message.materialize().asUint8List();
-    }
-    Deserializer deserializer = deserializerFactory(message)..moveNext();
-    int zoneId = deserializer.expectInt();
-    await withRemoteInstanceZone(zoneId, () async {
-      deserializer.moveNext();
-      MessageType type = MessageType.values[deserializer.expectInt()];
-      Serializer serializer = serializerFactory();
-      switch (type) {
-        case MessageType.instantiateMacroRequest:
-          InstantiateMacroRequest request =
-              InstantiateMacroRequest.deserialize(deserializer, zoneId);
-          (await _instantiateMacro(request)).serialize(serializer);
-        case MessageType.disposeMacroRequest:
-          DisposeMacroRequest request =
-              DisposeMacroRequest.deserialize(deserializer, zoneId);
-          _macroInstances.remove(request.identifier);
-          return;
-        case MessageType.executeDeclarationsPhaseRequest:
-          ExecuteDeclarationsPhaseRequest request =
-              ExecuteDeclarationsPhaseRequest.deserialize(deserializer, zoneId);
-          (await _executeDeclarationsPhase(request, sendRequest))
-              .serialize(serializer);
-        case MessageType.executeDefinitionsPhaseRequest:
-          ExecuteDefinitionsPhaseRequest request =
-              ExecuteDefinitionsPhaseRequest.deserialize(deserializer, zoneId);
-          (await _executeDefinitionsPhase(request, sendRequest))
-              .serialize(serializer);
-        case MessageType.executeTypesPhaseRequest:
-          ExecuteTypesPhaseRequest request =
-              ExecuteTypesPhaseRequest.deserialize(deserializer, zoneId);
-          (await _executeTypesPhase(request, sendRequest))
-              .serialize(serializer);
-        case MessageType.response:
-          SerializableResponse response =
-              SerializableResponse.deserialize(deserializer, zoneId);
-          _responseCompleters.remove(response.requestId)!.complete(response);
-          return;
-        case MessageType.destroyRemoteInstanceZoneRequest:
-          DestroyRemoteInstanceZoneRequest request =
-              DestroyRemoteInstanceZoneRequest.deserialize(
-                  deserializer, zoneId);
-          destroyRemoteInstanceZone(request.serializationZoneId);
-          return;
-        default:
-          throw StateError('Unhandled event type $type');
-      }
-      sendResult(serializer);
-    }, createIfMissing: true);
-  }
-
-  /// Handles [InstantiateMacroRequest]s.
-  Future<SerializableResponse> _instantiateMacro(
-      InstantiateMacroRequest request) async {
-    try {
-      Map<String, Map<String, Function>> classes =
-          _macroConstructors[request.library] ??
-              (throw ArgumentError(
-                  'Unrecognized macro library ${request.library}'));
-      Map<String, Function> constructors = classes[request.name] ??
-          (throw ArgumentError(
-              'Unrecognized macro class ${request.name} for library '
-              '${request.library}'));
-      Function constructor = constructors[request.constructor] ??
-          (throw ArgumentError(
-              'Unrecognized constructor name "${request.constructor}" for '
-              'macro class "${request.name}".'));
-
-      Macro instance = Function.apply(constructor, [
-        for (Argument argument in request.arguments.positional) argument.value,
-      ], {
-        for (MapEntry<String, Argument> entry
-            in request.arguments.named.entries)
-          Symbol(entry.key): entry.value.value,
-      }) as Macro;
-      MacroInstanceIdentifierImpl identifier =
-          MacroInstanceIdentifierImpl(instance, request.instanceId);
-      _macroInstances[identifier] = instance;
-      return SerializableResponse(
-          responseType: MessageType.macroInstanceIdentifier,
-          response: identifier,
-          requestId: request.id,
-          serializationZoneId: request.serializationZoneId);
-    } catch (e, s) {
-      return SerializableResponse(
-          responseType: MessageType.exception,
-          exception: MacroExceptionImpl.from(e, s),
-          requestId: request.id,
-          serializationZoneId: request.serializationZoneId);
-    }
-  }
-
-  Future<SerializableResponse> _executeTypesPhase(
-      ExecuteTypesPhaseRequest request,
-      Future<Response> Function(Request request) sendRequest) async {
-    try {
-      Macro instance = _macroInstances[request.macro] ??
-          (throw StateError('Unrecognized macro instance ${request.macro}\n'
-              'Known instances: $_macroInstances)'));
-      TypePhaseIntrospector introspector = ClientTypePhaseIntrospector(
-          sendRequest,
-          remoteInstance: request.introspector,
-          serializationZoneId: request.serializationZoneId);
-
-      MacroExecutionResult result =
-          await executeTypesMacro(instance, request.target, introspector);
-      return SerializableResponse(
-          responseType: MessageType.macroExecutionResult,
-          response: result,
-          requestId: request.id,
-          serializationZoneId: request.serializationZoneId);
-    } catch (e, s) {
-      return SerializableResponse(
-          responseType: MessageType.exception,
-          exception: MacroExceptionImpl.from(e, s),
-          requestId: request.id,
-          serializationZoneId: request.serializationZoneId);
-    }
-  }
-
-  Future<SerializableResponse> _executeDeclarationsPhase(
-      ExecuteDeclarationsPhaseRequest request,
-      Future<Response> Function(Request request) sendRequest) async {
-    try {
-      Macro instance = _macroInstances[request.macro] ??
-          (throw StateError('Unrecognized macro instance ${request.macro}\n'
-              'Known instances: $_macroInstances)'));
-
-      DeclarationPhaseIntrospector introspector =
-          ClientDeclarationPhaseIntrospector(sendRequest,
-              remoteInstance: request.introspector,
-              serializationZoneId: request.serializationZoneId);
-
-      MacroExecutionResult result = await executeDeclarationsMacro(
-          instance, request.target, introspector);
-      return SerializableResponse(
-          responseType: MessageType.macroExecutionResult,
-          response: result,
-          requestId: request.id,
-          serializationZoneId: request.serializationZoneId);
-    } catch (e, s) {
-      return SerializableResponse(
-          responseType: MessageType.exception,
-          exception: MacroExceptionImpl.from(e, s),
-          requestId: request.id,
-          serializationZoneId: request.serializationZoneId);
-    }
-  }
-
-  Future<SerializableResponse> _executeDefinitionsPhase(
-      ExecuteDefinitionsPhaseRequest request,
-      Future<Response> Function(Request request) sendRequest) async {
-    try {
-      Macro instance = _macroInstances[request.macro] ??
-          (throw StateError('Unrecognized macro instance ${request.macro}\n'
-              'Known instances: $_macroInstances)'));
-      DefinitionPhaseIntrospector introspector =
-          ClientDefinitionPhaseIntrospector(sendRequest,
-              remoteInstance: request.introspector,
-              serializationZoneId: request.serializationZoneId);
-
-      MacroExecutionResult result =
-          await executeDefinitionMacro(instance, request.target, introspector);
-      return SerializableResponse(
-          responseType: MessageType.macroExecutionResult,
-          response: result,
-          requestId: request.id,
-          serializationZoneId: request.serializationZoneId);
-    } catch (e, s) {
-      return SerializableResponse(
-          responseType: MessageType.exception,
-          exception: MacroExceptionImpl.from(e, s),
-          requestId: request.id,
-          serializationZoneId: request.serializationZoneId);
-    }
-  }
-
-  /// Serializes [request], passes it to [sendResult], and sets up a [Completer]
-  /// in [_responseCompleters] to handle the response.
-  Future<Response> _sendRequest(
-      Request request, void Function(Serializer serializer) sendResult) {
-    Completer<Response> completer = Completer();
-    _responseCompleters[request.id] = completer;
-    Serializer serializer = serializerFactory();
-    serializer.addInt(request.serializationZoneId);
-    request.serialize(serializer);
-    sendResult(serializer);
-    return completer.future;
-  }
-}
-
-/// Sends [serializer.result] to [sendPort], possibly wrapping it in a
-/// [TransferableTypedData] object.
-void _sendIsolateResult(Serializer serializer, SendPort sendPort) {
-  if (serializationMode == SerializationMode.byteData) {
-    sendPort
-        .send(TransferableTypedData.fromList([serializer.result as Uint8List]));
-  } else {
-    sendPort.send(serializer.result);
-  }
-}
-
-/// Returns a function which takes a [Serializer] and sends its result to
-/// [sink].
-///
-/// Serializes the result to a string if using JSON.
-void Function(Serializer) _sendIOSinkResultFactory(IOSink sink) =>
-    (Serializer serializer) {
-      if (serializationMode == SerializationMode.json) {
-        sink.writeln(jsonEncode(serializer.result));
-      } else if (serializationMode == SerializationMode.byteData) {
-        Uint8List result = (serializer as ByteDataSerializer).result;
-        int length = result.lengthInBytes;
-        BytesBuilder bytesBuilder = BytesBuilder(copy: false);
-        bytesBuilder.add([
-          length >> 24 & 0xff,
-          length >> 16 & 0xff,
-          length >> 8 & 0xff,
-          length & 0xff,
-        ]);
-        bytesBuilder.add(result);
-        sink.add(bytesBuilder.takeBytes());
-      } else {
-        throw UnsupportedError(
-            'Unsupported serialization mode $serializationMode for '
-            'ProcessExecutor');
-      }
-    };
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/exception_impls.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/exception_impls.dart
deleted file mode 100644
index 0480d75..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/exception_impls.dart
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import '../api.dart';
-import 'remote_instance.dart';
-import 'serialization.dart';
-
-/// Base class for exceptions thrown during macro execution.
-///
-/// Macro implementations can catch these exceptions to provide more
-/// information to the user. In case an exception results from user error, they
-/// can provide a pointer to the likely fix. If the exception results from an
-/// implementation error or unknown error, the macro implementation might give
-/// the user information on where and how to file an issue.
-///
-/// If a `MacroException` is not caught by a macro implementation then it will
-/// be reported in a user-oriented way, for example for
-/// `MacroImplementationException` the displayed message suggests that there
-/// is a bug in the macro implementation.
-abstract base class MacroExceptionImpl extends RemoteInstance
-    implements MacroException {
-  @override
-  final String message;
-  @override
-  final String? stackTrace;
-
-  MacroExceptionImpl._({int? id, required this.message, this.stackTrace})
-      : super(id ?? RemoteInstance.uniqueId);
-
-  factory MacroExceptionImpl(
-      {required int id,
-      required RemoteInstanceKind kind,
-      required String message,
-      String? stackTrace}) {
-    switch (kind) {
-      case RemoteInstanceKind.unexpectedMacroException:
-        return UnexpectedMacroExceptionImpl(message,
-            id: id, stackTrace: stackTrace);
-      case RemoteInstanceKind.macroImplementationException:
-        return MacroImplementationExceptionImpl(message,
-            id: id, stackTrace: stackTrace);
-      case RemoteInstanceKind.macroIntrospectionCycleException:
-        return MacroIntrospectionCycleExceptionImpl(message,
-            id: id, stackTrace: stackTrace);
-
-      default:
-        throw ArgumentError.value(kind, 'kind');
-    }
-  }
-
-  /// Instantiates from a throwable caught during macro execution.
-  ///
-  /// If [throwable] is already a subclass of `MacroException`, return it.
-  /// Otherwise it's an unexpected type, return an [UnexpectedMacroException].
-  factory MacroExceptionImpl.from(Object throwable, StackTrace stackTrace) {
-    if (throwable is MacroExceptionImpl) return throwable;
-    return UnexpectedMacroExceptionImpl(throwable.toString(),
-        stackTrace: stackTrace.toString());
-  }
-
-  @override
-  String toString() => '$message${stackTrace == null ? '' : '\n\n$stackTrace'}';
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-    serializer.addString(message);
-    serializer.addNullableString(stackTrace);
-  }
-}
-
-/// Something unexpected happened during macro execution.
-///
-/// For example, a bug in the SDK.
-final class UnexpectedMacroExceptionImpl extends MacroExceptionImpl
-    implements UnexpectedMacroException {
-  UnexpectedMacroExceptionImpl(String message, {super.id, super.stackTrace})
-      : super._(message: message);
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.unexpectedMacroException;
-
-  @override
-  String toString() => 'UnexpectedMacroException: ${super.toString()}';
-}
-
-/// An error due to incorrect implementation was thrown during macro execution.
-///
-/// For example, an incorrect argument was passed to the macro API.
-///
-/// The type `Error` is usually used for such throwables, and it's common to
-/// allow the program to crash when one is thrown.
-///
-/// In the case of macros, however, type `Exception` is used because the macro
-/// implementation can usefully catch it in order to give the user information
-/// about how to notify the macro author about the bug.
-final class MacroImplementationExceptionImpl extends MacroExceptionImpl
-    implements MacroImplementationException {
-  MacroImplementationExceptionImpl(String message, {super.id, super.stackTrace})
-      : super._(message: message);
-
-  @override
-  RemoteInstanceKind get kind =>
-      RemoteInstanceKind.macroImplementationException;
-
-  @override
-  String toString() => 'MacroImplementationException: ${super.toString()}';
-}
-
-/// A cycle was detected in macro applications introspecting targets of other
-/// macro applications.
-///
-/// The order the macros should run in is not defined, so allowing
-/// introspection in this case would make the macro output non-deterministic.
-/// Instead, all the introspection calls in the cycle fail with this exception.
-base class MacroIntrospectionCycleExceptionImpl extends MacroExceptionImpl
-    implements MacroIntrospectionCycleException {
-  MacroIntrospectionCycleExceptionImpl(String message,
-      {super.id, super.stackTrace})
-      : super._(message: message);
-
-  @override
-  RemoteInstanceKind get kind =>
-      RemoteInstanceKind.macroIntrospectionCycleException;
-
-  @override
-  String toString() => 'MacroIntrospectionCycleException: ${super.toString()}';
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/execute_macro.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/execute_macro.dart
deleted file mode 100644
index e544e29..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/execute_macro.dart
+++ /dev/null
@@ -1,346 +0,0 @@
-// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-
-import '../api.dart';
-import '../executor.dart';
-import 'builder_impls.dart';
-import 'exception_impls.dart';
-import 'introspection_impls.dart';
-
-/// Runs [macro] in the types phase and returns a  [MacroExecutionResult].
-Future<MacroExecutionResult> executeTypesMacro(
-    Macro macro, Object target, TypePhaseIntrospector introspector) async {
-  // Must be assigned, used for error reporting.
-  late final TypeBuilderBase builder;
-
-  // TODO(jakemac): More robust handling for unawaited async errors?
-  try {
-    // Shared code for most branches. If we do create it, assign it to
-    // `builder`.
-    late final TypeBuilderImpl typeBuilder =
-        builder = TypeBuilderImpl(introspector);
-    switch ((target, macro)) {
-      case (Library target, LibraryTypesMacro macro):
-        await macro.buildTypesForLibrary(target, typeBuilder);
-      case (ConstructorDeclaration target, ConstructorTypesMacro macro):
-        await macro.buildTypesForConstructor(target, typeBuilder);
-      case (MethodDeclaration target, MethodTypesMacro macro):
-        await macro.buildTypesForMethod(target, typeBuilder);
-      case (FunctionDeclaration target, FunctionTypesMacro macro):
-        await macro.buildTypesForFunction(target, typeBuilder);
-      case (FieldDeclaration target, FieldTypesMacro macro):
-        await macro.buildTypesForField(target, typeBuilder);
-      case (VariableDeclaration target, VariableTypesMacro macro):
-        await macro.buildTypesForVariable(target, typeBuilder);
-      case (ClassDeclaration target, ClassTypesMacro macro):
-        await macro.buildTypesForClass(
-            target,
-            builder = ClassTypeBuilderImpl(
-                target.identifier as IdentifierImpl, introspector));
-      case (EnumDeclaration target, EnumTypesMacro macro):
-        await macro.buildTypesForEnum(
-            target,
-            builder = EnumTypeBuilderImpl(
-                target.identifier as IdentifierImpl, introspector));
-      case (ExtensionDeclaration target, ExtensionTypesMacro macro):
-        await macro.buildTypesForExtension(target, typeBuilder);
-      case (ExtensionTypeDeclaration target, ExtensionTypeTypesMacro macro):
-        await macro.buildTypesForExtensionType(target, typeBuilder);
-      case (MixinDeclaration target, MixinTypesMacro macro):
-        await macro.buildTypesForMixin(
-            target,
-            builder = MixinTypeBuilderImpl(
-                target.identifier as IdentifierImpl, introspector));
-      case (EnumValueDeclaration target, EnumValueTypesMacro macro):
-        await macro.buildTypesForEnumValue(target, typeBuilder);
-      case (TypeAliasDeclaration target, TypeAliasTypesMacro macro):
-        await macro.buildTypesForTypeAlias(target, typeBuilder);
-      default:
-        throw UnsupportedError('Unsupported macro type or invalid target:\n'
-            'macro: $macro\ntarget: $target');
-    }
-  } catch (e, s) {
-    _handleError(e, s, builder);
-  }
-  return builder.result;
-}
-
-/// Runs [macro] in the declaration phase and returns a  [MacroExecutionResult].
-Future<MacroExecutionResult> executeDeclarationsMacro(Macro macro,
-    Object target, DeclarationPhaseIntrospector introspector) async {
-  // Must be assigned, used for error reporting.
-  late final DeclarationBuilderBase builder;
-
-  // At most one of these will be used below.
-  late MemberDeclarationBuilderImpl memberBuilder =
-      builder = MemberDeclarationBuilderImpl(
-          switch (target) {
-            MemberDeclaration() => target.definingType as IdentifierImpl,
-            TypeDeclarationImpl() => target.identifier,
-            _ => throw StateError(
-                'Can only create member declaration builders for types or '
-                'member declarations, but got $target'),
-          },
-          introspector);
-  late DeclarationBuilderImpl topLevelBuilder =
-      builder = DeclarationBuilderImpl(introspector);
-  late EnumDeclarationBuilderImpl enumBuilder =
-      builder = EnumDeclarationBuilderImpl(
-          switch (target) {
-            EnumDeclarationImpl() => target.identifier,
-            EnumValueDeclarationImpl() => target.definingEnum,
-            _ => throw StateError(
-                'Can only create enum declaration builders for enum or enum '
-                'value declarations, but got $target'),
-          },
-          introspector);
-
-  // TODO(jakemac): More robust handling for unawaited async errors?
-  try {
-    switch ((target, macro)) {
-      case (Library target, LibraryDeclarationsMacro macro):
-        await macro.buildDeclarationsForLibrary(target, topLevelBuilder);
-      case (ClassDeclaration target, ClassDeclarationsMacro macro):
-        await macro.buildDeclarationsForClass(target, memberBuilder);
-      case (EnumDeclaration target, EnumDeclarationsMacro macro):
-        await macro.buildDeclarationsForEnum(target, enumBuilder);
-      case (ExtensionDeclaration target, ExtensionDeclarationsMacro macro):
-        await macro.buildDeclarationsForExtension(target, memberBuilder);
-      case (
-          ExtensionTypeDeclaration target,
-          ExtensionTypeDeclarationsMacro macro
-        ):
-        await macro.buildDeclarationsForExtensionType(target, memberBuilder);
-      case (MixinDeclaration target, MixinDeclarationsMacro macro):
-        await macro.buildDeclarationsForMixin(target, memberBuilder);
-      case (EnumValueDeclaration target, EnumValueDeclarationsMacro macro):
-        await macro.buildDeclarationsForEnumValue(target, enumBuilder);
-      case (ConstructorDeclaration target, ConstructorDeclarationsMacro macro):
-        await macro.buildDeclarationsForConstructor(target, memberBuilder);
-      case (MethodDeclaration target, MethodDeclarationsMacro macro):
-        await macro.buildDeclarationsForMethod(target, memberBuilder);
-      case (FieldDeclaration target, FieldDeclarationsMacro macro):
-        await macro.buildDeclarationsForField(target, memberBuilder);
-      case (FunctionDeclaration target, FunctionDeclarationsMacro macro):
-        await macro.buildDeclarationsForFunction(target, topLevelBuilder);
-      case (VariableDeclaration target, VariableDeclarationsMacro macro):
-        await macro.buildDeclarationsForVariable(target, topLevelBuilder);
-      case (TypeAliasDeclaration target, TypeAliasDeclarationsMacro macro):
-        await macro.buildDeclarationsForTypeAlias(target, topLevelBuilder);
-      default:
-        throw UnsupportedError('Unsupported macro type or invalid target:\n'
-            'macro: $macro\ntarget: $target');
-    }
-  } catch (e, s) {
-    _handleError(e, s, builder);
-  }
-  return builder.result;
-}
-
-/// Runs [macro] in the definition phase and returns a  [MacroExecutionResult].
-Future<MacroExecutionResult> executeDefinitionMacro(Macro macro, Object target,
-    DefinitionPhaseIntrospector introspector) async {
-  // Must be assigned, used for error reporting and returning a value.
-  late final DefinitionBuilderBase builder;
-
-  // At most one of these will be used below.
-  late FunctionDefinitionBuilderImpl functionBuilder = builder =
-      FunctionDefinitionBuilderImpl(
-          target as FunctionDeclarationImpl, introspector);
-  late VariableDefinitionBuilderImpl variableBuilder = builder =
-      VariableDefinitionBuilderImpl(
-          target as VariableDeclaration, introspector);
-  late TypeDefinitionBuilderImpl typeBuilder = builder =
-      TypeDefinitionBuilderImpl(target as TypeDeclaration, introspector);
-
-  // TODO(jakemac): More robust handling for unawaited async errors?
-  try {
-    switch ((target, macro)) {
-      case (Library target, LibraryDefinitionMacro macro):
-        LibraryDefinitionBuilderImpl libraryBuilder =
-            builder = LibraryDefinitionBuilderImpl(target, introspector);
-        await macro.buildDefinitionForLibrary(target, libraryBuilder);
-      case (ClassDeclaration target, ClassDefinitionMacro macro):
-        await macro.buildDefinitionForClass(target, typeBuilder);
-      case (EnumDeclaration target, EnumDefinitionMacro macro):
-        EnumDefinitionBuilderImpl enumBuilder =
-            builder = EnumDefinitionBuilderImpl(target, introspector);
-        await macro.buildDefinitionForEnum(target, enumBuilder);
-      case (ExtensionDeclaration target, ExtensionDefinitionMacro macro):
-        await macro.buildDefinitionForExtension(target, typeBuilder);
-      case (
-          ExtensionTypeDeclaration target,
-          ExtensionTypeDefinitionMacro macro
-        ):
-        await macro.buildDefinitionForExtensionType(target, typeBuilder);
-      case (MixinDeclaration target, MixinDefinitionMacro macro):
-        await macro.buildDefinitionForMixin(target, typeBuilder);
-      case (EnumValueDeclaration target, EnumValueDefinitionMacro macro):
-        EnumValueDefinitionBuilderImpl enumValueBuilder = builder =
-            EnumValueDefinitionBuilderImpl(
-                target as EnumValueDeclarationImpl, introspector);
-        await macro.buildDefinitionForEnumValue(target, enumValueBuilder);
-      case (ConstructorDeclaration target, ConstructorDefinitionMacro macro):
-        ConstructorDefinitionBuilderImpl constructorBuilder = builder =
-            ConstructorDefinitionBuilderImpl(
-                target as ConstructorDeclarationImpl, introspector);
-        await macro.buildDefinitionForConstructor(target, constructorBuilder);
-      case (MethodDeclaration target, MethodDefinitionMacro macro):
-        await macro.buildDefinitionForMethod(
-            target as MethodDeclarationImpl, functionBuilder);
-      case (FieldDeclaration target, FieldDefinitionMacro macro):
-        await macro.buildDefinitionForField(target, variableBuilder);
-      case (FunctionDeclaration target, FunctionDefinitionMacro macro):
-        await macro.buildDefinitionForFunction(target, functionBuilder);
-      case (VariableDeclaration target, VariableDefinitionMacro macro):
-        await macro.buildDefinitionForVariable(target, variableBuilder);
-      default:
-        throw UnsupportedError('Unsupported macro type or invalid target:\n'
-            'macro: $macro\ntarget: $target');
-    }
-  } catch (e, s) {
-    _handleError(e, s, builder);
-  }
-  return builder.result;
-}
-
-/// Handles macro execution errors, specifically handling [DiagnosticException]s
-/// and [MacroException]s in the expected ways.
-///
-/// Also unwraps [ParallelWaitError]s and [AsyncError]s, such that we can
-/// recognize properly the nested errors if they are of specially handled types.
-void _handleError(
-    Object error, StackTrace stackTrace, TypeBuilderBase builder) {
-  switch (error) {
-    case ParallelWaitError(errors: List<Object?> errors):
-      _handleErrors(errors, stackTrace, builder);
-    case ParallelWaitError(errors: (var e1,)):
-      _handleErrors([e1], stackTrace, builder);
-    case ParallelWaitError(
-        errors: (
-          var e1,
-          var e2,
-        )
-      ):
-      _handleErrors([e1, e2], stackTrace, builder);
-    case ParallelWaitError(
-        errors: (
-          var e1,
-          var e2,
-          var e3,
-        )
-      ):
-      _handleErrors([e1, e2, e3], stackTrace, builder);
-    case ParallelWaitError(
-        errors: (
-          var e1,
-          var e2,
-          var e3,
-          var e4,
-        )
-      ):
-      _handleErrors([e1, e2, e3, e4], stackTrace, builder);
-    case ParallelWaitError(
-        errors: (
-          var e1,
-          var e2,
-          var e3,
-          var e4,
-          var e5,
-        )
-      ):
-      _handleErrors([e1, e2, e3, e4, e5], stackTrace, builder);
-    case ParallelWaitError(
-        errors: (
-          var e1,
-          var e2,
-          var e3,
-          var e4,
-          var e5,
-          var e6,
-        )
-      ):
-      _handleErrors([e1, e2, e3, e4, e5, e6], stackTrace, builder);
-    case ParallelWaitError(
-        errors: (
-          var e1,
-          var e2,
-          var e3,
-          var e4,
-          var e5,
-          var e6,
-          var e7,
-        )
-      ):
-      _handleErrors([e1, e2, e3, e4, e5, e6, e7], stackTrace, builder);
-    case ParallelWaitError(
-        errors: (
-          var e1,
-          var e2,
-          var e3,
-          var e4,
-          var e5,
-          var e6,
-          var e7,
-          var e8,
-        )
-      ):
-      _handleErrors([e1, e2, e3, e4, e5, e6, e7, e8], stackTrace, builder);
-    case ParallelWaitError(
-        errors: (
-          var e1,
-          var e2,
-          var e3,
-          var e4,
-          var e5,
-          var e6,
-          var e7,
-          var e8,
-          var e9,
-        )
-      ):
-      _handleErrors([e1, e2, e3, e4, e5, e6, e7, e8, e9], stackTrace, builder);
-    // Unwrap async errors.
-    case AsyncError():
-      _handleError(error.error, error.stackTrace, builder);
-    // Custom diagnostics from macros, these should just be reported.
-    case DiagnosticException():
-      builder.report(error.diagnostic);
-    // Preserve `MacroException`s thrown by SDK tools.
-    case MacroExceptionImpl():
-      builder.failWithException(error);
-    case _:
-      // Convert exceptions thrown by macro implementations into diagnostics.
-      builder.report(_unexpectedExceptionDiagnostic(error, stackTrace));
-  }
-}
-
-/// Handles a number of [errors], ignoring null values.
-///
-/// This is used for parallel wait scenarios such as [Future.wait].
-void _handleErrors(
-    List<Object?> errors, StackTrace outerStackTrace, TypeBuilderBase builder) {
-  for (var error in errors) {
-    if (error == null) continue;
-    // Passing the outerStackTrace here is the best we can do - but most of the
-    // time `error` will actually be an `AsyncError`, and we will end up using
-    // that stack trace anyways.
-    _handleError(error, outerStackTrace, builder);
-  }
-}
-
-// It's a bug in the macro but we need to show something to the user; put the
-// debug detail in a context message and suggest reporting to the author.
-Diagnostic _unexpectedExceptionDiagnostic(
-        Object thrown, StackTrace stackTrace) =>
-    Diagnostic(
-        DiagnosticMessage(
-            'Macro application failed due to a bug in the macro.'),
-        Severity.error,
-        contextMessages: [
-          DiagnosticMessage('$thrown\n$stackTrace'),
-        ],
-        correctionMessage: 'Try reporting the failure to the macro author.');
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/executor_base.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/executor_base.dart
deleted file mode 100644
index 461b95b..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/executor_base.dart
+++ /dev/null
@@ -1,346 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:isolate';
-
-import '../api.dart';
-import '../executor.dart';
-import 'exception_impls.dart';
-import 'introspection_impls.dart';
-import 'protocol.dart';
-import 'remote_instance.dart';
-import 'serialization.dart';
-import 'span.dart';
-
-/// Base implementation for macro executors which communicate with some external
-/// process to run macros.
-///
-/// Subtypes must extend this class and implement the [close] and [sendResult]
-/// apis to handle communication with the external macro program.
-abstract class ExternalMacroExecutorBase extends MacroExecutor {
-  /// The stream on which we receive messages from the external macro executor.
-  final Stream<Object> messageStream;
-
-  /// The mode to use for serialization - must be a `server` variant.
-  final SerializationMode serializationMode;
-
-  /// A map of response completers by request id.
-  final _responseCompleters = <int, Completer<Response>>{};
-
-  bool isClosed = false;
-
-  ExternalMacroExecutorBase(
-      {required this.messageStream, required this.serializationMode}) {
-    withSerializationMode(serializationMode, () {
-      messageStream.listen((message) {
-        // No need for a remote cache in this zone we only read a zone ID and
-        // then immediately run in that zone.
-        Deserializer deserializer = deserializerFactory(message);
-        // Every object starts with a zone ID which dictates the zone in which
-        // we should deserialize the message.
-        deserializer.moveNext();
-        int zoneId = deserializer.expectInt();
-        withRemoteInstanceZone(zoneId, () async {
-          deserializer.moveNext();
-          MessageType messageType =
-              MessageType.values[deserializer.expectInt()];
-          // A response to a request we sent, everything else is a request from
-          // the client.
-          if (messageType == MessageType.response) {
-            SerializableResponse response =
-                SerializableResponse.deserialize(deserializer, zoneId);
-            Completer<Response>? completer =
-                _responseCompleters.remove(response.requestId);
-            if (completer == null) {
-              throw StateError('Got a response for an unrecognized request id '
-                  '${response.requestId}');
-            }
-            completer.complete(response);
-            return;
-          }
-
-          // These are initialized in the switch below.
-          final Serializable result;
-          final MessageType resultType;
-          int? requestId;
-
-          // Initialized after the switch or in the catch handler.
-          late final SerializableResponse response;
-          try {
-            switch (messageType) {
-              case MessageType.resolveIdentifierRequest:
-                ResolveIdentifierRequest request =
-                    ResolveIdentifierRequest.deserialize(deserializer, zoneId);
-                requestId = request.id;
-                result = await (request.introspector.instance
-                            as TypePhaseIntrospector)
-                        // ignore: deprecated_member_use_from_same_package
-                        .resolveIdentifier(request.library, request.name)
-                    as IdentifierImpl;
-                resultType = MessageType.remoteInstance;
-              case MessageType.resolveTypeRequest:
-                ResolveTypeRequest request =
-                    ResolveTypeRequest.deserialize(deserializer, zoneId);
-                requestId = request.id;
-                StaticType instance = await (request.introspector.instance
-                        as DeclarationPhaseIntrospector)
-                    .resolve(request.typeAnnotationCode);
-                result = RemoteInstanceImpl(
-                    id: RemoteInstance.uniqueId,
-                    instance: instance,
-                    kind: instance is NamedStaticType
-                        ? RemoteInstanceKind.namedStaticType
-                        : RemoteInstanceKind.staticType);
-                resultType = instance is NamedStaticType
-                    ? MessageType.namedStaticType
-                    : MessageType.staticType;
-              case MessageType.inferTypeRequest:
-                InferTypeRequest request =
-                    InferTypeRequest.deserialize(deserializer, zoneId);
-                requestId = request.id;
-                result = await (request.introspector.instance
-                        as DefinitionPhaseIntrospector)
-                    .inferType(request.omittedType) as TypeAnnotationImpl;
-                resultType = MessageType.remoteInstance;
-              case MessageType.isExactlyTypeRequest:
-                IsExactlyTypeRequest request =
-                    IsExactlyTypeRequest.deserialize(deserializer, zoneId);
-                requestId = request.id;
-                StaticType leftType = request.leftType.instance as StaticType;
-                StaticType rightType = request.rightType.instance as StaticType;
-                result = BooleanValue(await leftType.isExactly(rightType));
-                resultType = MessageType.boolean;
-              case MessageType.isSubtypeOfRequest:
-                IsSubtypeOfRequest request =
-                    IsSubtypeOfRequest.deserialize(deserializer, zoneId);
-                requestId = request.id;
-                StaticType leftType = request.leftType.instance as StaticType;
-                StaticType rightType = request.rightType.instance as StaticType;
-                result = BooleanValue(await leftType.isSubtypeOf(rightType));
-                resultType = MessageType.boolean;
-              case MessageType.declarationOfRequest:
-                DeclarationOfRequest request = DeclarationOfRequest.deserialize(
-                    deserializer, zoneId, messageType);
-                requestId = request.id;
-                DefinitionPhaseIntrospector introspector = request
-                    .introspector.instance as DefinitionPhaseIntrospector;
-                result = (await introspector.declarationOf(request.identifier))
-                    // TODO: Consider refactoring to avoid the need for
-                    //  this cast.
-                    as Serializable;
-                resultType = MessageType.remoteInstance;
-              case MessageType.typeDeclarationOfRequest:
-                DeclarationOfRequest request = DeclarationOfRequest.deserialize(
-                    deserializer, zoneId, messageType);
-                requestId = request.id;
-                DeclarationPhaseIntrospector introspector = request
-                    .introspector.instance as DeclarationPhaseIntrospector;
-                result =
-                    (await introspector.typeDeclarationOf(request.identifier))
-                        // TODO: Consider refactoring to avoid the need for
-                        //  this cast.
-                        as Serializable;
-                resultType = MessageType.remoteInstance;
-              case MessageType.constructorsOfRequest:
-                TypeIntrospectorRequest request =
-                    TypeIntrospectorRequest.deserialize(
-                        deserializer, messageType, zoneId);
-                requestId = request.id;
-                DeclarationPhaseIntrospector introspector = request
-                    .introspector.instance as DeclarationPhaseIntrospector;
-                result = DeclarationList((await introspector
-                        .constructorsOf(request.declaration as TypeDeclaration))
-                    // TODO: Consider refactoring to avoid the need for this.
-                    .cast<ConstructorDeclarationImpl>());
-                resultType = MessageType.declarationList;
-              case MessageType.topLevelDeclarationsOfRequest:
-                DeclarationsOfRequest request =
-                    DeclarationsOfRequest.deserialize(deserializer, zoneId);
-                requestId = request.id;
-                DefinitionPhaseIntrospector introspector = request
-                    .introspector.instance as DefinitionPhaseIntrospector;
-                result = DeclarationList(// force newline
-                    (await introspector.topLevelDeclarationsOf(request.library))
-                        // TODO: Consider refactoring to avoid the need for
-                        // this.
-                        .cast<DeclarationImpl>());
-                resultType = MessageType.declarationList;
-              case MessageType.fieldsOfRequest:
-                TypeIntrospectorRequest request =
-                    TypeIntrospectorRequest.deserialize(
-                        deserializer, messageType, zoneId);
-                requestId = request.id;
-                DeclarationPhaseIntrospector introspector = request
-                    .introspector.instance as DeclarationPhaseIntrospector;
-                result = DeclarationList((await introspector
-                        .fieldsOf(request.declaration as TypeDeclaration))
-                    // TODO: Consider refactoring to avoid the need for this.
-                    .cast<FieldDeclarationImpl>());
-                resultType = MessageType.declarationList;
-              case MessageType.methodsOfRequest:
-                TypeIntrospectorRequest request =
-                    TypeIntrospectorRequest.deserialize(
-                        deserializer, messageType, zoneId);
-                requestId = request.id;
-                DeclarationPhaseIntrospector introspector = request
-                    .introspector.instance as DeclarationPhaseIntrospector;
-                result = DeclarationList((await introspector
-                        .methodsOf(request.declaration as TypeDeclaration))
-                    // TODO: Consider refactoring to avoid the need for this.
-                    .cast<MethodDeclarationImpl>());
-                resultType = MessageType.declarationList;
-              case MessageType.typesOfRequest:
-                TypeIntrospectorRequest request =
-                    TypeIntrospectorRequest.deserialize(
-                        deserializer, messageType, zoneId);
-                requestId = request.id;
-                DeclarationPhaseIntrospector introspector = request
-                    .introspector.instance as DeclarationPhaseIntrospector;
-                result = DeclarationList((await introspector
-                        .typesOf(request.declaration as Library))
-                    // TODO: Consider refactoring to avoid the need for this.
-                    .cast<TypeDeclarationImpl>());
-                resultType = MessageType.declarationList;
-              case MessageType.valuesOfRequest:
-                TypeIntrospectorRequest request =
-                    TypeIntrospectorRequest.deserialize(
-                        deserializer, messageType, zoneId);
-                requestId = request.id;
-                DeclarationPhaseIntrospector introspector = request
-                    .introspector.instance as DeclarationPhaseIntrospector;
-                result = DeclarationList((await introspector
-                        .valuesOf(request.declaration as EnumDeclaration))
-                    // TODO: Consider refactoring to avoid the need for this.
-                    .cast<EnumValueDeclarationImpl>());
-                resultType = MessageType.declarationList;
-              default:
-                throw StateError('Unexpected message type $messageType');
-            }
-            response = SerializableResponse(
-                response: result,
-                requestId: requestId,
-                responseType: resultType,
-                serializationZoneId: zoneId);
-          } catch (error, stackTrace) {
-            // TODO: Something better here.
-            if (requestId == null) rethrow;
-            response = SerializableResponse(
-                exception: MacroExceptionImpl.from(error, stackTrace),
-                requestId: requestId,
-                responseType: MessageType.exception,
-                serializationZoneId: zoneId);
-          }
-          Serializer serializer = serializerFactory();
-          response.serialize(serializer);
-          sendResult(serializer);
-        });
-      });
-    });
-  }
-
-  /// These calls are handled by the higher level executor.
-  @override
-  String buildAugmentationLibrary(
-          Uri augmentedLibraryUri,
-          Iterable<MacroExecutionResult> macroResults,
-          TypeDeclaration Function(Identifier) resolveDeclaration,
-          ResolvedIdentifier Function(Identifier) resolveIdentifier,
-          TypeAnnotation? Function(OmittedTypeAnnotation) inferOmittedType,
-          {Map<OmittedTypeAnnotation, String>? omittedTypes,
-          List<Span>? spans}) =>
-      throw StateError('Unreachable');
-
-  @override
-  Future<MacroExecutionResult> executeDeclarationsPhase(
-          MacroInstanceIdentifier macro,
-          MacroTarget target,
-          DeclarationPhaseIntrospector introspector) =>
-      _sendRequest((zoneId) => ExecuteDeclarationsPhaseRequest(
-          macro,
-          target as RemoteInstance,
-          RemoteInstanceImpl(
-              instance: introspector,
-              id: RemoteInstance.uniqueId,
-              kind: RemoteInstanceKind.declarationPhaseIntrospector),
-          serializationZoneId: zoneId));
-
-  @override
-  Future<MacroExecutionResult> executeDefinitionsPhase(
-          MacroInstanceIdentifier macro,
-          MacroTarget target,
-          DefinitionPhaseIntrospector introspector) =>
-      _sendRequest((zoneId) => ExecuteDefinitionsPhaseRequest(
-          macro,
-          target as RemoteInstance,
-          RemoteInstanceImpl(
-              instance: introspector,
-              id: RemoteInstance.uniqueId,
-              kind: RemoteInstanceKind.definitionPhaseIntrospector),
-          serializationZoneId: zoneId));
-
-  @override
-  Future<MacroExecutionResult> executeTypesPhase(MacroInstanceIdentifier macro,
-          MacroTarget target, TypePhaseIntrospector introspector) =>
-      _sendRequest((zoneId) => ExecuteTypesPhaseRequest(
-          macro,
-          target as RemoteInstance,
-          RemoteInstanceImpl(
-              instance: introspector,
-              id: RemoteInstance.uniqueId,
-              kind: RemoteInstanceKind.typePhaseIntrospector),
-          serializationZoneId: zoneId));
-
-  @override
-  Future<MacroInstanceIdentifier> instantiateMacro(
-          Uri library, String name, String constructor, Arguments arguments) =>
-      _sendRequest((zoneId) => InstantiateMacroRequest(
-          library, name, constructor, arguments, RemoteInstance.uniqueId,
-          serializationZoneId: zoneId));
-
-  @override
-  void disposeMacro(MacroInstanceIdentifier instance) => _sendRequest(
-      (zoneId) => DisposeMacroRequest(instance, serializationZoneId: zoneId));
-
-  /// Sends [serializer.result] to [sendPort], possibly wrapping it in a
-  /// [TransferableTypedData] object.
-  void sendResult(Serializer serializer);
-
-  /// Creates a [Request] with a given serialization zone ID, and handles the
-  /// response, casting it to the expected type or throwing the error provided.
-  Future<T> _sendRequest<T>(Request Function(int) requestFactory) {
-    if (isClosed) {
-      throw UnexpectedMacroExceptionImpl(
-          "Can't send request - $runtimeType is closed!");
-    }
-    return withSerializationMode(serializationMode, () {
-      final int zoneId = newRemoteInstanceZone();
-      return withRemoteInstanceZone(zoneId, () async {
-        Request request = requestFactory(zoneId);
-        Serializer serializer = serializerFactory();
-        // It is our responsibility to add the zone ID header.
-        serializer.addInt(zoneId);
-        request.serialize(serializer);
-        sendResult(serializer);
-        Completer<Response> completer = Completer<Response>();
-        _responseCompleters[request.id] = completer;
-        try {
-          Response response = await completer.future;
-          T? result = response.response as T?;
-          if (result != null) return result;
-          throw response.exception!;
-        } finally {
-          // Clean up the zone after the request is done.
-          destroyRemoteInstanceZone(zoneId);
-          // Tell the remote client to clean it up as well.
-          Serializer serializer = serializerFactory();
-          serializer.addInt(zoneId);
-          DestroyRemoteInstanceZoneRequest(serializationZoneId: zoneId)
-              .serialize(serializer);
-          sendResult(serializer);
-        }
-      });
-    });
-  }
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/introspection_impls.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/introspection_impls.dart
deleted file mode 100644
index 4f472db..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/introspection_impls.dart
+++ /dev/null
@@ -1,1359 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import '../api.dart';
-import 'remote_instance.dart';
-import 'serialization.dart';
-import 'serialization_extensions.dart';
-
-class IdentifierImpl extends RemoteInstance implements Identifier {
-  @override
-  final String name;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.identifier;
-
-  IdentifierImpl({required int id, required this.name}) : super(id);
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    serializer.addString(name);
-  }
-
-  @override
-  bool operator ==(Object other) => other is IdentifierImpl && other.id == id;
-
-  @override
-  int get hashCode => id;
-}
-
-abstract class TypeAnnotationImpl extends RemoteInstance
-    implements TypeAnnotation {
-  @override
-  final bool isNullable;
-
-  TypeAnnotationImpl({required int id, required this.isNullable}) : super(id);
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    serializer.addBool(isNullable);
-  }
-}
-
-class NamedTypeAnnotationImpl extends TypeAnnotationImpl
-    implements NamedTypeAnnotation {
-  @override
-  TypeAnnotationCode get code {
-    NamedTypeAnnotationCode underlyingType =
-        NamedTypeAnnotationCode(name: identifier, typeArguments: [
-      for (TypeAnnotation typeArg in typeArguments) typeArg.code,
-    ]);
-    return isNullable ? underlyingType.asNullable : underlyingType;
-  }
-
-  @override
-  final IdentifierImpl identifier;
-
-  @override
-  final List<TypeAnnotationImpl> typeArguments;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.namedTypeAnnotation;
-
-  NamedTypeAnnotationImpl({
-    required super.id,
-    required super.isNullable,
-    required this.identifier,
-    required this.typeArguments,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    identifier.serialize(serializer);
-    serializer.startList();
-    for (TypeAnnotationImpl typeArg in typeArguments) {
-      typeArg.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-class RecordTypeAnnotationImpl extends TypeAnnotationImpl
-    implements RecordTypeAnnotation {
-  @override
-  TypeAnnotationCode get code {
-    RecordTypeAnnotationCode underlyingType = RecordTypeAnnotationCode(
-      namedFields: [for (RecordFieldImpl field in namedFields) field.code],
-      positionalFields: [
-        for (RecordFieldImpl field in positionalFields) field.code
-      ],
-    );
-    return isNullable ? underlyingType.asNullable : underlyingType;
-  }
-
-  @override
-  final List<RecordFieldImpl> namedFields;
-
-  @override
-  final List<RecordFieldImpl> positionalFields;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.recordTypeAnnotation;
-
-  RecordTypeAnnotationImpl({
-    required super.id,
-    required super.isNullable,
-    required this.namedFields,
-    required this.positionalFields,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    serializer.startList();
-    for (RecordFieldImpl field in namedFields) {
-      field.serialize(serializer);
-    }
-    serializer.endList();
-
-    serializer.startList();
-    for (RecordFieldImpl field in positionalFields) {
-      field.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-class RecordFieldImpl extends RemoteInstance implements RecordField {
-  @override
-  RecordFieldCode get code {
-    return RecordFieldCode(type: type.code, name: name);
-  }
-
-  @override
-  final String? name;
-
-  @override
-  final TypeAnnotationImpl type;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.recordField;
-
-  RecordFieldImpl({
-    required int id,
-    required this.name,
-    required this.type,
-  }) : super(id);
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    serializer.addNullableString(name);
-    type.serialize(serializer);
-  }
-}
-
-class FunctionTypeAnnotationImpl extends TypeAnnotationImpl
-    implements FunctionTypeAnnotation {
-  @override
-  TypeAnnotationCode get code {
-    FunctionTypeAnnotationCode underlyingType = FunctionTypeAnnotationCode(
-      returnType: returnType.code,
-      typeParameters: [
-        for (TypeParameter typeParam in typeParameters) typeParam.code,
-      ],
-      positionalParameters: [
-        for (FormalParameter positional in positionalParameters)
-          if (positional.isRequired) positional.code,
-      ],
-      optionalPositionalParameters: [
-        for (FormalParameter positional in positionalParameters)
-          if (!positional.isRequired) positional.code,
-      ],
-      namedParameters: [
-        for (FormalParameter named in namedParameters) named.code,
-      ],
-    );
-    return isNullable ? underlyingType.asNullable : underlyingType;
-  }
-
-  @override
-  final List<FormalParameterImpl> namedParameters;
-
-  @override
-  final List<FormalParameterImpl> positionalParameters;
-
-  @override
-  final TypeAnnotationImpl returnType;
-
-  @override
-  final List<TypeParameterImpl> typeParameters;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.functionTypeAnnotation;
-
-  FunctionTypeAnnotationImpl({
-    required super.id,
-    required super.isNullable,
-    required this.namedParameters,
-    required this.positionalParameters,
-    required this.returnType,
-    required this.typeParameters,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    returnType.serialize(serializer);
-
-    serializer.startList();
-    for (FormalParameterImpl param in positionalParameters) {
-      param.serialize(serializer);
-    }
-    serializer.endList();
-
-    serializer.startList();
-    for (FormalParameterImpl param in namedParameters) {
-      param.serialize(serializer);
-    }
-    serializer.endList();
-
-    serializer.startList();
-    for (TypeParameterImpl typeParam in typeParameters) {
-      typeParam.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-class OmittedTypeAnnotationImpl extends TypeAnnotationImpl
-    implements OmittedTypeAnnotation {
-  OmittedTypeAnnotationImpl({required super.id}) : super(isNullable: false);
-
-  @override
-  TypeAnnotationCode get code => OmittedTypeAnnotationCode(this);
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.omittedTypeAnnotation;
-}
-
-abstract class MetadataAnnotationImpl extends RemoteInstance
-    implements MetadataAnnotation {
-  MetadataAnnotationImpl(super.id);
-}
-
-class IdentifierMetadataAnnotationImpl extends MetadataAnnotationImpl
-    implements IdentifierMetadataAnnotation {
-  @override
-  final IdentifierImpl identifier;
-
-  @override
-  RemoteInstanceKind get kind =>
-      RemoteInstanceKind.identifierMetadataAnnotation;
-
-  IdentifierMetadataAnnotationImpl({required int id, required this.identifier})
-      : super(id);
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    identifier.serialize(serializer);
-  }
-}
-
-class ConstructorMetadataAnnotationImpl extends MetadataAnnotationImpl
-    implements ConstructorMetadataAnnotation {
-  @override
-  final IdentifierImpl constructor;
-
-  @override
-  final NamedTypeAnnotationImpl type;
-
-  @override
-  final List<ExpressionCode> positionalArguments;
-
-  @override
-  final Map<String, ExpressionCode> namedArguments;
-
-  @override
-  RemoteInstanceKind get kind =>
-      RemoteInstanceKind.constructorMetadataAnnotation;
-
-  ConstructorMetadataAnnotationImpl(
-      {required int id,
-      required this.constructor,
-      required this.type,
-      required this.positionalArguments,
-      required this.namedArguments})
-      : super(id);
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    constructor.serialize(serializer);
-    type.serialize(serializer);
-    serializer.startList();
-    for (ExpressionCode positionalArgument in positionalArguments) {
-      positionalArgument.serialize(serializer);
-    }
-    serializer.endList();
-    serializer.startList();
-    for (MapEntry<String, ExpressionCode> entry in namedArguments.entries) {
-      serializer.addString(entry.key);
-      entry.value.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-abstract class DeclarationImpl extends RemoteInstance implements Declaration {
-  @override
-  final IdentifierImpl identifier;
-
-  @override
-  final LibraryImpl library;
-
-  @override
-  final List<MetadataAnnotationImpl> metadata;
-
-  DeclarationImpl({
-    required int id,
-    required this.identifier,
-    required this.library,
-    required this.metadata,
-  }) : super(id);
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    identifier.serialize(serializer);
-    library.serialize(serializer);
-    serializer.startList();
-    for (MetadataAnnotationImpl annotation in metadata) {
-      annotation.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-class FormalParameterDeclarationImpl extends DeclarationImpl
-    implements FormalParameterDeclaration {
-  @override
-  final TypeAnnotationImpl type;
-
-  @override
-  final bool isNamed;
-
-  @override
-  final bool isRequired;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.formalParameterDeclaration;
-
-  @override
-  String get name => identifier.name;
-
-  FormalParameterDeclarationImpl({
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    required this.isNamed,
-    required this.isRequired,
-    required this.type,
-  });
-
-  FormalParameterDeclarationImpl.fromBitMask({
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    required BitMask<ParameterIntrospectionBit> bitMask,
-    required this.type,
-  })  : isNamed = bitMask.has(ParameterIntrospectionBit.isNamed),
-        isRequired = bitMask.has(ParameterIntrospectionBit.isRequired);
-
-  /// If subclasses have their own values to add to [bitMask], they must do so
-  /// before calling this function, and pass the mask here.
-  @override
-  void serializeUncached(Serializer serializer,
-      {BitMask<ParameterIntrospectionBit>? bitMask}) {
-    super.serializeUncached(serializer);
-
-    bitMask ??= BitMask();
-    if (isNamed) bitMask.add(ParameterIntrospectionBit.isNamed);
-    if (isRequired) bitMask.add(ParameterIntrospectionBit.isRequired);
-    bitMask.freeze();
-    serializer.addInt(bitMask._mask);
-    type.serialize(serializer);
-  }
-
-  @override
-  ParameterCode get code =>
-      ParameterCode(name: identifier.name, type: type.code, keywords: [
-        if (isNamed && isRequired) 'required',
-      ]);
-}
-
-class FormalParameterImpl extends RemoteInstance implements FormalParameter {
-  @override
-  final bool isNamed;
-
-  @override
-  final bool isRequired;
-
-  @override
-  final List<MetadataAnnotationImpl> metadata;
-
-  @override
-  final String? name;
-
-  @override
-  final TypeAnnotationImpl type;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.formalParameter;
-
-  FormalParameterImpl({
-    required int id,
-    required this.isNamed,
-    required this.isRequired,
-    required this.metadata,
-    required this.name,
-    required this.type,
-  }) : super(id);
-
-  FormalParameterImpl.fromBitMask({
-    required int id,
-    required BitMask<ParameterIntrospectionBit> bitMask,
-    required this.metadata,
-    required this.name,
-    required this.type,
-  })  : isNamed = bitMask.has(ParameterIntrospectionBit.isNamed),
-        isRequired = bitMask.has(ParameterIntrospectionBit.isRequired),
-        super(id);
-
-  /// If subclasses have their own values to add to [bitMask], they must do so
-  /// before calling this function, and pass the mask here.
-  @override
-  void serializeUncached(Serializer serializer,
-      {BitMask<ParameterIntrospectionBit>? bitMask}) {
-    super.serializeUncached(serializer);
-
-    bitMask ??= BitMask();
-    if (isNamed) bitMask.add(ParameterIntrospectionBit.isNamed);
-    if (isRequired) bitMask.add(ParameterIntrospectionBit.isRequired);
-    bitMask.freeze();
-    serializer
-      ..addInt(bitMask._mask)
-      ..startList();
-    for (MetadataAnnotationImpl annotation in metadata) {
-      annotation.serialize(serializer);
-    }
-    serializer.endList();
-    serializer.addNullableString(name);
-    type.serialize(serializer);
-  }
-
-  @override
-  ParameterCode get code =>
-      ParameterCode(name: name, type: type.code, keywords: [
-        if (isNamed && isRequired) 'required',
-      ]);
-}
-
-class TypeParameterImpl extends RemoteInstance implements TypeParameter {
-  @override
-  final TypeAnnotationImpl? bound;
-
-  @override
-  final List<MetadataAnnotationImpl> metadata;
-
-  @override
-  final String name;
-
-  @override
-  TypeParameterCode get code =>
-      TypeParameterCode(name: name, bound: bound?.code);
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.typeParameter;
-
-  TypeParameterImpl({
-    required int id,
-    required this.bound,
-    required this.metadata,
-    required this.name,
-  }) : super(id);
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    bound.serializeNullable(serializer);
-    serializer.startList();
-    for (MetadataAnnotationImpl annotation in metadata) {
-      annotation.serialize(serializer);
-    }
-    serializer.endList();
-    serializer.addString(name);
-  }
-}
-
-class TypeParameterDeclarationImpl extends DeclarationImpl
-    implements TypeParameterDeclaration {
-  @override
-  final TypeAnnotationImpl? bound;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.typeParameterDeclaration;
-
-  @override
-  String get name => identifier.name;
-
-  TypeParameterDeclarationImpl({
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    required this.bound,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    bound.serializeNullable(serializer);
-  }
-
-  @override
-  TypeParameterCode get code =>
-      TypeParameterCode(name: identifier.name, bound: bound?.code);
-}
-
-class FunctionDeclarationImpl extends DeclarationImpl
-    implements FunctionDeclaration {
-  @override
-  final bool hasBody;
-
-  @override
-  final bool hasExternal;
-
-  @override
-  final bool isGetter;
-
-  @override
-  final bool isOperator;
-
-  @override
-  final bool isSetter;
-
-  @override
-  final List<FormalParameterDeclarationImpl> namedParameters;
-
-  @override
-  final List<FormalParameterDeclarationImpl> positionalParameters;
-
-  @override
-  final TypeAnnotationImpl returnType;
-
-  @override
-  final List<TypeParameterDeclarationImpl> typeParameters;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.functionDeclaration;
-
-  FunctionDeclarationImpl({
-    // Declaration fields
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // FunctionDeclaration fields
-    required this.hasBody,
-    required this.hasExternal,
-    required this.isGetter,
-    required this.isOperator,
-    required this.isSetter,
-    required this.namedParameters,
-    required this.positionalParameters,
-    required this.returnType,
-    required this.typeParameters,
-  });
-
-  FunctionDeclarationImpl.fromBitMask({
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    required BitMask<FunctionIntrospectionBit> bitMask,
-    required this.namedParameters,
-    required this.positionalParameters,
-    required this.returnType,
-    required this.typeParameters,
-  })  : hasBody = bitMask.has(FunctionIntrospectionBit.hasBody),
-        hasExternal = bitMask.has(FunctionIntrospectionBit.hasExternal),
-        isGetter = bitMask.has(FunctionIntrospectionBit.isGetter),
-        isOperator = bitMask.has(FunctionIntrospectionBit.isOperator),
-        isSetter = bitMask.has(FunctionIntrospectionBit.isSetter);
-
-  /// If subclasses have their own values to add to [bitMask], they must do so
-  /// before calling this function, and pass the mask here.
-  @override
-  void serializeUncached(Serializer serializer,
-      {BitMask<FunctionIntrospectionBit>? bitMask}) {
-    super.serializeUncached(serializer);
-
-    bitMask ??= BitMask();
-    if (hasBody) bitMask.add(FunctionIntrospectionBit.hasBody);
-    if (hasExternal) bitMask.add(FunctionIntrospectionBit.hasExternal);
-    if (isGetter) bitMask.add(FunctionIntrospectionBit.isGetter);
-    if (isOperator) bitMask.add(FunctionIntrospectionBit.isOperator);
-    if (isSetter) bitMask.add(FunctionIntrospectionBit.isSetter);
-    bitMask.freeze();
-    serializer
-      ..addInt(bitMask._mask)
-      ..startList();
-    for (FormalParameterDeclarationImpl named in namedParameters) {
-      named.serialize(serializer);
-    }
-    serializer
-      ..endList()
-      ..startList();
-    for (FormalParameterDeclarationImpl positional in positionalParameters) {
-      positional.serialize(serializer);
-    }
-    serializer.endList();
-    returnType.serialize(serializer);
-    serializer.startList();
-    for (TypeParameterDeclarationImpl param in typeParameters) {
-      param.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-class MethodDeclarationImpl extends FunctionDeclarationImpl
-    implements MethodDeclaration {
-  @override
-  final IdentifierImpl definingType;
-
-  @override
-  final bool hasStatic;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.methodDeclaration;
-
-  MethodDeclarationImpl({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // Function fields.
-    required super.hasBody,
-    required super.hasExternal,
-    required super.isGetter,
-    required super.isOperator,
-    required super.isSetter,
-    required super.namedParameters,
-    required super.positionalParameters,
-    required super.returnType,
-    required super.typeParameters,
-    // Method fields.
-    required this.definingType,
-    required this.hasStatic,
-  });
-
-  MethodDeclarationImpl.fromBitMask({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // Function fields.
-    required super.bitMask,
-    required super.namedParameters,
-    required super.positionalParameters,
-    required super.returnType,
-    required super.typeParameters,
-    // Method fields.
-    required this.definingType,
-  })  : hasStatic = bitMask.has(FunctionIntrospectionBit.hasStatic),
-        super.fromBitMask();
-
-  /// If subclasses have their own values to add to [bitMask], they must do so
-  /// before calling this function, and pass the mask here.
-  @override
-  void serializeUncached(Serializer serializer,
-      {BitMask<FunctionIntrospectionBit>? bitMask}) {
-    bitMask ??= BitMask();
-    if (hasStatic) bitMask.add(FunctionIntrospectionBit.hasStatic);
-    super.serializeUncached(serializer, bitMask: bitMask);
-
-    definingType.serialize(serializer);
-  }
-}
-
-class ConstructorDeclarationImpl extends MethodDeclarationImpl
-    implements ConstructorDeclaration {
-  @override
-  final bool isFactory;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.constructorDeclaration;
-
-  ConstructorDeclarationImpl({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // Function fields.
-    required super.hasBody,
-    required super.hasExternal,
-    required super.namedParameters,
-    required super.positionalParameters,
-    required super.returnType,
-    required super.typeParameters,
-    // Method fields.
-    required super.definingType,
-    // Constructor fields.
-    required this.isFactory,
-  }) : super(
-          isGetter: false,
-          isOperator: false,
-          isSetter: false,
-          hasStatic: true,
-        );
-
-  ConstructorDeclarationImpl.fromBitMask({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // Function fields.
-    required super.bitMask,
-    required super.namedParameters,
-    required super.positionalParameters,
-    required super.returnType,
-    required super.typeParameters,
-    // Method fields.
-    required super.definingType,
-  })  : isFactory = bitMask.has(FunctionIntrospectionBit.isFactory),
-        super.fromBitMask();
-
-  /// If subclasses have their own values to add to [bitMask], they must do so
-  /// before calling this function, and pass the mask here.
-  @override
-  void serializeUncached(Serializer serializer,
-      {BitMask<FunctionIntrospectionBit>? bitMask}) {
-    bitMask ??= BitMask();
-    if (isFactory) bitMask.add(FunctionIntrospectionBit.isFactory);
-    super.serializeUncached(serializer, bitMask: bitMask);
-  }
-}
-
-class VariableDeclarationImpl extends DeclarationImpl
-    implements VariableDeclaration {
-  @override
-  final bool hasConst;
-
-  @override
-  final bool hasExternal;
-
-  @override
-  final bool hasFinal;
-
-  @override
-  final bool hasInitializer;
-
-  @override
-  final bool hasLate;
-
-  @override
-  final TypeAnnotationImpl type;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.variableDeclaration;
-
-  VariableDeclarationImpl({
-    // Declaration fields
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // Variable fields
-    required this.hasConst,
-    required this.hasExternal,
-    required this.hasFinal,
-    required this.hasInitializer,
-    required this.hasLate,
-    required this.type,
-  });
-
-  VariableDeclarationImpl.fromBitMask({
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    required BitMask<VariableIntrospectionBit> bitMask,
-    required this.type,
-  })  : hasConst = bitMask.has(VariableIntrospectionBit.hasConst),
-        hasExternal = bitMask.has(VariableIntrospectionBit.hasExternal),
-        hasFinal = bitMask.has(VariableIntrospectionBit.hasFinal),
-        hasInitializer = bitMask.has(VariableIntrospectionBit.hasInitializer),
-        hasLate = bitMask.has(VariableIntrospectionBit.hasLate);
-
-  /// If subclasses have their own values to add to [bitMask], they must do so
-  /// before calling this function, and pass the mask here.
-  @override
-  void serializeUncached(Serializer serializer,
-      {BitMask<VariableIntrospectionBit>? bitMask}) {
-    super.serializeUncached(serializer);
-
-    bitMask ??= BitMask();
-    if (hasConst) bitMask.add(VariableIntrospectionBit.hasConst);
-    if (hasExternal) bitMask.add(VariableIntrospectionBit.hasExternal);
-    if (hasFinal) bitMask.add(VariableIntrospectionBit.hasFinal);
-    if (hasInitializer) bitMask.add(VariableIntrospectionBit.hasInitializer);
-    if (hasLate) bitMask.add(VariableIntrospectionBit.hasLate);
-    bitMask.freeze();
-    serializer.addInt(bitMask._mask);
-    type.serialize(serializer);
-  }
-}
-
-class FieldDeclarationImpl extends VariableDeclarationImpl
-    implements FieldDeclaration {
-  @override
-  final IdentifierImpl definingType;
-
-  @override
-  final bool hasAbstract;
-
-  @override
-  final bool hasStatic;
-
-  FieldDeclarationImpl({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // Variable fields.
-    required super.hasConst,
-    required super.hasExternal,
-    required super.hasFinal,
-    required super.hasInitializer,
-    required super.hasLate,
-    required super.type,
-    // Field fields.
-    required this.definingType,
-    required this.hasAbstract,
-    required this.hasStatic,
-  });
-
-  FieldDeclarationImpl.fromBitMask({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // Variable fields.
-    required super.bitMask,
-    required super.type,
-    // Field fields.
-    required this.definingType,
-  })  : hasAbstract = bitMask.has(VariableIntrospectionBit.hasAbstract),
-        hasStatic = bitMask.has(VariableIntrospectionBit.hasStatic),
-        super.fromBitMask();
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.fieldDeclaration;
-
-  /// If subclasses have their own values to add to [bitMask], they must do so
-  /// before calling this function, and pass the mask here.
-  @override
-  void serializeUncached(Serializer serializer,
-      {BitMask<VariableIntrospectionBit>? bitMask}) {
-    bitMask ??= BitMask();
-    if (hasAbstract) bitMask.add(VariableIntrospectionBit.hasAbstract);
-    if (hasStatic) bitMask.add(VariableIntrospectionBit.hasStatic);
-    super.serializeUncached(serializer, bitMask: bitMask);
-
-    definingType.serialize(serializer);
-  }
-}
-
-abstract interface class TypeDeclarationImpl
-    implements DeclarationImpl, TypeDeclaration {}
-
-abstract class ParameterizedTypeDeclarationImpl extends DeclarationImpl
-    implements ParameterizedTypeDeclaration, TypeDeclarationImpl {
-  @override
-  final List<TypeParameterDeclarationImpl> typeParameters;
-
-  ParameterizedTypeDeclarationImpl({
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    required this.typeParameters,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    serializer.startList();
-    for (TypeParameterDeclarationImpl param in typeParameters) {
-      param.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-class ClassDeclarationImpl extends ParameterizedTypeDeclarationImpl
-    implements ClassDeclaration {
-  @override
-  final bool hasAbstract;
-
-  @override
-  final bool hasBase;
-
-  @override
-  final bool hasExternal;
-
-  @override
-  final bool hasFinal;
-
-  @override
-  final bool hasInterface;
-
-  @override
-  final bool hasMixin;
-
-  @override
-  final bool hasSealed;
-
-  @override
-  final List<NamedTypeAnnotationImpl> interfaces;
-
-  @override
-  final List<NamedTypeAnnotationImpl> mixins;
-
-  @override
-  final NamedTypeAnnotationImpl? superclass;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.classDeclaration;
-
-  ClassDeclarationImpl({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // TypeDeclaration fields.
-    required super.typeParameters,
-    // ClassDeclaration fields.
-    required this.hasAbstract,
-    required this.hasBase,
-    required this.hasExternal,
-    required this.hasFinal,
-    required this.hasInterface,
-    required this.hasMixin,
-    required this.hasSealed,
-    required this.interfaces,
-    required this.mixins,
-    required this.superclass,
-  });
-
-  ClassDeclarationImpl.fromBitMask({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // TypeDeclaration fields.
-    required super.typeParameters,
-    // ClassDeclaration fields.
-    required BitMask<ClassIntrospectionBit> bitMask,
-    required this.interfaces,
-    required this.mixins,
-    required this.superclass,
-  })  : hasAbstract = bitMask.has(ClassIntrospectionBit.hasAbstract),
-        hasBase = bitMask.has(ClassIntrospectionBit.hasBase),
-        hasExternal = bitMask.has(ClassIntrospectionBit.hasExternal),
-        hasFinal = bitMask.has(ClassIntrospectionBit.hasFinal),
-        hasInterface = bitMask.has(ClassIntrospectionBit.hasInterface),
-        hasMixin = bitMask.has(ClassIntrospectionBit.hasMixin),
-        hasSealed = bitMask.has(ClassIntrospectionBit.hasSealed);
-
-  /// If subclasses have their own values to add to [bitMask], they must do so
-  /// before calling this function, and pass the mask here.
-  @override
-  void serializeUncached(Serializer serializer, {BitMask? bitMask}) {
-    super.serializeUncached(serializer);
-
-    bitMask ??= BitMask();
-    if (hasAbstract) bitMask.add(ClassIntrospectionBit.hasAbstract);
-    if (hasBase) bitMask.add(ClassIntrospectionBit.hasBase);
-    if (hasExternal) bitMask.add(ClassIntrospectionBit.hasExternal);
-    if (hasFinal) bitMask.add(ClassIntrospectionBit.hasFinal);
-    if (hasInterface) bitMask.add(ClassIntrospectionBit.hasInterface);
-    if (hasMixin) bitMask.add(ClassIntrospectionBit.hasMixin);
-    if (hasSealed) bitMask.add(ClassIntrospectionBit.hasSealed);
-    bitMask.freeze();
-    serializer
-      ..addInt(bitMask._mask)
-      ..startList();
-    for (NamedTypeAnnotationImpl interface in interfaces) {
-      interface.serialize(serializer);
-    }
-    serializer
-      ..endList()
-      ..startList();
-    for (NamedTypeAnnotationImpl mixin in mixins) {
-      mixin.serialize(serializer);
-    }
-    serializer.endList();
-    superclass.serializeNullable(serializer);
-  }
-}
-
-class EnumDeclarationImpl extends ParameterizedTypeDeclarationImpl
-    implements EnumDeclaration {
-  @override
-  final List<NamedTypeAnnotationImpl> interfaces;
-
-  @override
-  final List<NamedTypeAnnotationImpl> mixins;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.enumDeclaration;
-
-  EnumDeclarationImpl({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // TypeDeclaration fields.
-    required super.typeParameters,
-    // EnumDeclaration fields.
-    required this.interfaces,
-    required this.mixins,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    serializer.startList();
-    for (NamedTypeAnnotationImpl interface in interfaces) {
-      interface.serialize(serializer);
-    }
-    serializer
-      ..endList()
-      ..startList();
-    for (NamedTypeAnnotationImpl mixin in mixins) {
-      mixin.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-class EnumValueDeclarationImpl extends DeclarationImpl
-    implements EnumValueDeclaration {
-  @override
-  final IdentifierImpl definingEnum;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.enumValueDeclaration;
-
-  EnumValueDeclarationImpl({
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    required this.definingEnum,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    definingEnum.serialize(serializer);
-  }
-}
-
-class ExtensionDeclarationImpl extends ParameterizedTypeDeclarationImpl
-    implements ExtensionDeclaration {
-  @override
-  final TypeAnnotationImpl onType;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.extensionDeclaration;
-
-  ExtensionDeclarationImpl({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // ParameterizedTypeDeclaration fields.
-    required super.typeParameters,
-    // ExtensionDeclaration fields.
-    required this.onType,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    onType.serialize(serializer);
-  }
-}
-
-class ExtensionTypeDeclarationImpl extends ParameterizedTypeDeclarationImpl
-    implements ExtensionTypeDeclaration {
-  @override
-  final TypeAnnotationImpl representationType;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.extensionTypeDeclaration;
-
-  ExtensionTypeDeclarationImpl({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // ParameterizedTypeDeclaration fields.
-    required super.typeParameters,
-    // ExtensionTypeDeclaration fields.
-    required this.representationType,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    representationType.serialize(serializer);
-  }
-}
-
-class MixinDeclarationImpl extends ParameterizedTypeDeclarationImpl
-    implements MixinDeclaration {
-  @override
-  final bool hasBase;
-
-  @override
-  final List<NamedTypeAnnotationImpl> interfaces;
-
-  @override
-  final List<NamedTypeAnnotationImpl> superclassConstraints;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.mixinDeclaration;
-
-  MixinDeclarationImpl({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // TypeDeclaration fields.
-    required super.typeParameters,
-    // MixinDeclaration fields.
-    required this.hasBase,
-    required this.interfaces,
-    required this.superclassConstraints,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    serializer
-      ..addBool(hasBase)
-      ..startList();
-    for (NamedTypeAnnotationImpl interface in interfaces) {
-      interface.serialize(serializer);
-    }
-    serializer
-      ..endList()
-      ..startList();
-    for (NamedTypeAnnotationImpl constraint in superclassConstraints) {
-      constraint.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-class TypeAliasDeclarationImpl extends ParameterizedTypeDeclarationImpl
-    implements TypeAliasDeclaration {
-  /// The type being aliased.
-  @override
-  final TypeAnnotationImpl aliasedType;
-
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.typeAliasDeclaration;
-
-  TypeAliasDeclarationImpl({
-    // Declaration fields.
-    required super.id,
-    required super.identifier,
-    required super.library,
-    required super.metadata,
-    // TypeDeclaration fields.
-    required super.typeParameters,
-    // TypeAlias fields.
-    required this.aliasedType,
-  });
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    aliasedType.serialize(serializer);
-  }
-}
-
-class LibraryImpl extends RemoteInstance implements Library {
-  @override
-  RemoteInstanceKind get kind => RemoteInstanceKind.library;
-
-  @override
-  final LanguageVersionImpl languageVersion;
-
-  @override
-  final List<MetadataAnnotationImpl> metadata;
-
-  @override
-  final Uri uri;
-
-  LibraryImpl(
-      {required int id,
-      required this.languageVersion,
-      required this.metadata,
-      required this.uri})
-      : super(id);
-
-  @override
-  void serializeUncached(Serializer serializer) {
-    super.serializeUncached(serializer);
-
-    languageVersion.serialize(serializer);
-    serializer.startList();
-    for (MetadataAnnotationImpl annotation in metadata) {
-      annotation.serialize(serializer);
-    }
-    serializer.endList();
-    serializer.addUri(uri);
-  }
-}
-
-/// This class doesn't implement [RemoteInstance] as it is always attached to a
-/// [Library] and doesn't need its own kind or ID.
-class LanguageVersionImpl implements LanguageVersion, Serializable {
-  @override
-  final int major;
-
-  @override
-  final int minor;
-
-  LanguageVersionImpl(this.major, this.minor);
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer
-      ..addInt(major)
-      ..addInt(minor);
-  }
-}
-
-/// A general bit mask class for specific enum types.
-///
-/// This should always be specialized to exactly one enum type, since the mask
-/// uses the enum indexes.
-final class BitMask<T extends Enum> {
-  int _mask;
-  bool _frozen = false;
-
-  BitMask([this._mask = 0])
-      : assert(
-          T is! Enum,
-        );
-
-  void add(T bit) {
-    if (_frozen) throw StateError('Cannot modify a frozen BitMask');
-    _mask |= bit.mask;
-  }
-
-  bool has(T bit) {
-    return (_mask & bit.mask) != 0;
-  }
-
-  void freeze() => _frozen = true;
-}
-
-/// Defines the bits for the bit mask for all boolean class fields.
-enum ClassIntrospectionBit {
-  hasAbstract,
-  hasBase,
-  hasExternal,
-  hasFinal,
-  hasInterface,
-  hasMixin,
-  hasSealed;
-}
-
-/// Defines the bits for the bit mask for all boolean function fields.
-enum FunctionIntrospectionBit {
-  hasBody,
-  hasExternal,
-  hasStatic,
-  isFactory,
-  isGetter,
-  isOperator,
-  isSetter,
-}
-
-/// Defines the bits for the bit mask for all boolean parameter fields.
-enum ParameterIntrospectionBit {
-  isNamed,
-  isRequired,
-}
-
-/// Defines the bits for the bit mask for all boolean variable fields.
-enum VariableIntrospectionBit {
-  hasAbstract,
-  hasConst,
-  hasExternal,
-  hasFinal,
-  hasInitializer,
-  hasLate,
-  hasStatic;
-}
-
-extension on Enum {
-  /// The mask bit for this enum value based on its index.
-  int get mask => 1 << index;
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/isolated_executor.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/isolated_executor.dart
deleted file mode 100644
index 011e66e..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/isolated_executor.dart
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:isolate';
-import 'dart:typed_data';
-
-import '../executor.dart';
-import '../executor/executor_base.dart';
-import '../executor/serialization.dart';
-
-/// Spawns a [MacroExecutor] as an isolate by passing [uriToSpawn] to
-/// [Isolate.spawnUri], and communicating using [serializationMode].
-///
-/// The [uriToSpawn] can be any valid Uri for [Isolate.spawnUri].
-///
-/// Both [arguments] and [packageConfigUri] will be forwarded to
-/// [Isolate.spawnUri] if provided.
-///
-/// The [serializationMode] must be a `server` variant, and [uriToSpawn] must
-/// use the corresponding `client` variant.
-Future<MacroExecutor> start(SerializationMode serializationMode, Uri uriToSpawn,
-        {List<String> arguments = const [], Uri? packageConfigUri}) async =>
-    _SingleIsolatedMacroExecutor.start(
-        uriToSpawn, serializationMode, arguments, packageConfigUri);
-
-/// Actual implementation of the isolate based macro executor.
-class _SingleIsolatedMacroExecutor extends ExternalMacroExecutorBase {
-  /// The send port where we should send requests.
-  final SendPort sendPort;
-
-  /// A function that should be invoked when shutting down this executor
-  /// to perform any necessary cleanup.
-  final void Function() onClose;
-
-  _SingleIsolatedMacroExecutor(
-      {required super.messageStream,
-      required this.onClose,
-      required this.sendPort,
-      required super.serializationMode});
-
-  static Future<_SingleIsolatedMacroExecutor> start(
-      Uri uriToSpawn,
-      SerializationMode serializationMode,
-      List<String> arguments,
-      Uri? packageConfig) async {
-    ReceivePort receivePort = ReceivePort();
-    Isolate isolate = await Isolate.spawnUri(
-        uriToSpawn, arguments, receivePort.sendPort,
-        packageConfig: packageConfig,
-        debugName: 'macro-executor ($uriToSpawn)');
-    Completer<SendPort> sendPortCompleter = Completer();
-    StreamController<Object> messageStreamController =
-        StreamController(sync: true);
-    receivePort.listen((message) {
-      if (!sendPortCompleter.isCompleted) {
-        sendPortCompleter.complete(message as SendPort);
-      } else {
-        if (serializationMode == SerializationMode.byteData) {
-          message =
-              (message as TransferableTypedData).materialize().asUint8List();
-        }
-        messageStreamController.add(message as Object);
-      }
-    }).onDone(messageStreamController.close);
-
-    return _SingleIsolatedMacroExecutor(
-        onClose: () {
-          receivePort.close();
-          isolate.kill();
-        },
-        messageStream: messageStreamController.stream,
-        sendPort: await sendPortCompleter.future,
-        serializationMode: serializationMode);
-  }
-
-  @override
-  Future<void> close() {
-    if (isClosed) return Future.value();
-    isClosed = true;
-    return Future.sync(onClose);
-  }
-
-  /// Sends the [Serializer.result] to [sendPort], possibly wrapping it in a
-  /// [TransferableTypedData] object.
-  @override
-  void sendResult(Serializer serializer) {
-    if (serializationMode == SerializationMode.byteData) {
-      sendPort.send(
-          TransferableTypedData.fromList([serializer.result as Uint8List]));
-    } else {
-      sendPort.send(serializer.result);
-    }
-  }
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/kernel_executor.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/kernel_executor.dart
deleted file mode 100644
index 881bc8a..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/kernel_executor.dart
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:io';
-import 'dart:isolate';
-import 'dart:typed_data';
-
-import '../executor.dart';
-import '../executor/serialization.dart';
-import 'isolated_executor.dart' as isolated_executor;
-import 'process_executor.dart' as process_executor;
-
-/// Spawns a [MacroExecutor] as an isolate if possible, or with a new Dart
-/// process if not.
-///
-/// Throws [StateError] if a Dart process is needed but the `dart` executable
-/// can't be found next to [Platform.executable].
-///
-/// This is the only public api exposed by this library.
-Future<MacroExecutor> start(SerializationMode serializationMode, Uri uriToSpawn,
-    {List<String> arguments = const [], Uri? packageConfigUri}) {
-  if (_isKernelRuntime) {
-    return isolated_executor.start(serializationMode, uriToSpawn,
-        arguments: arguments, packageConfigUri: packageConfigUri);
-  }
-
-  // Not running on the JIT, assume `dartaotruntime` or some other executable
-  // in the SDK `bin` folder.
-  File dartAotRuntime = File(Platform.resolvedExecutable);
-
-  List<File> dartExecutables = ['dart', 'dart.exe']
-      .map((name) => File.fromUri(dartAotRuntime.parent.uri.resolve(name)))
-      .where((f) => f.existsSync())
-      .toList();
-  if (dartExecutables.isEmpty) {
-    throw StateError('Failed to start macro executor from kernel: '
-        "can't launch isolate and can't find dart executable next to "
-        '${dartAotRuntime.path}.');
-  }
-
-  return process_executor.start(
-      serializationMode,
-      process_executor.CommunicationChannel.socket,
-      dartExecutables.first.path,
-      ['run', uriToSpawn.path, ...arguments]);
-}
-
-/// Note that this is lazy, by nature of being a final top level variable.
-final bool _isKernelRuntime = _checkForKernelRuntime();
-
-bool _checkForKernelRuntime() {
-  // `createUriForKernelBlob` throws `UnsupportedError` if kernel blobs are not
-  // supported at all. We don't actually want to register kernel so pass
-  // invalid kernel, an empty list, resulting in an `ArgumentError` if kernel
-  // blobs are supported.
-  try {
-    (Isolate.current as dynamic)
-        .createUriForKernelBlob(Uint8List.fromList(const []));
-    throw StateError('Expected failure.');
-  } on UnsupportedError {
-    return false;
-  } on ArgumentError {
-    return true;
-  }
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/message_grouper.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/message_grouper.dart
deleted file mode 100644
index 02f5470..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/message_grouper.dart
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:math' as math;
-import 'dart:typed_data';
-
-/// Collects messages from an input stream of bytes.
-///
-/// Each message should start with a 32 bit big endian uint indicating its size,
-/// followed by that many bytes.
-class MessageGrouper {
-  /// The input bytes stream subscription.
-  late final StreamSubscription _inputStreamSubscription;
-
-  /// The buffer to store the length bytes in.
-  final _FixedBuffer _lengthBuffer = _FixedBuffer(4);
-
-  /// If reading raw data, buffer for the data.
-  _FixedBuffer? _messageBuffer;
-
-  late final StreamController<Uint8List> _messageStreamController =
-      StreamController<Uint8List>(onCancel: () {
-    _inputStreamSubscription.cancel();
-  });
-
-  Stream<Uint8List> get messageStream => _messageStreamController.stream;
-
-  MessageGrouper(Stream<List<int>> inputStream) {
-    _inputStreamSubscription = inputStream.listen(_handleBytes, onDone: cancel);
-  }
-
-  /// Stop listening to the input stream for further updates, and close the
-  /// output stream.
-  void cancel() {
-    _inputStreamSubscription.cancel();
-    _messageStreamController.close();
-  }
-
-  void _handleBytes(List<int> bytes, [int offset = 0]) {
-    final _FixedBuffer? messageBuffer = _messageBuffer;
-    if (messageBuffer == null) {
-      while (offset < bytes.length && !_lengthBuffer.isReady) {
-        _lengthBuffer.addByte(bytes[offset++]);
-      }
-      if (_lengthBuffer.isReady) {
-        int length = _lengthBuffer[0] << 24 |
-            _lengthBuffer[1] << 16 |
-            _lengthBuffer[2] << 8 |
-            _lengthBuffer[3];
-        // Reset the length reading state.
-        _lengthBuffer.reset();
-        // Switch to the message payload reading state.
-        _messageBuffer = _FixedBuffer(length);
-        _handleBytes(bytes, offset);
-      } else {
-        // Continue reading the length.
-        return;
-      }
-    } else {
-      // Read the data from `bytes`.
-      offset += messageBuffer.addBytes(bytes, offset);
-
-      // If we completed a message, add it to the output stream.
-      if (messageBuffer.isReady) {
-        _messageStreamController.add(messageBuffer.bytes);
-        // Switch to the length reading state.
-        _messageBuffer = null;
-        _handleBytes(bytes, offset);
-      }
-    }
-  }
-}
-
-/// A buffer of fixed length.
-class _FixedBuffer {
-  final Uint8List bytes;
-
-  /// The offset in [bytes].
-  int _offset = 0;
-
-  _FixedBuffer(int length) : bytes = Uint8List(length);
-
-  /// Return `true` when the required number of bytes added.
-  bool get isReady => _offset == bytes.length;
-
-  int operator [](int index) => bytes[index];
-
-  void addByte(int byte) {
-    bytes[_offset++] = byte;
-  }
-
-  /// Consume at most as many bytes from [source] as required by fill [bytes].
-  /// Return the number of consumed bytes.
-  int addBytes(List<int> source, int offset) {
-    int toConsume = math.min(source.length - offset, bytes.length - _offset);
-    bytes.setRange(_offset, _offset + toConsume, source, offset);
-    _offset += toConsume;
-    return toConsume;
-  }
-
-  /// Reset the number of added bytes to zero.
-  void reset() {
-    _offset = 0;
-  }
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/multi_executor.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/multi_executor.dart
deleted file mode 100644
index ae264e2..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/multi_executor.dart
+++ /dev/null
@@ -1,178 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-
-import '../api.dart';
-import '../executor.dart';
-import '../executor/augmentation_library.dart';
-
-/// A [MacroExecutor] implementation which delegates most work to other
-/// executors which are spawned through a provided callback.
-class MultiMacroExecutor extends MacroExecutor with AugmentationLibraryBuilder {
-  /// Executors by [MacroInstanceIdentifier].
-  ///
-  /// Using an expando means we don't have to worry about cleaning  up instances
-  /// for executors that were shut down.
-  final Expando<ExecutorFactoryToken> _instanceExecutors = Expando();
-
-  /// Registered factories for starting up a new macro executor for a library.
-  final Map<Uri, ExecutorFactoryToken> _libraryExecutorFactories = {};
-
-  /// All known registered executor factories.
-  final Set<ExecutorFactoryToken> _executorFactoryTokens = {};
-
-  /// Whether or not an executor factory for [library] is currently registered.
-  bool libraryIsRegistered(Uri library) =>
-      _libraryExecutorFactories.containsKey(library);
-
-  /// Registers a [factory] which can produce a [MacroExecutor] that can be
-  /// used to run any macro defined in [libraries].
-  ///
-  /// Throws an [ArgumentError] if a library in [libraries] already has a
-  /// factory registered.
-  ///
-  /// Returns a token which can be used to shut down any executors spawned in
-  /// this way via [unregisterExecutorFactory].
-  ExecutorFactoryToken registerExecutorFactory(
-      FutureOr<MacroExecutor> Function() factory, Set<Uri> libraries) {
-    ExecutorFactoryToken token = ExecutorFactoryToken._(factory, libraries);
-    _executorFactoryTokens.add(token);
-    for (Uri library in libraries) {
-      if (_libraryExecutorFactories.containsKey(library)) {
-        throw ArgumentError(
-            'Attempted to register a macro executor factory for library '
-            '$library which already has one assigned.');
-      }
-      _libraryExecutorFactories[library] = token;
-    }
-    return token;
-  }
-
-  /// Unregisters [token] for all [libraries].
-  ///
-  /// If [libraries] is not passed (or `null`), then the token is unregistered
-  /// for all libraries.
-  ///
-  /// If no libraries are registered for [token] after this call, then the
-  /// executor mapped to [token] will be shut down and the token will be freed.
-  ///
-  /// This should be called whenever the executors might be stale, or as an
-  /// optimization to shut them down when they are known to be not used any
-  /// longer.
-  Future<void> unregisterExecutorFactory(ExecutorFactoryToken token,
-      {Set<Uri>? libraries}) async {
-    bool shouldClose;
-    if (libraries == null) {
-      libraries = token._libraries;
-      shouldClose = true;
-    } else {
-      token._libraries.removeAll(libraries);
-      shouldClose = token._libraries.isEmpty;
-    }
-
-    for (Uri library in libraries) {
-      _libraryExecutorFactories.remove(library);
-    }
-
-    if (shouldClose) {
-      _executorFactoryTokens.remove(token);
-      token._libraries.clear();
-      await token._close();
-    }
-  }
-
-  /// Shuts down all executors and clears all configuration.
-  Future<void> closeAndReset() async {
-    await Future.wait(_executorFactoryTokens
-        .toList()
-        .map((token) => unregisterExecutorFactory(token)));
-  }
-
-  /// Shuts down all executors, but does not clear [_libraryExecutorFactories]
-  /// or [_executorFactoryTokens].
-  @override
-  Future<void> close() {
-    Future done = Future.wait([
-      for (ExecutorFactoryToken token in _executorFactoryTokens) token._close(),
-    ]);
-    return done;
-  }
-
-  @override
-  Future<MacroExecutionResult> executeDeclarationsPhase(
-          MacroInstanceIdentifier macro,
-          MacroTarget target,
-          DeclarationPhaseIntrospector introspector) =>
-      _instanceExecutors[macro]!._withInstance((executor) =>
-          executor.executeDeclarationsPhase(macro, target, introspector));
-
-  @override
-  Future<MacroExecutionResult> executeDefinitionsPhase(
-          MacroInstanceIdentifier macro,
-          MacroTarget target,
-          DefinitionPhaseIntrospector introspector) =>
-      _instanceExecutors[macro]!._withInstance((executor) =>
-          executor.executeDefinitionsPhase(macro, target, introspector));
-
-  @override
-  Future<MacroExecutionResult> executeTypesPhase(MacroInstanceIdentifier macro,
-          MacroTarget target, TypePhaseIntrospector introspector) =>
-      _instanceExecutors[macro]!._withInstance((executor) =>
-          executor.executeTypesPhase(macro, target, introspector));
-
-  @override
-  Future<MacroInstanceIdentifier> instantiateMacro(
-      Uri library, String name, String constructor, Arguments arguments) {
-    ExecutorFactoryToken? token = _libraryExecutorFactories[library];
-    if (token == null) {
-      throw ArgumentError('No executor registered to run macros from $library');
-    }
-    return token._withInstance((executor) async {
-      MacroInstanceIdentifier instance = await executor.instantiateMacro(
-          library, name, constructor, arguments);
-      _instanceExecutors[instance] = token;
-      return instance;
-    });
-  }
-
-  @override
-  void disposeMacro(MacroInstanceIdentifier instance) {
-    _instanceExecutors[instance]!._withInstance((executor) {
-      executor.disposeMacro(instance);
-    });
-  }
-}
-
-/// A token to track registered [MacroExecutor] factories.
-///
-/// Used to unregister them later on, and also handles bookkeeping for the
-/// factory and actual instances.
-class ExecutorFactoryToken {
-  final FutureOr<MacroExecutor> Function() _factory;
-  FutureOr<MacroExecutor>? _instance;
-  final Set<Uri> _libraries;
-
-  ExecutorFactoryToken._(this._factory, this._libraries);
-
-  /// Runs [callback] with an actual instance once available.
-  ///
-  /// This will spin up an instance if one is not currently running.
-  Future<T> _withInstance<T>(
-          FutureOr<T> Function(MacroExecutor) callback) async =>
-      callback(await (_instance ??= _factory()));
-
-  /// Closes [_instance] if non-null, and sets it to `null`.
-  Future<void> _close() async {
-    FutureOr<MacroExecutor>? instance = _instance;
-    _instance = null;
-    if (instance != null) {
-      if (instance is Future<MacroExecutor>) {
-        await (await instance).close();
-      } else {
-        await instance.close();
-      }
-    }
-  }
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/process_executor.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/process_executor.dart
deleted file mode 100644
index 360a87a..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/process_executor.dart
+++ /dev/null
@@ -1,191 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:convert';
-import 'dart:io';
-import 'dart:typed_data';
-
-import '../executor.dart';
-import 'exception_impls.dart';
-import 'executor_base.dart';
-import 'message_grouper.dart';
-import 'serialization.dart';
-
-/// Spawns a [MacroExecutor] as a separate process, by running [program] with
-/// [arguments], and communicating using [serializationMode].
-///
-/// The [serializationMode] must be a `server` variant, and [program] must use
-/// the corresponding `client` variant.
-///
-/// This is the only public api exposed by this library.
-Future<MacroExecutor> start(SerializationMode serializationMode,
-    CommunicationChannel communicationChannel, String program,
-    [List<String> arguments = const []]) {
-  switch (communicationChannel) {
-    case CommunicationChannel.stdio:
-      return _SingleProcessMacroExecutor.startWithStdio(
-          serializationMode, program, arguments);
-    case CommunicationChannel.socket:
-      return _SingleProcessMacroExecutor.startWithSocket(
-          serializationMode, program, arguments);
-  }
-}
-
-/// Actual implementation of the separate process based macro executor.
-class _SingleProcessMacroExecutor extends ExternalMacroExecutorBase {
-  /// The IOSink that writes to stdin of the external process.
-  final IOSink outSink;
-
-  /// A function that should be invoked when shutting down this executor
-  /// to perform any necessary cleanup.
-  final void Function() onClose;
-
-  _SingleProcessMacroExecutor(
-      {required super.messageStream,
-      required this.onClose,
-      required this.outSink,
-      required super.serializationMode});
-
-  static Future<_SingleProcessMacroExecutor> startWithSocket(
-      SerializationMode serializationMode,
-      String programPath,
-      List<String> arguments) async {
-    ServerSocket serverSocket;
-    // Try an ipv6 address loopback first, and fall back on ipv4.
-    try {
-      serverSocket = await ServerSocket.bind(InternetAddress.loopbackIPv6, 0);
-    } on SocketException catch (_) {
-      serverSocket = await ServerSocket.bind(InternetAddress.loopbackIPv4, 0);
-    }
-    Process process;
-    try {
-      process = await Process.start(programPath, [
-        ...arguments,
-        serverSocket.address.address,
-        serverSocket.port.toString(),
-      ]);
-    } catch (e) {
-      await serverSocket.close();
-      rethrow;
-    }
-    process.stderr.transform(const Utf8Decoder()).listen((content) =>
-        throw UnexpectedMacroExceptionImpl(
-            'stderr output by macro process: $content'));
-    process.stdout.transform(const Utf8Decoder()).listen(
-        (event) => print('Stdout from MacroExecutor at $programPath:\n$event'));
-
-    Completer<Socket> clientCompleter = Completer();
-    serverSocket.listen((client) {
-      clientCompleter.complete(client);
-    });
-    Socket client = await clientCompleter.future;
-    // Nagle's algorithm slows us down >100x, disable it.
-    client.setOption(SocketOption.tcpNoDelay, true);
-
-    Stream<Object> messageStream;
-
-    if (serializationMode == SerializationMode.byteData) {
-      messageStream = MessageGrouper(client).messageStream;
-    } else if (serializationMode == SerializationMode.json) {
-      messageStream = const Utf8Decoder()
-          .bind(client)
-          .transform(const LineSplitter())
-          .map((line) => jsonDecode(line) as Object);
-    } else {
-      throw UnsupportedError(
-          'Unsupported serialization mode \$serializationMode for '
-          'ProcessExecutor');
-    }
-
-    return _SingleProcessMacroExecutor(
-        onClose: () {
-          try {
-            client.close();
-          } catch (_) {
-            // The `process.kill` two lines down can trigger an exception here
-            // because the remote side closes the socket first. Ignore it.
-          }
-          serverSocket.close();
-          process.kill();
-        },
-        messageStream: messageStream,
-        outSink: client,
-        serializationMode: serializationMode);
-  }
-
-  static Future<_SingleProcessMacroExecutor> startWithStdio(
-      SerializationMode serializationMode,
-      String programPath,
-      List<String> arguments) async {
-    Process process = await Process.start(programPath, arguments);
-    process.stderr.transform(const Utf8Decoder()).listen((content) =>
-        throw UnexpectedMacroExceptionImpl(
-            'stderr output by macro process: $content'));
-
-    Stream<Object> messageStream;
-
-    if (serializationMode == SerializationMode.byteData) {
-      messageStream = MessageGrouper(process.stdout).messageStream;
-    } else if (serializationMode == SerializationMode.json) {
-      messageStream = process.stdout
-          .transform(const Utf8Decoder())
-          .transform(const LineSplitter())
-          .map((line) => jsonDecode(line) as Object);
-    } else {
-      throw UnsupportedError(
-          'Unsupported serialization mode \$serializationMode for '
-          'ProcessExecutor');
-    }
-
-    return _SingleProcessMacroExecutor(
-        onClose: () {
-          process.kill();
-        },
-        messageStream: messageStream,
-        outSink: process.stdin,
-        serializationMode: serializationMode);
-  }
-
-  @override
-  Future<void> close() {
-    if (isClosed) return Future.value();
-    isClosed = true;
-    return Future.sync(onClose);
-  }
-
-  /// Sends the [Serializer.result] to [stdin].
-  ///
-  /// Json results are serialized to a `String`, and separated by newlines.
-  @override
-  void sendResult(Serializer serializer) {
-    if (serializationMode == SerializationMode.json) {
-      outSink.writeln(jsonEncode(serializer.result));
-    } else if (serializationMode == SerializationMode.byteData) {
-      Uint8List result = (serializer as ByteDataSerializer).result;
-      int length = result.lengthInBytes;
-      if (length > 0xffffffff) {
-        throw StateError('Message was larger than the allowed size!');
-      }
-      BytesBuilder bytesBuilder = BytesBuilder(copy: false);
-      bytesBuilder.add([
-        length >> 24 & 0xff,
-        length >> 16 & 0xff,
-        length >> 8 & 0xff,
-        length & 0xff
-      ]);
-      bytesBuilder.add(result);
-      outSink.add(bytesBuilder.takeBytes());
-    } else {
-      throw UnsupportedError(
-          'Unsupported serialization mode $serializationMode for '
-          'ProcessExecutor');
-    }
-  }
-}
-
-enum CommunicationChannel {
-  socket,
-  stdio,
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/protocol.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/protocol.dart
deleted file mode 100644
index 4105d3a..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/protocol.dart
+++ /dev/null
@@ -1,806 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// Defines the objects used for communication between the macro executor and
-/// the isolate or process doing the work of macro loading and execution.
-library _fe_analyzer_shared.src.macros.executor_shared.protocol;
-
-import '../api.dart';
-import '../executor.dart';
-import 'exception_impls.dart';
-import 'introspection_impls.dart';
-import 'remote_instance.dart';
-import 'response_impls.dart';
-import 'serialization.dart';
-import 'serialization_extensions.dart';
-
-/// Base class all requests extend, provides a unique id for each request.
-abstract class Request implements Serializable {
-  final int id;
-
-  final int serializationZoneId;
-
-  Request({int? id, required this.serializationZoneId}) : id = id ?? _next++;
-
-  /// The [serializationZoneId] is a part of the header and needs to be parsed
-  /// before deserializing objects, and then passed in here.
-  Request.deserialize(Deserializer deserializer, this.serializationZoneId)
-      : id = (deserializer..moveNext()).expectInt();
-
-  /// The [serializationZoneId] needs to be separately serialized before the
-  /// rest of the object. This is not done by the instances themselves but by
-  /// the macro implementations.
-  @override
-  void serialize(Serializer serializer) => serializer.addInt(id);
-
-  static int _next = 0;
-}
-
-/// A generic response object that contains either a response or an exception,
-/// and a unique ID.
-class Response {
-  final Object? response;
-  final MacroException? exception;
-  final int requestId;
-  final MessageType responseType;
-
-  Response({
-    this.response,
-    this.exception,
-    required this.requestId,
-    required this.responseType,
-  })  : assert(response != null || exception != null),
-        assert(response == null || exception == null);
-}
-
-/// A serializable [Response], contains the message type as an enum.
-class SerializableResponse implements Response, Serializable {
-  @override
-  final Serializable? response;
-  @override
-  final MessageType responseType;
-  @override
-  final MacroExceptionImpl? exception;
-  @override
-  final int requestId;
-  final int serializationZoneId;
-
-  SerializableResponse({
-    this.exception,
-    required this.requestId,
-    this.response,
-    required this.responseType,
-    required this.serializationZoneId,
-  });
-
-  /// You must first parse the [serializationZoneId] yourself, and then
-  /// call this function in that zone, and pass the ID.
-  factory SerializableResponse.deserialize(
-      Deserializer deserializer, int serializationZoneId) {
-    deserializer.moveNext();
-
-    MessageType responseType = MessageType.values[deserializer.expectInt()];
-    Serializable? response;
-    MacroExceptionImpl? exception;
-    switch (responseType) {
-      case MessageType.exception:
-        deserializer.moveNext();
-        exception = deserializer.expectRemoteInstance();
-        break;
-      case MessageType.macroInstanceIdentifier:
-        response = MacroInstanceIdentifierImpl.deserialize(deserializer);
-        break;
-      case MessageType.macroExecutionResult:
-        response = MacroExecutionResultImpl.deserialize(deserializer);
-        break;
-      case MessageType.staticType:
-      case MessageType.namedStaticType:
-        response = RemoteInstance.deserialize(deserializer);
-        break;
-      case MessageType.boolean:
-        response = BooleanValue.deserialize(deserializer);
-        break;
-      case MessageType.declarationList:
-        response = DeclarationList.deserialize(deserializer);
-        break;
-      case MessageType.remoteInstance:
-        deserializer.moveNext();
-        if (!deserializer.checkNull()) {
-          response = deserializer.expectRemoteInstance();
-        }
-        break;
-      default:
-        throw StateError('Unexpected response type $responseType');
-    }
-
-    return SerializableResponse(
-        responseType: responseType,
-        response: response,
-        exception: exception,
-        requestId: (deserializer..moveNext()).expectInt(),
-        serializationZoneId: serializationZoneId);
-  }
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer
-      ..addInt(serializationZoneId)
-      ..addInt(MessageType.response.index)
-      ..addInt(responseType.index);
-    switch (responseType) {
-      case MessageType.exception:
-        exception!.serialize(serializer);
-        break;
-      default:
-        response.serializeNullable(serializer);
-    }
-    serializer.addInt(requestId);
-  }
-}
-
-class BooleanValue implements Serializable {
-  final bool value;
-
-  BooleanValue(this.value);
-
-  BooleanValue.deserialize(Deserializer deserializer)
-      : value = (deserializer..moveNext()).expectBool();
-
-  @override
-  void serialize(Serializer serializer) => serializer..addBool(value);
-}
-
-/// A serialized list of [Declaration]s.
-class DeclarationList<T extends DeclarationImpl> implements Serializable {
-  final List<T> declarations;
-
-  DeclarationList(this.declarations);
-
-  DeclarationList.deserialize(Deserializer deserializer)
-      : declarations = [
-          for (bool hasNext = (deserializer
-                    ..moveNext()
-                    ..expectList())
-                  .moveNext();
-              hasNext;
-              hasNext = deserializer.moveNext())
-            deserializer.expectRemoteInstance(),
-        ];
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.startList();
-    for (DeclarationImpl declaration in declarations) {
-      declaration.serialize(serializer);
-    }
-    serializer.endList();
-  }
-}
-
-/// A request to load a macro in this isolate.
-class LoadMacroRequest extends Request {
-  final Uri library;
-  final String name;
-
-  LoadMacroRequest(this.library, this.name,
-      {required super.serializationZoneId});
-
-  LoadMacroRequest.deserialize(super.deserializer, super.serializationZoneId)
-      : library = Uri.parse((deserializer..moveNext()).expectString()),
-        name = (deserializer..moveNext()).expectString(),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer
-      ..addInt(MessageType.loadMacroRequest.index)
-      ..addString(library.toString())
-      ..addString(name);
-    super.serialize(serializer);
-  }
-}
-
-/// A request to instantiate a macro instance.
-class InstantiateMacroRequest extends Request {
-  final Uri library;
-  final String name;
-  final String constructor;
-  final Arguments arguments;
-
-  /// The ID to assign to the identifier, this needs to come from the requesting
-  /// side so that it is unique.
-  final int instanceId;
-
-  InstantiateMacroRequest(this.library, this.name, this.constructor,
-      this.arguments, this.instanceId,
-      {required super.serializationZoneId});
-
-  InstantiateMacroRequest.deserialize(
-      super.deserializer, super.serializationZoneId)
-      : library = (deserializer..moveNext()).expectUri(),
-        name = (deserializer..moveNext()).expectString(),
-        constructor = (deserializer..moveNext()).expectString(),
-        arguments = Arguments.deserialize(deserializer),
-        instanceId = (deserializer..moveNext()).expectInt(),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer
-      ..addInt(MessageType.instantiateMacroRequest.index)
-      ..addUri(library)
-      ..addString(name)
-      ..addString(constructor)
-      ..addSerializable(arguments)
-      ..addInt(instanceId);
-    super.serialize(serializer);
-  }
-}
-
-/// A request to dispose a macro instance by ID.
-class DisposeMacroRequest extends Request {
-  final MacroInstanceIdentifier identifier;
-
-  DisposeMacroRequest(this.identifier, {required super.serializationZoneId});
-
-  DisposeMacroRequest.deserialize(super.deserializer, super.serializationZoneId)
-      : identifier = MacroInstanceIdentifierImpl.deserialize(deserializer),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer
-      ..addInt(MessageType.disposeMacroRequest.index)
-      ..addSerializable(identifier);
-    super.serialize(serializer);
-  }
-}
-
-/// Base class for the requests to execute a macro in a certain phase.
-abstract class ExecutePhaseRequest extends Request {
-  final MacroInstanceIdentifier macro;
-  final RemoteInstance target;
-  final RemoteInstanceImpl introspector;
-
-  MessageType get kind;
-
-  ExecutePhaseRequest(this.macro, this.target, this.introspector,
-      {required super.serializationZoneId});
-
-  /// When deserializing we have already consumed the message type, so we don't
-  /// consume it again.
-  ExecutePhaseRequest.deserialize(super.deserializer, super.serializationZoneId)
-      : macro = MacroInstanceIdentifierImpl.deserialize(deserializer),
-        target = RemoteInstance.deserialize(deserializer),
-        introspector = RemoteInstance.deserialize(deserializer),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(kind.index);
-    macro.serialize(serializer);
-    target.serialize(serializer);
-    introspector.serialize(serializer);
-
-    super.serialize(serializer);
-  }
-}
-
-/// A request to execute a macro on a particular declaration in the types phase.
-class ExecuteTypesPhaseRequest extends ExecutePhaseRequest {
-  @override
-  MessageType get kind => MessageType.executeTypesPhaseRequest;
-
-  ExecuteTypesPhaseRequest(super.macro, super.target, super.identifierResolver,
-      {required super.serializationZoneId});
-
-  ExecuteTypesPhaseRequest.deserialize(
-      super.deserializer, super.serializationZoneId)
-      : super.deserialize();
-}
-
-/// A request to execute a macro on a particular declaration in the types phase.
-class ExecuteDeclarationsPhaseRequest extends ExecutePhaseRequest {
-  @override
-  MessageType get kind => MessageType.executeDeclarationsPhaseRequest;
-
-  ExecuteDeclarationsPhaseRequest(
-      super.macro, super.target, super.identifierResolver,
-      {required super.serializationZoneId});
-
-  ExecuteDeclarationsPhaseRequest.deserialize(
-      super.deserializer, super.serializationZoneId)
-      : super.deserialize();
-}
-
-/// A request to execute a macro on a particular declaration in the types phase.
-class ExecuteDefinitionsPhaseRequest extends ExecutePhaseRequest {
-  @override
-  MessageType get kind => MessageType.executeDefinitionsPhaseRequest;
-
-  ExecuteDefinitionsPhaseRequest(
-      super.macro, super.target, super.identifierResolver,
-      {required super.serializationZoneId});
-
-  ExecuteDefinitionsPhaseRequest.deserialize(
-      super.deserializer, super.serializationZoneId)
-      : super.deserialize();
-}
-
-/// A request to destroy a remote instance zone by id.
-class DestroyRemoteInstanceZoneRequest extends Request {
-  DestroyRemoteInstanceZoneRequest({required super.serializationZoneId});
-
-  DestroyRemoteInstanceZoneRequest.deserialize(
-      super.deserializer, super.serializationZoneId)
-      : super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(MessageType.destroyRemoteInstanceZoneRequest.index);
-    super.serialize(serializer);
-  }
-}
-
-class IntrospectionRequest extends Request {
-  final RemoteInstanceImpl introspector;
-
-  IntrospectionRequest(this.introspector, {required super.serializationZoneId});
-
-  IntrospectionRequest.deserialize(
-      super.deserializer, super.serializationZoneId)
-      : introspector = RemoteInstance.deserialize(deserializer),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    introspector.serialize(serializer);
-    super.serialize(serializer);
-  }
-}
-
-/// A request to create a resolved identifier.
-class ResolveIdentifierRequest extends IntrospectionRequest {
-  final Uri library;
-  final String name;
-
-  /// When deserializing we have already consumed the message type, so we don't
-  /// consume it again.
-  ResolveIdentifierRequest(this.library, this.name, super.introspector,
-      {required super.serializationZoneId});
-
-  ResolveIdentifierRequest.deserialize(
-      super.deserializer, super.serializationZoneId)
-      : library = Uri.parse((deserializer..moveNext()).expectString()),
-        name = (deserializer..moveNext()).expectString(),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer
-      ..addInt(MessageType.resolveIdentifierRequest.index)
-      ..addString(library.toString())
-      ..addString(name);
-
-    super.serialize(serializer);
-  }
-}
-
-/// A request to resolve on a type annotation code object
-class ResolveTypeRequest extends IntrospectionRequest {
-  final TypeAnnotationCode typeAnnotationCode;
-
-  ResolveTypeRequest(this.typeAnnotationCode, super.introspector,
-      {required super.serializationZoneId});
-
-  /// When deserializing we have already consumed the message type, so we don't
-  /// consume it again.
-  ResolveTypeRequest.deserialize(super.deserializer, super.serializationZoneId)
-      : typeAnnotationCode = (deserializer..moveNext()).expectCode(),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(MessageType.resolveTypeRequest.index);
-    typeAnnotationCode.serialize(serializer);
-    super.serialize(serializer);
-  }
-}
-
-/// A request to check if a type is exactly another type.
-class IsExactlyTypeRequest extends Request {
-  final RemoteInstanceImpl leftType;
-  final RemoteInstanceImpl rightType;
-
-  IsExactlyTypeRequest(this.leftType, this.rightType,
-      {required super.serializationZoneId});
-
-  /// When deserializing we have already consumed the message type, so we don't
-  /// consume it again.
-  IsExactlyTypeRequest.deserialize(
-      super.deserializer, super.serializationZoneId)
-      : leftType = RemoteInstance.deserialize(deserializer),
-        rightType = RemoteInstance.deserialize(deserializer),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(MessageType.isExactlyTypeRequest.index);
-    leftType.serialize(serializer);
-    rightType.serialize(serializer);
-    super.serialize(serializer);
-  }
-}
-
-/// A request to check if a type is exactly another type.
-class IsSubtypeOfRequest extends Request {
-  final RemoteInstanceImpl leftType;
-  final RemoteInstanceImpl rightType;
-
-  IsSubtypeOfRequest(this.leftType, this.rightType,
-      {required super.serializationZoneId});
-
-  /// When deserializing we have already consumed the message type, so we don't
-  /// consume it again.
-  IsSubtypeOfRequest.deserialize(super.deserializer, super.serializationZoneId)
-      : leftType = RemoteInstance.deserialize(deserializer),
-        rightType = RemoteInstance.deserialize(deserializer),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(MessageType.isSubtypeOfRequest.index);
-    leftType.serialize(serializer);
-    rightType.serialize(serializer);
-    super.serialize(serializer);
-  }
-}
-
-/// A general request class for all requests coming from methods on the
-/// [DeclarationPhaseIntrospector] interface that are related to a single type.
-class TypeIntrospectorRequest extends IntrospectionRequest {
-  final Object declaration;
-  final MessageType requestKind;
-
-  TypeIntrospectorRequest(
-      this.declaration, super.introspector, this.requestKind,
-      {required super.serializationZoneId});
-
-  /// When deserializing we have already consumed the message type, so we don't
-  /// consume it again and it should instead be passed in here.
-  TypeIntrospectorRequest.deserialize(
-      Deserializer deserializer, this.requestKind, int serializationZoneId)
-      : declaration = RemoteInstance.deserialize(deserializer),
-        super.deserialize(deserializer, serializationZoneId);
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(requestKind.index);
-    (declaration as Serializable).serialize(serializer);
-    super.serialize(serializer);
-  }
-}
-
-/// A request to get a [Declaration] for an [identifier].
-///
-/// Used for both the `typeDeclarationOf` and `declarationOf` requests. A cast
-/// is done on the client side to ensure only [TypeDeclaration]s are returned
-/// from `typeDeclarationOf`.
-class DeclarationOfRequest extends IntrospectionRequest {
-  final IdentifierImpl identifier;
-  final MessageType kind;
-
-  DeclarationOfRequest(this.identifier, this.kind, super.introspector,
-      {required super.serializationZoneId})
-      : assert(kind == MessageType.typeDeclarationOfRequest ||
-            kind == MessageType.declarationOfRequest);
-
-  /// When deserializing we have already consumed the message type, so we don't
-  /// consume it again.
-  DeclarationOfRequest.deserialize(
-      super.deserializer, super.serializationZoneId, this.kind)
-      : assert(kind == MessageType.typeDeclarationOfRequest ||
-            kind == MessageType.declarationOfRequest),
-        identifier = RemoteInstance.deserialize(deserializer),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(kind.index);
-    identifier.serialize(serializer);
-    super.serialize(serializer);
-  }
-}
-
-/// A request to get an inferred [TypeAnnotation] for an
-/// [OmittedTypeAnnotation].
-class InferTypeRequest extends IntrospectionRequest {
-  final OmittedTypeAnnotationImpl omittedType;
-
-  InferTypeRequest(this.omittedType, super.introspector,
-      {required super.serializationZoneId});
-
-  /// When deserializing we have already consumed the message type, so we don't
-  /// consume it again.
-  InferTypeRequest.deserialize(super.deserializer, super.serializationZoneId)
-      : omittedType = RemoteInstance.deserialize(deserializer),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(MessageType.inferTypeRequest.index);
-    omittedType.serialize(serializer);
-    super.serialize(serializer);
-  }
-}
-
-/// A request to get all the top level [Declaration]s in a [Library].
-class DeclarationsOfRequest extends IntrospectionRequest {
-  final LibraryImpl library;
-
-  DeclarationsOfRequest(this.library, super.introspector,
-      {required super.serializationZoneId});
-
-  /// When deserializing we have already consumed the message type, so we don't
-  /// consume it again.
-  DeclarationsOfRequest.deserialize(
-      super.deserializer, super.serializationZoneId)
-      : library = RemoteInstance.deserialize(deserializer),
-        super.deserialize();
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(MessageType.topLevelDeclarationsOfRequest.index);
-    library.serialize(serializer);
-    super.serialize(serializer);
-  }
-}
-
-/// The base class for the client side introspectors from any phase, as well as
-/// client side [StaticType]s.
-///
-/// These convert all method calls into RPCs, sent via [_sendRequest].
-base class ClientIntrospector {
-  /// The actual remote instance to call methods on.
-  final RemoteInstanceImpl remoteInstance;
-
-  /// The ID of the zone in which to find the original builder.
-  final int serializationZoneId;
-
-  /// A function that can send a request and return a response using an
-  /// arbitrary communication channel.
-  final Future<Response> Function(Request request) _sendRequest;
-
-  ClientIntrospector(this._sendRequest,
-      {required this.remoteInstance, required this.serializationZoneId});
-}
-
-/// Client side implementation of an [TypeBuilder], which creates converts all
-/// method calls to remote procedure calls and sends them using [_sendRequest].
-final class ClientTypePhaseIntrospector extends ClientIntrospector
-    implements TypePhaseIntrospector {
-  ClientTypePhaseIntrospector(super._sendRequest,
-      {required super.remoteInstance, required super.serializationZoneId});
-
-  @override
-  Future<Identifier> resolveIdentifier(Uri library, String name) async {
-    ResolveIdentifierRequest request = ResolveIdentifierRequest(
-        library, name, remoteInstance,
-        serializationZoneId: serializationZoneId);
-    return _handleResponse(await _sendRequest(request));
-  }
-}
-
-/// Client side implementation of a [DeclarationBuilder].
-final class ClientDeclarationPhaseIntrospector
-    extends ClientTypePhaseIntrospector
-    implements DeclarationPhaseIntrospector {
-  static final _constructorsCache =
-      Expando<Future<List<ConstructorDeclaration>>>();
-  static final _enumValuesCache = Expando<Future<List<EnumValueDeclaration>>>();
-  static final _fieldsCache = Expando<Future<List<FieldDeclaration>>>();
-  static final _methodsCache = Expando<Future<List<MethodDeclaration>>>();
-  static final _typeDeclarationCache = Expando<Future<TypeDeclaration>>();
-
-  ClientDeclarationPhaseIntrospector(super._sendRequest,
-      {required super.remoteInstance, required super.serializationZoneId});
-
-  @override
-  Future<StaticType> resolve(TypeAnnotationCode typeAnnotation) async {
-    ResolveTypeRequest request = ResolveTypeRequest(
-        typeAnnotation, remoteInstance,
-        serializationZoneId: serializationZoneId);
-    RemoteInstanceImpl remoteType =
-        _handleResponse(await _sendRequest(request));
-    return switch (remoteType.kind) {
-      RemoteInstanceKind.namedStaticType => ClientNamedStaticTypeImpl(
-          _sendRequest,
-          remoteInstance: remoteType,
-          serializationZoneId: serializationZoneId),
-      RemoteInstanceKind.staticType => ClientStaticTypeImpl(_sendRequest,
-          remoteInstance: remoteType, serializationZoneId: serializationZoneId),
-      _ => throw StateError(
-          'Expected either a StaticType or NamedStaticType but got '
-          '${remoteType.kind}'),
-    };
-  }
-
-  @override
-  Future<List<ConstructorDeclaration>> constructorsOf(TypeDeclaration type) {
-    return _constructorsCache[type] ??= Future(() async {
-      final request = TypeIntrospectorRequest(
-          type, remoteInstance, MessageType.constructorsOfRequest,
-          serializationZoneId: serializationZoneId);
-      return _handleResponse<DeclarationList>(await _sendRequest(request))
-          .declarations
-          // TODO: Refactor so we can remove this cast
-          .cast();
-    });
-  }
-
-  @override
-  Future<List<EnumValueDeclaration>> valuesOf(EnumDeclaration type) {
-    return _enumValuesCache[type] ??= Future(() async {
-      final request = TypeIntrospectorRequest(
-          type, remoteInstance, MessageType.valuesOfRequest,
-          serializationZoneId: serializationZoneId);
-      return _handleResponse<DeclarationList>(await _sendRequest(request))
-          .declarations
-          // TODO: Refactor so we can remove this cast
-          .cast();
-    });
-  }
-
-  @override
-  Future<List<FieldDeclaration>> fieldsOf(TypeDeclaration type) {
-    return _fieldsCache[type] ??= Future(() async {
-      final request = TypeIntrospectorRequest(
-          type, remoteInstance, MessageType.fieldsOfRequest,
-          serializationZoneId: serializationZoneId);
-      return _handleResponse<DeclarationList>(await _sendRequest(request))
-          .declarations
-          // TODO: Refactor so we can remove this cast
-          .cast();
-    });
-  }
-
-  @override
-  Future<List<MethodDeclaration>> methodsOf(TypeDeclaration type) {
-    return _methodsCache[type] ??= Future(() async {
-      final request = TypeIntrospectorRequest(
-          type, remoteInstance, MessageType.methodsOfRequest,
-          serializationZoneId: serializationZoneId);
-      return _handleResponse<DeclarationList>(await _sendRequest(request))
-          .declarations
-          // TODO: Refactor so we can remove this cast
-          .cast();
-    });
-  }
-
-  @override
-  Future<List<TypeDeclaration>> typesOf(Library library) async {
-    TypeIntrospectorRequest request = TypeIntrospectorRequest(
-        library, remoteInstance, MessageType.typesOfRequest,
-        serializationZoneId: serializationZoneId);
-    return _handleResponse<DeclarationList>(await _sendRequest(request))
-        .declarations
-        // TODO: Refactor so we can remove this cast.
-        .cast();
-  }
-
-  @override
-  Future<TypeDeclaration> typeDeclarationOf(IdentifierImpl identifier) async {
-    return _typeDeclarationCache[identifier] ??= Future(() async {
-      final request = DeclarationOfRequest(
-          identifier, MessageType.typeDeclarationOfRequest, remoteInstance,
-          serializationZoneId: serializationZoneId);
-      return _handleResponse<TypeDeclaration>(await _sendRequest(request));
-    });
-  }
-}
-
-/// Client side implementation of a [StaticType].
-base class ClientStaticTypeImpl extends ClientIntrospector
-    implements StaticType {
-  ClientStaticTypeImpl(super._sendRequest,
-      {required super.remoteInstance, required super.serializationZoneId});
-
-  @override
-  Future<bool> isExactly(ClientStaticTypeImpl other) async {
-    IsExactlyTypeRequest request = IsExactlyTypeRequest(
-        remoteInstance, other.remoteInstance,
-        serializationZoneId: serializationZoneId);
-    return _handleResponse<BooleanValue>(await _sendRequest(request)).value;
-  }
-
-  @override
-  Future<bool> isSubtypeOf(ClientStaticTypeImpl other) async {
-    IsSubtypeOfRequest request = IsSubtypeOfRequest(
-        remoteInstance, other.remoteInstance,
-        serializationZoneId: serializationZoneId);
-    return _handleResponse<BooleanValue>(await _sendRequest(request)).value;
-  }
-}
-
-/// Named variant of the [ClientStaticTypeImpl].
-final class ClientNamedStaticTypeImpl extends ClientStaticTypeImpl
-    implements NamedStaticType {
-  ClientNamedStaticTypeImpl(super.sendRequest,
-      {required super.remoteInstance, required super.serializationZoneId});
-}
-
-/// Client side implementation of a [DeclarationBuilder].
-final class ClientDefinitionPhaseIntrospector
-    extends ClientDeclarationPhaseIntrospector
-    implements DefinitionPhaseIntrospector {
-  ClientDefinitionPhaseIntrospector(super._sendRequest,
-      {required super.remoteInstance, required super.serializationZoneId});
-
-  @override
-  Future<Declaration> declarationOf(IdentifierImpl identifier) async {
-    DeclarationOfRequest request = DeclarationOfRequest(
-        identifier, MessageType.declarationOfRequest, remoteInstance,
-        serializationZoneId: serializationZoneId);
-    return _handleResponse<Declaration>(await _sendRequest(request));
-  }
-
-  @override
-  Future<TypeAnnotation> inferType(
-      OmittedTypeAnnotationImpl omittedType) async {
-    InferTypeRequest request = InferTypeRequest(omittedType, remoteInstance,
-        serializationZoneId: serializationZoneId);
-    return _handleResponse<TypeAnnotation>(await _sendRequest(request));
-  }
-
-  @override
-  Future<List<Declaration>> topLevelDeclarationsOf(LibraryImpl library) async {
-    DeclarationsOfRequest request = DeclarationsOfRequest(
-        library, remoteInstance,
-        serializationZoneId: serializationZoneId);
-    return _handleResponse<DeclarationList>(await _sendRequest(request))
-        .declarations;
-  }
-}
-
-/// Either returns the actual response from [response], casted to [T], or throws
-/// a [MacroException].
-T _handleResponse<T>(Response response) {
-  if (response.responseType == MessageType.exception) {
-    throw response.exception!;
-  }
-
-  return response.response as T;
-}
-
-enum MessageType {
-  boolean,
-  constructorsOfRequest,
-  declarationOfRequest,
-  declarationList,
-  destroyRemoteInstanceZoneRequest,
-  disposeMacroRequest,
-  exception,
-  valuesOfRequest,
-  fieldsOfRequest,
-  methodsOfRequest,
-  executeDeclarationsPhaseRequest,
-  executeDefinitionsPhaseRequest,
-  executeTypesPhaseRequest,
-  instantiateMacroRequest,
-  resolveIdentifierRequest,
-  resolveTypeRequest,
-  inferTypeRequest,
-  isExactlyTypeRequest,
-  isSubtypeOfRequest,
-  loadMacroRequest,
-  remoteInstance,
-  macroInstanceIdentifier,
-  macroExecutionResult,
-  namedStaticType,
-  response,
-  staticType,
-  topLevelDeclarationsOfRequest,
-  typeDeclarationOfRequest,
-  typesOfRequest,
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/remote_instance.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/remote_instance.dart
deleted file mode 100644
index bd57cb8..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/remote_instance.dart
+++ /dev/null
@@ -1,204 +0,0 @@
-// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-
-import 'serialization.dart';
-import 'serialization_extensions.dart';
-
-/// Base class for types that need to be able to be traced back to a specific
-/// instance on the server side.
-abstract class RemoteInstance implements Serializable {
-  /// The unique ID for this instance.
-  final int id;
-
-  /// The type of instance being encoded.
-  RemoteInstanceKind get kind;
-
-  /// Static, incrementing ids.
-  static int _nextId = 0;
-
-  /// Gets the next unique identifier.
-  static int get uniqueId => _nextId++;
-
-  /// On the client side [id]s are given and you should reconstruct objects with
-  /// the given ID. On the server side ids should be created using
-  /// [RemoteInstance.uniqueId].
-  RemoteInstance(this.id);
-
-  /// Retrieves a cached instance by ID, if present.
-  static RemoteInstance? cached(int id) => _remoteInstanceCache[id];
-
-  /// Adds [instance] to the cache for this zone.
-  static void cache(RemoteInstance instance) =>
-      _remoteInstanceCache[instance.id] = instance;
-
-  /// Deserializes an instance based on the current [serializationMode].
-  ///
-  // TODO: Ideally this would be `T extends RemoteInstance` but that interacts
-  // poorly with inference in other places, we end up with Never and null as
-  // inferred types due to only the impl versions of objects extending
-  // `RemoteInstance`.
-  static T deserialize<T extends Object>(Deserializer deserializer) =>
-      (deserializer..moveNext()).expectRemoteInstance();
-
-  /// This method should be overridden by any subclasses, they should instead
-  /// implement [serializeUncached].
-  @override
-  void serialize(Serializer serializer) {
-    serializer.addInt(id);
-    // We only send the ID if it's in the cache, it's only in our cache if it is
-    // also in the remote cache.
-    if (_remoteInstanceCache.containsKey(id)) return;
-
-    serializeUncached(serializer);
-  }
-
-  /// This method should be overridden by all subclasses, which should on their
-  /// first line call this super method.
-  ///
-  /// This method should not be directly invoked, instead only [serialize]
-  /// should call it (if serializing an uncached value).
-  ///
-  /// Only new fields added by the subtype should be serialized here, rely on
-  /// super classes to have their own implementations for their fields.
-  void serializeUncached(Serializer serializer) {
-    serializer.addInt(kind.index);
-
-    // Now we can add it to the cache, we know the other side has a copy of it
-    // and don't need to serialize it in the future.
-    _remoteInstanceCache[id] = this;
-  }
-
-  @override
-  bool operator ==(Object other) => other is RemoteInstance && id == other.id;
-
-  @override
-  int get hashCode => id;
-}
-
-/// A remote instance which is just a pointer to some server side instance of
-/// a generic object.
-///
-/// The wrapped object is not serialized.
-class RemoteInstanceImpl extends RemoteInstance {
-  /// Always null on the client side, has an actual instance on the server side.
-  final Object? instance;
-
-  @override
-  final RemoteInstanceKind kind;
-
-  RemoteInstanceImpl({
-    required int id,
-    this.instance,
-    required this.kind,
-  }) : super(id);
-}
-
-// The kinds of instances.
-enum RemoteInstanceKind {
-  classDeclaration,
-  constructorDeclaration,
-  constructorMetadataAnnotation,
-  declarationPhaseIntrospector,
-  definitionPhaseIntrospector,
-  enumDeclaration,
-  enumValueDeclaration,
-  extensionDeclaration,
-  extensionTypeDeclaration,
-  fieldDeclaration,
-  formalParameter,
-  formalParameterDeclaration,
-  functionDeclaration,
-  functionTypeAnnotation,
-  identifier,
-  identifierMetadataAnnotation,
-  library,
-  methodDeclaration,
-  mixinDeclaration,
-  namedStaticType,
-  namedTypeAnnotation,
-  omittedTypeAnnotation,
-  recordField,
-  recordTypeAnnotation,
-  staticType,
-  typeAliasDeclaration,
-  typeParameter,
-  typeParameterDeclaration,
-  typePhaseIntrospector,
-  variableDeclaration,
-
-  // Exceptions.
-  macroImplementationException,
-  macroIntrospectionCycleException,
-  unexpectedMacroException,
-}
-
-/// Creates a new zone with a remote instance cache and an id, which it uses to
-/// avoid sending the same remote instances across the wire multiple times.
-///
-/// The lifecycle of one of these zones should be no longer than that of a
-/// single full compile, at which point [destroyRemoteInstanceZone] should be
-/// called.
-///
-/// In order to keep these caches in sync between the server and client, the
-/// server always creates new zone IDs and passes those to the client.
-int newRemoteInstanceZone<T>() {
-  final int id = _nextSerializationZoneId++;
-  final Zone zone = Zone.current.fork(zoneValues: {
-    _remoteInstanceZoneCacheKey: <int, RemoteInstance>{},
-  });
-  _remoteInstanceCacheZones[id] = zone;
-  return id;
-}
-
-/// Runs [fn] in the remote instance zone identified by [zoneId].
-///
-/// If [createIfMissing] is `true`, then a new zone will be created with
-/// [zoneId] if one does not already exist (this should only be `true` in client
-/// code).
-T withRemoteInstanceZone<T>(int zoneId, T Function() fn,
-    {bool createIfMissing = false}) {
-  Zone? zone = _remoteInstanceCacheZones[zoneId];
-  if (zone == null) {
-    if (!createIfMissing) {
-      throw StateError('No remote instance zone with id `$zoneId` exists.');
-    }
-    zone = _remoteInstanceCacheZones[zoneId] = Zone.current.fork(zoneValues: {
-      _remoteInstanceZoneCacheKey: <int, RemoteInstance>{},
-    });
-  }
-  return zone.run(fn);
-}
-
-/// Removes the remote instance zone identified by [zoneId] from the known list
-/// of zones and forcibly clears its cache.
-///
-/// Throws if a zone identified by [zoneId] does not exist.
-void destroyRemoteInstanceZone(int zoneId) {
-  final Zone? zone = _remoteInstanceCacheZones.remove(zoneId);
-  if (zone == null) {
-    throw StateError('No remote instance zone with id `$zoneId` exists.');
-  }
-  (zone[_remoteInstanceZoneCacheKey] as Map<int, RemoteInstance>).clear();
-}
-
-/// The key used to store the remote instance cache in the current zone.
-const Symbol _remoteInstanceZoneCacheKey = #_remoteInstanceCache;
-
-/// We cache remote instances by their ID, which allows us to not repeatedly
-/// send the same information over the wire.
-///
-/// These are a part of the current remote instance cache zone, which all
-/// serialization and deserialization of remote instances must be done in.
-Map<int, RemoteInstance> get _remoteInstanceCache =>
-    Zone.current[_remoteInstanceZoneCacheKey] as Map<int, RemoteInstance>? ??
-    (throw StateError('Not running in a remote instance cache zone, call '
-        '`withRemoteInstanceZone` to set one up.'));
-
-/// Remote instance cache zones by ID.
-final _remoteInstanceCacheZones = <int, Zone>{};
-
-/// Incrementing identifier for the serialization zone ids.
-int _nextSerializationZoneId = 0;
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/response_impls.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/response_impls.dart
deleted file mode 100644
index 19bf0ae..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/response_impls.dart
+++ /dev/null
@@ -1,485 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import '../api.dart';
-import '../executor.dart';
-import 'exception_impls.dart';
-import 'introspection_impls.dart';
-import 'serialization.dart';
-import 'serialization_extensions.dart';
-
-/// Implementation of [MacroInstanceIdentifier].
-class MacroInstanceIdentifierImpl implements MacroInstanceIdentifier {
-  /// Unique identifier for this instance, passed in from the server.
-  final int id;
-
-  /// A single int where each bit indicates whether a specific macro interface
-  /// is implemented by this macro.
-  final int _interfaces;
-
-  MacroInstanceIdentifierImpl._(this.id, this._interfaces);
-
-  factory MacroInstanceIdentifierImpl(Macro macro, int instanceId) {
-    // Build up the interfaces value, there is a bit for each declaration/phase
-    // combination (as there is an interface for each).
-    int interfaces = 0;
-    for (DeclarationKind declarationKind in DeclarationKind.values) {
-      for (Phase phase in Phase.values) {
-        int interfaceMask = _interfaceMask(declarationKind, phase);
-        switch (declarationKind) {
-          case DeclarationKind.classType:
-            switch (phase) {
-              case Phase.types:
-                if (macro is ClassTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is ClassDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is ClassDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.constructor:
-            switch (phase) {
-              case Phase.types:
-                if (macro is ConstructorTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is ConstructorDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is ConstructorDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.extension:
-            switch (phase) {
-              case Phase.types:
-                if (macro is ExtensionTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is ExtensionDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is ExtensionDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.extensionType:
-            switch (phase) {
-              case Phase.types:
-                if (macro is ExtensionTypeTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is ExtensionTypeDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is ExtensionTypeDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.field:
-            switch (phase) {
-              case Phase.types:
-                if (macro is FieldTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is FieldDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is FieldDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.function:
-            switch (phase) {
-              case Phase.types:
-                if (macro is FunctionTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is FunctionDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is FunctionDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.library:
-            switch (phase) {
-              case Phase.types:
-                if (macro is LibraryTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is LibraryDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is LibraryDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.method:
-            switch (phase) {
-              case Phase.types:
-                if (macro is MethodTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is MethodDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is MethodDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.enumType:
-            switch (phase) {
-              case Phase.types:
-                if (macro is EnumTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is EnumDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is EnumDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.enumValue:
-            switch (phase) {
-              case Phase.types:
-                if (macro is EnumValueTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is EnumValueDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is EnumValueDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.mixinType:
-            switch (phase) {
-              case Phase.types:
-                if (macro is MixinTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is MixinDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is MixinDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-          case DeclarationKind.typeAlias:
-            switch (phase) {
-              case Phase.types:
-                if (macro is TypeAliasTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is TypeAliasDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                // Does not have definitions.
-                break;
-            }
-          case DeclarationKind.variable:
-            switch (phase) {
-              case Phase.types:
-                if (macro is VariableTypesMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.declarations:
-                if (macro is VariableDeclarationsMacro) {
-                  interfaces |= interfaceMask;
-                }
-              case Phase.definitions:
-                if (macro is VariableDefinitionMacro) {
-                  interfaces |= interfaceMask;
-                }
-            }
-        }
-      }
-    }
-
-    return MacroInstanceIdentifierImpl._(instanceId, interfaces);
-  }
-
-  MacroInstanceIdentifierImpl.deserialize(Deserializer deserializer)
-      : id = (deserializer..moveNext()).expectInt(),
-        _interfaces = (deserializer..moveNext()).expectInt();
-
-  @override
-  void serialize(Serializer serializer) => serializer
-    ..addInt(id)
-    ..addInt(_interfaces);
-
-  @override
-  operator ==(other) => other is MacroInstanceIdentifierImpl && id == other.id;
-
-  @override
-  int get hashCode => id;
-
-  @override
-  bool shouldExecute(DeclarationKind declarationKind, Phase phase) {
-    int mask = _interfaceMask(declarationKind, phase);
-    if (declarationKind == DeclarationKind.method) {
-      // Apply function macros to methods.
-      mask |= _interfaceMask(DeclarationKind.function, phase);
-    } else if (declarationKind == DeclarationKind.field) {
-      // Apply variable macros to fields.
-      mask |= _interfaceMask(DeclarationKind.variable, phase);
-    }
-    return _interfaces & mask != 0x0;
-  }
-
-  @override
-  bool supportsDeclarationKind(DeclarationKind declarationKind) {
-    for (Phase phase in Phase.values) {
-      if (shouldExecute(declarationKind, phase)) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  /// The mask for a particular interface, which is a combination of a kind of
-  /// declaration and a phase.
-  static int _interfaceMask(DeclarationKind declarationKind, Phase phase) =>
-      0x1 << (declarationKind.index * Phase.values.length) << phase.index;
-}
-
-/// Implementation of [MacroExecutionResult].
-class MacroExecutionResultImpl implements MacroExecutionResult {
-  @override
-  final List<Diagnostic> diagnostics;
-
-  @override
-  final MacroExceptionImpl? exception;
-
-  @override
-  final Map<IdentifierImpl, List<DeclarationCode>> enumValueAugmentations;
-
-  @override
-  final Map<IdentifierImpl, List<TypeAnnotationCode>> interfaceAugmentations;
-
-  @override
-  final List<DeclarationCode> libraryAugmentations;
-
-  @override
-  final Map<IdentifierImpl, List<TypeAnnotationCode>> mixinAugmentations;
-
-  @override
-  final List<String> newTypeNames;
-
-  @override
-  final Map<IdentifierImpl, List<DeclarationCode>> typeAugmentations;
-
-  MacroExecutionResultImpl({
-    required this.diagnostics,
-    this.exception,
-    required this.enumValueAugmentations,
-    required this.interfaceAugmentations,
-    required this.libraryAugmentations,
-    required this.mixinAugmentations,
-    required this.newTypeNames,
-    required this.typeAugmentations,
-  });
-
-  factory MacroExecutionResultImpl.deserialize(Deserializer deserializer) {
-    deserializer
-      ..moveNext()
-      ..expectList();
-    List<Diagnostic> diagnostics = [
-      for (; deserializer.moveNext();) deserializer.expectDiagnostic(),
-    ];
-
-    MacroExceptionImpl? exception = (deserializer..moveNext()).checkNull()
-        ? null
-        : deserializer.expectRemoteInstance();
-
-    deserializer
-      ..moveNext()
-      ..expectList();
-    Map<IdentifierImpl, List<DeclarationCode>> enumValueAugmentations = {
-      for (; deserializer.moveNext();)
-        deserializer.expectRemoteInstance(): [
-          for (bool hasNextCode = (deserializer
-                    ..moveNext()
-                    ..expectList())
-                  .moveNext();
-              hasNextCode;
-              hasNextCode = deserializer.moveNext())
-            deserializer.expectCode(),
-        ]
-    };
-
-    deserializer
-      ..moveNext()
-      ..expectList();
-    Map<IdentifierImpl, List<TypeAnnotationCode>> interfaceAugmentations = {
-      for (; deserializer.moveNext();)
-        deserializer.expectRemoteInstance(): [
-          for (bool hasNextCode = (deserializer
-                    ..moveNext()
-                    ..expectList())
-                  .moveNext();
-              hasNextCode;
-              hasNextCode = deserializer.moveNext())
-            deserializer.expectCode(),
-        ]
-    };
-
-    deserializer
-      ..moveNext()
-      ..expectList();
-    List<DeclarationCode> libraryAugmentations = [
-      for (; deserializer.moveNext();) deserializer.expectCode()
-    ];
-
-    deserializer
-      ..moveNext()
-      ..expectList();
-    Map<IdentifierImpl, List<TypeAnnotationCode>> mixinAugmentations = {
-      for (; deserializer.moveNext();)
-        deserializer.expectRemoteInstance(): [
-          for (bool hasNextCode = (deserializer
-                    ..moveNext()
-                    ..expectList())
-                  .moveNext();
-              hasNextCode;
-              hasNextCode = deserializer.moveNext())
-            deserializer.expectCode(),
-        ]
-    };
-
-    deserializer
-      ..moveNext()
-      ..expectList();
-    List<String> newTypeNames = [
-      for (; deserializer.moveNext();) deserializer.expectString()
-    ];
-
-    deserializer
-      ..moveNext()
-      ..expectList();
-    Map<IdentifierImpl, List<DeclarationCode>> typeAugmentations = {
-      for (; deserializer.moveNext();)
-        deserializer.expectRemoteInstance(): [
-          for (bool hasNextCode = (deserializer
-                    ..moveNext()
-                    ..expectList())
-                  .moveNext();
-              hasNextCode;
-              hasNextCode = deserializer.moveNext())
-            deserializer.expectCode(),
-        ]
-    };
-
-    return MacroExecutionResultImpl(
-      diagnostics: diagnostics,
-      exception: exception,
-      enumValueAugmentations: enumValueAugmentations,
-      interfaceAugmentations: interfaceAugmentations,
-      libraryAugmentations: libraryAugmentations,
-      mixinAugmentations: mixinAugmentations,
-      newTypeNames: newTypeNames,
-      typeAugmentations: typeAugmentations,
-    );
-  }
-
-  @override
-  void serialize(Serializer serializer) {
-    serializer.startList();
-    for (Diagnostic diagnostic in diagnostics) {
-      diagnostic.serialize(serializer);
-    }
-    serializer.endList();
-
-    if (exception == null) {
-      serializer.addNull();
-    } else {
-      exception!.serialize(serializer);
-    }
-
-    serializer.startList();
-    for (IdentifierImpl enuum in enumValueAugmentations.keys) {
-      enuum.serialize(serializer);
-      serializer.startList();
-      for (DeclarationCode augmentation in enumValueAugmentations[enuum]!) {
-        augmentation.serialize(serializer);
-      }
-      serializer.endList();
-    }
-    serializer.endList();
-
-    serializer.startList();
-    for (IdentifierImpl type in interfaceAugmentations.keys) {
-      type.serialize(serializer);
-      serializer.startList();
-      for (TypeAnnotationCode interface in interfaceAugmentations[type]!) {
-        interface.serialize(serializer);
-      }
-      serializer.endList();
-    }
-    serializer.endList();
-
-    serializer.startList();
-    for (DeclarationCode augmentation in libraryAugmentations) {
-      augmentation.serialize(serializer);
-    }
-    serializer.endList();
-
-    serializer.startList();
-    for (IdentifierImpl type in mixinAugmentations.keys) {
-      type.serialize(serializer);
-      serializer.startList();
-      for (TypeAnnotationCode mixin in mixinAugmentations[type]!) {
-        mixin.serialize(serializer);
-      }
-      serializer.endList();
-    }
-    serializer.endList();
-
-    serializer.startList();
-    for (String name in newTypeNames) {
-      serializer.addString(name);
-    }
-    serializer.endList();
-
-    serializer.startList();
-    for (IdentifierImpl type in typeAugmentations.keys) {
-      type.serialize(serializer);
-      serializer.startList();
-      for (DeclarationCode augmentation in typeAugmentations[type]!) {
-        augmentation.serialize(serializer);
-      }
-      serializer.endList();
-    }
-    serializer.endList();
-  }
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/serialization.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/serialization.dart
deleted file mode 100644
index bce1755..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/serialization.dart
+++ /dev/null
@@ -1,742 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:typed_data';
-
-/// All serialization must be done in a serialization Zone, as well as a remote
-/// instance cache zone. This outer serialization zone informs the code of which
-/// protocol we are using for serialization.
-T withSerializationMode<T>(
-  SerializationMode mode,
-  T Function() fn, {
-  Serializer Function()? serializerFactory,
-  Deserializer Function(Object? data)? deserializerFactory,
-}) =>
-    runZoned(fn, zoneValues: {
-      #serializationMode: mode,
-    });
-
-/// Serializable interface
-abstract class Serializable {
-  /// Serializes this object using [serializer].
-  void serialize(Serializer serializer);
-}
-
-/// A push based object serialization interface.
-abstract class Serializer {
-  /// Serializes a [String].
-  void addString(String value);
-
-  /// Serializes a nullable [String].
-  void addNullableString(String? value) =>
-      value == null ? addNull() : addString(value);
-
-  /// Serializes a [double].
-  void addDouble(double value);
-
-  /// Serializes a nullable [double].
-  void addNullableDouble(double? value) =>
-      value == null ? addNull() : addDouble(value);
-
-  /// Serializes an [int].
-  void addInt(int value);
-
-  /// Serializes a nullable [int].
-  void addNullableInt(int? value) => value == null ? addNull() : addInt(value);
-
-  /// Serializes a [bool].
-  void addBool(bool value);
-
-  /// Serializes a nullable [bool].
-  void addNullableBool(bool? value) =>
-      value == null ? addNull() : addBool(value);
-
-  /// Serializes a `null` literal.
-  void addNull();
-
-  /// Used to signal the start of an arbitrary length list of items.
-  void startList();
-
-  /// Used to signal the end of an arbitrary length list of items.
-  void endList();
-
-  /// Returns the resulting serialized object.
-  Object get result;
-}
-
-/// A pull based object deserialization interface.
-///
-/// You must call [moveNext] before reading any items, and in order to advance
-/// to the next item.
-abstract class Deserializer {
-  /// Checks if the current value is a null, returns `true` if so and `false`
-  /// otherwise.
-  bool checkNull();
-
-  /// Reads the current value as a non-nullable [String].
-  bool expectBool();
-
-  /// Reads the current value as a nullable [bool].
-  bool? expectNullableBool() => checkNull() ? null : expectBool();
-
-  /// Reads the current value as a non-nullable [double].
-  double expectDouble();
-
-  /// Reads the current value as a nullable [double].
-  double? expectNullableDouble() => checkNull() ? null : expectDouble();
-
-  /// Reads the current value as a non-nullable [int].
-  int expectInt();
-
-  /// Reads the current value as a nullable [int].
-  int? expectNullableInt() => checkNull() ? null : expectInt();
-
-  /// Reads the current value as a non-nullable [String].
-  String expectString();
-
-  /// Reads the current value as a nullable [String].
-  String? expectNullableString() => checkNull() ? null : expectString();
-
-  /// Asserts that the current item is the start of a list.
-  ///
-  /// An example for how to read from a list is as follows:
-  ///
-  /// var json = JsonReader.fromString(source);
-  /// I know it's a list of strings.
-  ///
-  /// ```
-  ///   var result = <String>[];
-  ///   deserializer.moveNext();
-  ///   deserializer.expectList();
-  ///   while (json.moveNext()) {
-  ///     result.add(json.expectString());
-  ///   }
-  ///   // Can now read later items, but need to call `moveNext` again to move
-  ///   // past the list.
-  ///   deserializer.moveNext();
-  ///   deserializer.expectBool();
-  /// ```
-  void expectList();
-
-  /// Moves to the next item, returns `false` if there are no more items to
-  /// read.
-  ///
-  /// If inside of a list, this returns `false` when the end of the list is
-  /// reached, and moves back to the parent, but does not advance it, so another
-  /// call to `moveNext` is needed. See example in the [expectList] docs.
-  bool moveNext();
-}
-
-class JsonSerializer implements Serializer {
-  /// The full result.
-  final _result = <Object?>[];
-
-  /// A path to the current list we are modifying.
-  late final List<List<Object?>> _path = [_result];
-
-  /// Returns the result as an unmodifiable [Iterable].
-  ///
-  /// Asserts that all [List] entries have not been closed with [endList].
-  @override
-  Iterable<Object?> get result {
-    assert(_path.length == 1);
-    return _result;
-  }
-
-  @override
-  void addBool(bool value) => _path.last.add(value);
-  @override
-  void addNullableBool(bool? value) => _path.last.add(value);
-
-  @override
-  void addDouble(double value) => _path.last.add(value);
-  @override
-  void addNullableDouble(double? value) => _path.last.add(value);
-
-  @override
-  void addInt(int value) => _path.last.add(value);
-  @override
-  void addNullableInt(int? value) => _path.last.add(value);
-
-  @override
-  void addString(String value) => _path.last.add(value);
-  @override
-  void addNullableString(String? value) => _path.last.add(value);
-
-  @override
-  void addNull() => _path.last.add(null);
-
-  @override
-  void startList() {
-    List<Object?> sublist = [];
-    _path.last.add(sublist);
-    _path.add(sublist);
-  }
-
-  @override
-  void endList() {
-    _path.removeLast();
-  }
-}
-
-class JsonDeserializer implements Deserializer {
-  /// The root source list to read from.
-  final Iterable<Object?> _source;
-
-  /// The path to the current iterator we are reading from.
-  late final List<Iterator<Object?>> _path = [];
-
-  /// Whether we have received our first [moveNext] call.
-  bool _initialized = false;
-
-  /// Initialize this deserializer from `_source`.
-  JsonDeserializer(this._source);
-
-  @override
-  bool checkNull() => _expectValue<Object?>() == null;
-
-  @override
-  void expectList() => _path.add(_expectValue<Iterable<Object?>>().iterator);
-
-  @override
-  bool expectBool() => _expectValue();
-  @override
-  bool? expectNullableBool() => _expectValue();
-
-  @override
-  double expectDouble() => _expectValue();
-  @override
-  double? expectNullableDouble() => _expectValue();
-
-  @override
-  int expectInt() => _expectValue();
-  @override
-  int? expectNullableInt() => _expectValue();
-
-  @override
-  String expectString() => _expectValue();
-  @override
-  String? expectNullableString() => _expectValue();
-
-  /// Reads the current value and casts it to [T].
-  T _expectValue<T>() {
-    if (!_initialized) {
-      throw StateError('You must call `moveNext()` before reading any values.');
-    }
-    Object? current = _path.last.current;
-    if (current is! T) {
-      throw StateError('Expected $T, got: ${_path.last.current}');
-    }
-    return current;
-  }
-
-  @override
-  bool moveNext() {
-    if (!_initialized) {
-      _path.add(_source.iterator);
-      _initialized = true;
-    }
-
-    // Move the current iterable, if it's at the end of its items remove it from
-    // the current path and return false.
-    if (!_path.last.moveNext()) {
-      _path.removeLast();
-      return false;
-    }
-
-    return true;
-  }
-}
-
-class ByteDataSerializer extends Serializer {
-  final BytesBuilder _builder = BytesBuilder();
-
-  // Re-usable 8 byte list and view for encoding doubles.
-  final Uint8List _eightByteList = Uint8List(8);
-  late final ByteData _eightByteListData = ByteData.sublistView(_eightByteList);
-
-  @override
-  void addBool(bool value) => _builder
-      .addByte(value ? DataKind.boolTrue.index : DataKind.boolFalse.index);
-
-  @override
-  void addDouble(double value) {
-    _eightByteListData.setFloat64(0, value);
-    _builder
-      ..addByte(DataKind.float64.index)
-      ..add(_eightByteList);
-  }
-
-  @override
-  void addNull() => _builder.addByte(DataKind.nil.index);
-
-  @override
-  void addInt(int value) {
-    if (value >= 0x0) {
-      assert(DataKind.values.length < 0xff);
-      if (value <= 0xff - DataKind.values.length) {
-        _builder.addByte(value + DataKind.values.length);
-      } else if (value <= 0xff) {
-        _builder
-          ..addByte(DataKind.uint8.index)
-          ..addByte(value);
-      } else if (value <= 0xffff) {
-        _builder
-          ..addByte(DataKind.uint16.index)
-          ..addByte(value >> 8)
-          ..addByte(value);
-      } else if (value <= 0xffffffff) {
-        _builder
-          ..addByte(DataKind.uint32.index)
-          ..addByte(value >> 24)
-          ..addByte(value >> 16)
-          ..addByte(value >> 8)
-          ..addByte(value);
-      } else {
-        _builder
-          ..addByte(DataKind.uint64.index)
-          ..addByte(value >> 56)
-          ..addByte(value >> 48)
-          ..addByte(value >> 40)
-          ..addByte(value >> 32)
-          ..addByte(value >> 24)
-          ..addByte(value >> 16)
-          ..addByte(value >> 8)
-          ..addByte(value);
-      }
-    } else {
-      if (value >= -0x80) {
-        _builder
-          ..addByte(DataKind.int8.index)
-          ..addByte(value);
-      } else if (value >= -0x8000) {
-        _builder
-          ..addByte(DataKind.int16.index)
-          ..addByte(value >> 8)
-          ..addByte(value);
-      } else if (value >= -0x8000000) {
-        _builder
-          ..addByte(DataKind.int32.index)
-          ..addByte(value >> 24)
-          ..addByte(value >> 16)
-          ..addByte(value >> 8)
-          ..addByte(value);
-      } else {
-        _builder
-          ..addByte(DataKind.int64.index)
-          ..addByte(value >> 56)
-          ..addByte(value >> 48)
-          ..addByte(value >> 40)
-          ..addByte(value >> 32)
-          ..addByte(value >> 24)
-          ..addByte(value >> 16)
-          ..addByte(value >> 8)
-          ..addByte(value);
-      }
-    }
-  }
-
-  @override
-  void addString(String value) {
-    for (int i = 0; i < value.length; i++) {
-      if (value.codeUnitAt(i) > 0xff) {
-        _addTwoByteString(value);
-        return;
-      }
-    }
-    _addOneByteString(value);
-  }
-
-  void _addOneByteString(String value) {
-    _builder.addByte(DataKind.oneByteString.index);
-    addInt(value.length);
-    for (int i = 0; i < value.length; i++) {
-      _builder.addByte(value.codeUnitAt(i));
-    }
-  }
-
-  void _addTwoByteString(String value) {
-    _builder.addByte(DataKind.twoByteString.index);
-    addInt(value.length);
-    for (int i = 0; i < value.length; i++) {
-      int codeUnit = value.codeUnitAt(i);
-      switch (Endian.host) {
-        case Endian.little:
-          _builder
-            ..addByte(codeUnit)
-            ..addByte(codeUnit >> 8);
-          break;
-        case Endian.big:
-          _builder
-            ..addByte(codeUnit >> 8)
-            ..addByte(codeUnit);
-          break;
-      }
-    }
-  }
-
-  @override
-  void startList() => _builder.addByte(DataKind.startList.index);
-
-  @override
-  void endList() => _builder.addByte(DataKind.endList.index);
-
-  /// Used to signal the start of an arbitrary length list of map entries.
-  void startMap() => _builder.addByte(DataKind.startMap.index);
-
-  /// Used to signal the end of an arbitrary length list of map entries.
-  void endMap() => _builder.addByte(DataKind.endMap.index);
-
-  /// Serializes a [Uint8List].
-  void addUint8List(Uint8List value) {
-    _builder.addByte(DataKind.uint8List.index);
-    addInt(value.length);
-    _builder.add(value);
-  }
-
-  /// Serializes an object with arbitrary structure. It supports `bool`,
-  /// `int`, `String`, `null`, `Uint8List`, `List`, `Map`.
-  void addAny(Object? value) {
-    if (value == null) {
-      addNull();
-    } else if (value is bool) {
-      addBool(value);
-    } else if (value is int) {
-      addInt(value);
-    } else if (value is String) {
-      addString(value);
-    } else if (value is Uint8List) {
-      addUint8List(value);
-    } else if (value is List) {
-      startList();
-      value.forEach(addAny);
-      endList();
-    } else if (value is Map) {
-      startMap();
-      for (MapEntry<Object?, Object?> entry in value.entries) {
-        addAny(entry.key);
-        addAny(entry.value);
-      }
-      endMap();
-    } else {
-      throw ArgumentError('(${value.runtimeType}) $value');
-    }
-  }
-
-  @override
-  Uint8List get result => _builder.takeBytes();
-}
-
-class ByteDataDeserializer extends Deserializer {
-  final ByteData _bytes;
-  int _byteOffset = 0;
-  int? _byteOffsetIncrement = 0;
-
-  ByteDataDeserializer(this._bytes);
-
-  /// Reads the next [DataKind] and advances [_byteOffset].
-  DataKind _readKind([int offset = 0]) {
-    int value = _bytes.getUint8(_byteOffset + offset);
-    if (value < DataKind.values.length) {
-      return DataKind.values[value];
-    } else {
-      return DataKind.directEncodedUint8;
-    }
-  }
-
-  @override
-  bool checkNull() {
-    _byteOffsetIncrement = 1;
-    return _readKind() == DataKind.nil;
-  }
-
-  @override
-  bool expectBool() {
-    DataKind kind = _readKind();
-    _byteOffsetIncrement = 1;
-    if (kind == DataKind.boolTrue) {
-      return true;
-    } else if (kind == DataKind.boolFalse) {
-      return false;
-    } else {
-      throw StateError('Expected a bool but found a $kind');
-    }
-  }
-
-  @override
-  double expectDouble() {
-    DataKind kind = _readKind();
-    if (kind != DataKind.float64) {
-      throw StateError('Expected a double but found a $kind');
-    }
-    _byteOffsetIncrement = 9;
-    return _bytes.getFloat64(_byteOffset + 1);
-  }
-
-  @override
-  int expectInt() => _expectInt(0);
-
-  int _expectInt(int offset) {
-    DataKind kind = _readKind(offset);
-    if (kind == DataKind.directEncodedUint8) {
-      _byteOffsetIncrement = offset + 1;
-      return _bytes.getUint8(_byteOffset + offset) - DataKind.values.length;
-    }
-    offset += 1;
-    int result;
-    switch (kind) {
-      case DataKind.int8:
-        result = _bytes.getInt8(_byteOffset + offset);
-        _byteOffsetIncrement = 1 + offset;
-        break;
-      case DataKind.int16:
-        result = _bytes.getInt16(_byteOffset + offset);
-        _byteOffsetIncrement = 2 + offset;
-        break;
-      case DataKind.int32:
-        result = _bytes.getInt32(_byteOffset + offset);
-        _byteOffsetIncrement = 4 + offset;
-        break;
-      case DataKind.int64:
-        result = _bytes.getInt64(_byteOffset + offset);
-        _byteOffsetIncrement = 8 + offset;
-        break;
-      case DataKind.uint8:
-        result = _bytes.getUint8(_byteOffset + offset);
-        _byteOffsetIncrement = 1 + offset;
-        break;
-      case DataKind.uint16:
-        result = _bytes.getUint16(_byteOffset + offset);
-        _byteOffsetIncrement = 2 + offset;
-        break;
-      case DataKind.uint32:
-        result = _bytes.getUint32(_byteOffset + offset);
-        _byteOffsetIncrement = 4 + offset;
-        break;
-      case DataKind.uint64:
-        result = _bytes.getUint64(_byteOffset + offset);
-        _byteOffsetIncrement = 8 + offset;
-        break;
-      default:
-        throw StateError('Expected an int but found a $kind');
-    }
-    return result;
-  }
-
-  @override
-  void expectList() {
-    DataKind kind = _readKind();
-    if (kind != DataKind.startList) {
-      throw StateError('Expected the start to a list but found a $kind');
-    }
-    _byteOffsetIncrement = 1;
-  }
-
-  /// Asserts that the current item is the start of a map.
-  ///
-  /// An example for how to read from a map is as follows:
-  ///
-  /// I know it's a map of ints to strings.
-  ///
-  /// ```
-  ///   var result = <int, String>[];
-  ///   deserializer.expectMap();
-  ///   while (deserializer.moveNext()) {
-  ///     var key = deserializer.expectInt();
-  ///     deserializer.next();
-  ///     var value = deserializer.expectString();
-  ///     result[key] = value;
-  ///   }
-  ///   // We have already called `moveNext` to move past the map.
-  ///   deserializer.expectBool();
-  /// ```
-  void expectMap() {
-    DataKind kind = _readKind();
-    if (kind != DataKind.startMap) {
-      throw StateError('Expected the start to a map but found a $kind');
-    }
-    _byteOffsetIncrement = 1;
-  }
-
-  @override
-  String expectString() {
-    DataKind kind = _readKind();
-    int length = _expectInt(1);
-    int offset = _byteOffsetIncrement! + _byteOffset;
-    if (kind == DataKind.oneByteString) {
-      _byteOffsetIncrement = _byteOffsetIncrement! + length;
-      return String.fromCharCodes(_bytes.buffer.asUint8List(offset, length));
-    } else if (kind == DataKind.twoByteString) {
-      length = length * 2;
-      _byteOffsetIncrement = _byteOffsetIncrement! + length;
-      Uint8List bytes =
-          Uint8List.fromList(_bytes.buffer.asUint8List(offset, length));
-      return String.fromCharCodes(bytes.buffer.asUint16List());
-    } else {
-      throw StateError('Expected a string but found a $kind');
-    }
-  }
-
-  /// Reads the current value as [Uint8List].
-  Uint8List expectUint8List() {
-    _byteOffsetIncrement = 1;
-    moveNext();
-    int length = expectInt();
-    int offset = _byteOffset + _byteOffsetIncrement!;
-    _byteOffsetIncrement = _byteOffsetIncrement! + length;
-    return _bytes.buffer.asUint8List(offset, length);
-  }
-
-  /// Reads the current value as an object of arbitrary structure.
-  Object? expectAny() {
-    const Set<DataKind> boolKinds = {
-      DataKind.boolFalse,
-      DataKind.boolTrue,
-    };
-
-    const Set<DataKind> intKinds = {
-      DataKind.directEncodedUint8,
-      DataKind.int8,
-      DataKind.int16,
-      DataKind.int32,
-      DataKind.int64,
-      DataKind.uint8,
-      DataKind.uint16,
-      DataKind.uint32,
-      DataKind.uint64,
-    };
-
-    const Set<DataKind> stringKinds = {
-      DataKind.oneByteString,
-      DataKind.twoByteString,
-    };
-
-    DataKind kind = _readKind();
-    if (boolKinds.contains(kind)) {
-      return expectBool();
-    } else if (kind == DataKind.nil) {
-      checkNull();
-      return null;
-    } else if (intKinds.contains(kind)) {
-      return expectInt();
-    } else if (stringKinds.contains(kind)) {
-      return expectString();
-    } else if (kind == DataKind.startList) {
-      List<Object?> result = [];
-      expectList();
-      while (moveNext()) {
-        Object? element = expectAny();
-        result.add(element);
-      }
-      return result;
-    } else if (kind == DataKind.startMap) {
-      Map<Object?, Object?> result = {};
-      expectMap();
-      while (moveNext()) {
-        Object? key = expectAny();
-        moveNext();
-        Object? value = expectAny();
-        result[key] = value;
-      }
-      return result;
-    } else if (kind == DataKind.uint8List) {
-      return expectUint8List();
-    } else {
-      throw StateError('Expected: $kind');
-    }
-  }
-
-  @override
-  bool moveNext() {
-    int? increment = _byteOffsetIncrement;
-    _byteOffsetIncrement = null;
-    if (increment == null) {
-      throw StateError("Can't move until consuming the current element");
-    }
-    _byteOffset += increment;
-    if (_byteOffset >= _bytes.lengthInBytes) {
-      return false;
-    } else if (_readKind() == DataKind.endList ||
-        _readKind() == DataKind.endMap) {
-      // You don't explicitly consume list/map end markers.
-      _byteOffsetIncrement = 1;
-      return false;
-    } else {
-      return true;
-    }
-  }
-}
-
-enum DataKind {
-  nil,
-  boolTrue,
-  boolFalse,
-  directEncodedUint8, // Encoded in the kind byte.
-  startList,
-  endList,
-  startMap,
-  endMap,
-  int8,
-  int16,
-  int32,
-  int64,
-  uint8,
-  uint16,
-  uint32,
-  uint64,
-  float64,
-  oneByteString,
-  twoByteString,
-  uint8List,
-}
-
-/// Must be set using `withSerializationMode` before doing any serialization or
-/// deserialization.
-SerializationMode get serializationMode {
-  SerializationMode? mode =
-      Zone.current[#serializationMode] as SerializationMode?;
-  if (mode == null) {
-    throw StateError('No SerializationMode set, you must do all '
-        'serialization inside a call to `withSerializationMode`.');
-  }
-  return mode;
-}
-
-/// Returns the current deserializer factory for the zone.
-Deserializer Function(Object?) get deserializerFactory =>
-    switch (serializationMode) {
-      SerializationMode.byteData => (Object? message) =>
-          ByteDataDeserializer(ByteData.sublistView(message as Uint8List)),
-      SerializationMode.json => (Object? message) =>
-          JsonDeserializer(message as Iterable<Object?>),
-    };
-
-/// Returns the current serializer factory for the zone.
-Serializer Function() get serializerFactory => switch (serializationMode) {
-      SerializationMode.byteData => ByteDataSerializer.new,
-      SerializationMode.json => JsonSerializer.new,
-    };
-
-/// Some objects are serialized differently on the client side versus the server
-/// side. This indicates the different modes, as well as the format used.
-enum SerializationMode {
-  byteData,
-  json;
-
-  factory SerializationMode.fromOption(String option) => switch (option) {
-        'json' => SerializationMode.json,
-        'bytedata' => SerializationMode.byteData,
-        _ => throw ArgumentError('Unrecognized macro serialization mode '
-            '$option'),
-      };
-}
-
-extension SerializationModeHelpers on SerializationMode {
-  /// A stable string to write in code.
-  String get asCode => switch (this) {
-        SerializationMode.byteData => 'SerializationMode.byteData',
-        SerializationMode.json => 'SerializationMode.json',
-      };
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/serialization_extensions.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/serialization_extensions.dart
deleted file mode 100644
index f770489b..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/serialization_extensions.dart
+++ /dev/null
@@ -1,660 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import '../api.dart';
-import 'exception_impls.dart';
-import 'introspection_impls.dart';
-import 'remote_instance.dart';
-import 'serialization.dart';
-
-extension DeserializerExtensions on Deserializer {
-  T expectRemoteInstance<T extends Object>() {
-    int id = expectInt();
-
-    // If cached, just return the instance. Only the ID should be sent.
-    RemoteInstance? cached = RemoteInstance.cached(id);
-    if (cached != null) {
-      return cached as T;
-    }
-
-    moveNext();
-    RemoteInstanceKind kind = RemoteInstanceKind.values[expectInt()];
-    final RemoteInstance instance = switch (kind) {
-      RemoteInstanceKind.declarationPhaseIntrospector ||
-      RemoteInstanceKind.definitionPhaseIntrospector ||
-      RemoteInstanceKind.typePhaseIntrospector ||
-      RemoteInstanceKind.namedStaticType ||
-      RemoteInstanceKind.staticType =>
-        // These are simple wrappers, just pass in the kind
-        RemoteInstanceImpl(id: id, kind: kind),
-      RemoteInstanceKind.classDeclaration =>
-        (this..moveNext())._expectClassDeclaration(id),
-      RemoteInstanceKind.constructorMetadataAnnotation =>
-        (this..moveNext())._expectConstructorMetadataAnnotation(id),
-      RemoteInstanceKind.enumDeclaration =>
-        (this..moveNext())._expectEnumDeclaration(id),
-      RemoteInstanceKind.enumValueDeclaration =>
-        (this..moveNext())._expectEnumValueDeclaration(id),
-      RemoteInstanceKind.extensionDeclaration =>
-        (this..moveNext())._expectExtensionDeclaration(id),
-      RemoteInstanceKind.extensionTypeDeclaration =>
-        (this..moveNext())._expectExtensionTypeDeclaration(id),
-      RemoteInstanceKind.mixinDeclaration =>
-        (this..moveNext())._expectMixinDeclaration(id),
-      RemoteInstanceKind.constructorDeclaration =>
-        (this..moveNext())._expectConstructorDeclaration(id),
-      RemoteInstanceKind.fieldDeclaration =>
-        (this..moveNext())._expectFieldDeclaration(id),
-      RemoteInstanceKind.functionDeclaration =>
-        (this..moveNext())._expectFunctionDeclaration(id),
-      RemoteInstanceKind.functionTypeAnnotation =>
-        (this..moveNext())._expectFunctionTypeAnnotation(id),
-      RemoteInstanceKind.formalParameter =>
-        (this..moveNext())._expectFormalParameter(id),
-      RemoteInstanceKind.identifier => (this..moveNext())._expectIdentifier(id),
-      RemoteInstanceKind.identifierMetadataAnnotation =>
-        (this..moveNext())._expectIdentifierMetadataAnnotation(id),
-      RemoteInstanceKind.library => (this..moveNext())._expectLibrary(id),
-      RemoteInstanceKind.methodDeclaration =>
-        (this..moveNext())._expectMethodDeclaration(id),
-      RemoteInstanceKind.namedTypeAnnotation =>
-        (this..moveNext())._expectNamedTypeAnnotation(id),
-      RemoteInstanceKind.omittedTypeAnnotation =>
-        (this..moveNext())._expectOmittedTypeAnnotation(id),
-      RemoteInstanceKind.formalParameterDeclaration =>
-        (this..moveNext())._expectFormalParameterDeclaration(id),
-      RemoteInstanceKind.recordField =>
-        (this..moveNext())._expectRecordField(id),
-      RemoteInstanceKind.recordTypeAnnotation =>
-        (this..moveNext())._expectRecordTypeAnnotation(id),
-      RemoteInstanceKind.typeAliasDeclaration =>
-        (this..moveNext())._expectTypeAliasDeclaration(id),
-      RemoteInstanceKind.typeParameter =>
-        (this..moveNext())._expectTypeParameter(id),
-      RemoteInstanceKind.typeParameterDeclaration =>
-        (this..moveNext())._expectTypeParameterDeclaration(id),
-      RemoteInstanceKind.variableDeclaration =>
-        (this..moveNext())._expectVariableDeclaration(id),
-
-      // Exceptions.
-      RemoteInstanceKind.macroImplementationException ||
-      RemoteInstanceKind.macroIntrospectionCycleException ||
-      RemoteInstanceKind.unexpectedMacroException =>
-        (this..moveNext())._expectException(kind, id),
-    };
-    RemoteInstance.cache(instance);
-    return instance as T;
-  }
-
-  Uri expectUri() => Uri.parse(expectString());
-
-  /// Reads a list of [RemoteInstance]s.
-  List<T> _expectRemoteInstanceList<T extends RemoteInstance>() {
-    expectList();
-    return [
-      for (bool hasNext = moveNext(); hasNext; hasNext = moveNext())
-        expectRemoteInstance(),
-    ];
-  }
-
-  /// Reads a list of [Code]s.
-  List<T> _expectCodeList<T extends Code>() {
-    expectList();
-    return [
-      for (bool hasNext = moveNext(); hasNext; hasNext = moveNext())
-        expectCode(),
-    ];
-  }
-
-  /// Reads a `Map<String, T extends Code>`.
-  Map<String, T> _expectStringCodeMap<T extends Code>() {
-    expectList();
-    return {
-      for (bool hasNext = moveNext(); hasNext; hasNext = moveNext())
-        expectString(): (this..moveNext()).expectCode(),
-    };
-  }
-
-  NamedTypeAnnotationImpl _expectNamedTypeAnnotation(int id) =>
-      NamedTypeAnnotationImpl(
-        id: id,
-        isNullable: expectBool(),
-        identifier: RemoteInstance.deserialize(this),
-        typeArguments: (this..moveNext())._expectRemoteInstanceList(),
-      );
-
-  OmittedTypeAnnotationImpl _expectOmittedTypeAnnotation(int id) {
-    expectBool(); // Always `false`.
-    return OmittedTypeAnnotationImpl(
-      id: id,
-    );
-  }
-
-  FunctionTypeAnnotationImpl _expectFunctionTypeAnnotation(int id) =>
-      FunctionTypeAnnotationImpl(
-        id: id,
-        isNullable: expectBool(),
-        returnType: RemoteInstance.deserialize(this),
-        positionalParameters: (this..moveNext())._expectRemoteInstanceList(),
-        namedParameters: (this..moveNext())._expectRemoteInstanceList(),
-        typeParameters: (this..moveNext())._expectRemoteInstanceList(),
-      );
-
-  FormalParameterImpl _expectFormalParameter(int id) =>
-      FormalParameterImpl.fromBitMask(
-        id: id,
-        bitMask: BitMask(expectInt()),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        name: (this..moveNext()).expectNullableString(),
-        type: RemoteInstance.deserialize(this),
-      );
-
-  IdentifierImpl _expectIdentifier(int id) => IdentifierImpl(
-        id: id,
-        name: expectString(),
-      );
-
-  FormalParameterDeclarationImpl _expectFormalParameterDeclaration(int id) =>
-      FormalParameterDeclarationImpl.fromBitMask(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        bitMask: BitMask((this..moveNext()).expectInt()),
-        type: RemoteInstance.deserialize(this),
-      );
-
-  RecordFieldImpl _expectRecordField(int id) => RecordFieldImpl(
-      id: id,
-      name: expectNullableString(),
-      type: (this..moveNext()).expectRemoteInstance());
-
-  RecordTypeAnnotationImpl _expectRecordTypeAnnotation(int id) =>
-      RecordTypeAnnotationImpl(
-        id: id,
-        isNullable: expectBool(),
-        namedFields: (this..moveNext())._expectRemoteInstanceList(),
-        positionalFields: (this..moveNext())._expectRemoteInstanceList(),
-      );
-
-  TypeParameterImpl _expectTypeParameter(int id) => TypeParameterImpl(
-        id: id,
-        bound: checkNull() ? null : expectRemoteInstance(),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        name: (this..moveNext()).expectString(),
-      );
-
-  TypeParameterDeclarationImpl _expectTypeParameterDeclaration(int id) =>
-      TypeParameterDeclarationImpl(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        bound: (this..moveNext()).checkNull() ? null : expectRemoteInstance(),
-      );
-
-  FunctionDeclarationImpl _expectFunctionDeclaration(int id) =>
-      FunctionDeclarationImpl.fromBitMask(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        bitMask: BitMask((this..moveNext()).expectInt()),
-        namedParameters: (this..moveNext())._expectRemoteInstanceList(),
-        positionalParameters: (this..moveNext())._expectRemoteInstanceList(),
-        returnType: RemoteInstance.deserialize(this),
-        typeParameters: (this..moveNext())._expectRemoteInstanceList(),
-      );
-
-  MethodDeclarationImpl _expectMethodDeclaration(int id) =>
-      MethodDeclarationImpl.fromBitMask(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        bitMask: BitMask((this..moveNext()).expectInt()),
-        namedParameters: (this..moveNext())._expectRemoteInstanceList(),
-        positionalParameters: (this..moveNext())._expectRemoteInstanceList(),
-        returnType: RemoteInstance.deserialize(this),
-        typeParameters: (this..moveNext())._expectRemoteInstanceList(),
-        definingType: RemoteInstance.deserialize(this),
-      );
-
-  ConstructorDeclarationImpl _expectConstructorDeclaration(int id) =>
-      ConstructorDeclarationImpl.fromBitMask(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        bitMask: BitMask((this..moveNext()).expectInt()),
-        namedParameters: (this..moveNext())._expectRemoteInstanceList(),
-        positionalParameters: (this..moveNext())._expectRemoteInstanceList(),
-        returnType: RemoteInstance.deserialize(this),
-        typeParameters: (this..moveNext())._expectRemoteInstanceList(),
-        definingType: RemoteInstance.deserialize(this),
-      );
-
-  VariableDeclarationImpl _expectVariableDeclaration(int id) =>
-      VariableDeclarationImpl.fromBitMask(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        bitMask: BitMask((this..moveNext()).expectInt()),
-        type: RemoteInstance.deserialize(this),
-      );
-
-  FieldDeclarationImpl _expectFieldDeclaration(int id) =>
-      FieldDeclarationImpl.fromBitMask(
-        id: id,
-        // Declaration fields.
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        bitMask: BitMask((this..moveNext()).expectInt()),
-        type: RemoteInstance.deserialize(this),
-        // FieldDeclaration fields
-        definingType: RemoteInstance.deserialize(this),
-      );
-
-  ClassDeclarationImpl _expectClassDeclaration(int id) =>
-      ClassDeclarationImpl.fromBitMask(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        typeParameters: (this..moveNext())._expectRemoteInstanceList(),
-        bitMask: BitMask((this..moveNext()).expectInt()),
-        interfaces: (this..moveNext())._expectRemoteInstanceList(),
-        mixins: (this..moveNext())._expectRemoteInstanceList(),
-        superclass:
-            (this..moveNext()).checkNull() ? null : expectRemoteInstance(),
-      );
-
-  ConstructorMetadataAnnotationImpl _expectConstructorMetadataAnnotation(
-          int id) =>
-      ConstructorMetadataAnnotationImpl(
-          id: id,
-          constructor: expectRemoteInstance(),
-          type: RemoteInstance.deserialize(this),
-          positionalArguments: (this..moveNext())._expectCodeList(),
-          namedArguments: (this..moveNext())._expectStringCodeMap());
-
-  IdentifierMetadataAnnotationImpl _expectIdentifierMetadataAnnotation(
-          int id) =>
-      IdentifierMetadataAnnotationImpl(
-        id: id,
-        identifier: expectRemoteInstance(),
-      );
-
-  EnumDeclarationImpl _expectEnumDeclaration(int id) => EnumDeclarationImpl(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        typeParameters: (this..moveNext())._expectRemoteInstanceList(),
-        interfaces: (this..moveNext())._expectRemoteInstanceList(),
-        mixins: (this..moveNext())._expectRemoteInstanceList(),
-      );
-
-  MixinDeclarationImpl _expectMixinDeclaration(int id) => MixinDeclarationImpl(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        typeParameters: (this..moveNext())._expectRemoteInstanceList(),
-        hasBase: (this..moveNext()).expectBool(),
-        interfaces: (this..moveNext())._expectRemoteInstanceList(),
-        superclassConstraints: (this..moveNext())._expectRemoteInstanceList(),
-      );
-
-  EnumValueDeclarationImpl _expectEnumValueDeclaration(int id) =>
-      EnumValueDeclarationImpl(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        definingEnum: RemoteInstance.deserialize(this),
-      );
-
-  MacroExceptionImpl _expectException(RemoteInstanceKind kind, int id) =>
-      MacroExceptionImpl(
-        id: id,
-        kind: kind,
-        message: expectString(),
-        stackTrace: (this..moveNext()).expectNullableString(),
-      );
-
-  ExtensionDeclarationImpl _expectExtensionDeclaration(int id) =>
-      ExtensionDeclarationImpl(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        typeParameters: (this..moveNext())._expectRemoteInstanceList(),
-        onType: RemoteInstance.deserialize(this),
-      );
-
-  ExtensionTypeDeclarationImpl _expectExtensionTypeDeclaration(int id) =>
-      ExtensionTypeDeclarationImpl(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        typeParameters: (this..moveNext())._expectRemoteInstanceList(),
-        representationType: RemoteInstance.deserialize(this),
-      );
-
-  TypeAliasDeclarationImpl _expectTypeAliasDeclaration(int id) =>
-      TypeAliasDeclarationImpl(
-        id: id,
-        identifier: expectRemoteInstance(),
-        library: RemoteInstance.deserialize(this),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        typeParameters: (this..moveNext())._expectRemoteInstanceList(),
-        aliasedType: RemoteInstance.deserialize(this),
-      );
-
-  LibraryImpl _expectLibrary(int id) => LibraryImpl(
-        id: id,
-        languageVersion:
-            LanguageVersionImpl(expectInt(), (this..moveNext()).expectInt()),
-        metadata: (this..moveNext())._expectRemoteInstanceList(),
-        uri: (this..moveNext()).expectUri(),
-      );
-
-  List<String> _readStringList() => [
-        for (bool hasNext = (this
-                  ..moveNext()
-                  ..expectList())
-                .moveNext();
-            hasNext;
-            hasNext = moveNext())
-          expectString(),
-      ];
-
-  List<T> _readCodeList<T extends Code>() => [
-        for (bool hasNext = (this
-                  ..moveNext()
-                  ..expectList())
-                .moveNext();
-            hasNext;
-            hasNext = moveNext())
-          expectCode(),
-      ];
-
-  List<Object> _readParts() {
-    moveNext();
-    expectList();
-    List<Object> parts = [];
-    while (moveNext()) {
-      _CodePartKind partKind = _CodePartKind.values[expectInt()];
-      moveNext();
-      switch (partKind) {
-        case _CodePartKind.code:
-          parts.add(expectCode());
-          break;
-        case _CodePartKind.string:
-          parts.add(expectString());
-          break;
-        case _CodePartKind.identifier:
-          parts.add(expectRemoteInstance());
-          break;
-      }
-    }
-    return parts;
-  }
-
-  T expectCode<T extends Code>() {
-    CodeKind kind = CodeKind.values[expectInt()];
-
-    return switch (kind) {
-      CodeKind.raw => RawCode.fromParts(_readParts()) as T,
-      CodeKind.rawTypeAnnotation =>
-        RawTypeAnnotationCode.fromParts(_readParts()) as T,
-      CodeKind.comment => CommentCode.fromParts(_readParts()) as T,
-      CodeKind.declaration => DeclarationCode.fromParts(_readParts()) as T,
-      CodeKind.expression => ExpressionCode.fromParts(_readParts()) as T,
-      CodeKind.functionBody => FunctionBodyCode.fromParts(_readParts()) as T,
-      CodeKind.functionTypeAnnotation => FunctionTypeAnnotationCode(
-          namedParameters: _readCodeList(),
-          positionalParameters: _readCodeList(),
-          returnType: (this..moveNext()).expectNullableCode(),
-          typeParameters: _readCodeList()) as T,
-      CodeKind.namedTypeAnnotation => NamedTypeAnnotationCode(
-          name: RemoteInstance.deserialize(this) as Identifier,
-          typeArguments: _readCodeList()) as T,
-      CodeKind.nullableTypeAnnotation =>
-        NullableTypeAnnotationCode((this..moveNext()).expectCode()) as T,
-      CodeKind.omittedTypeAnnotation =>
-        OmittedTypeAnnotationCode(RemoteInstance.deserialize(this)) as T,
-      CodeKind.parameter => ParameterCode(
-          defaultValue: (this..moveNext()).expectNullableCode(),
-          keywords: _readStringList(),
-          name: (this..moveNext()).expectNullableString(),
-          type: (this..moveNext()).expectNullableCode()) as T,
-      CodeKind.recordField => RecordFieldCode(
-          name: (this..moveNext()).expectNullableString(),
-          type: (this..moveNext()).expectCode()) as T,
-      CodeKind.recordTypeAnnotation => RecordTypeAnnotationCode(
-          namedFields: _readCodeList(), positionalFields: _readCodeList()) as T,
-      CodeKind.typeParameter => TypeParameterCode(
-          bound: (this..moveNext()).expectNullableCode(),
-          name: (this..moveNext()).expectString()) as T,
-    };
-  }
-
-  T? expectNullableCode<T extends Code>() {
-    if (checkNull()) return null;
-    return expectCode();
-  }
-
-  Diagnostic expectDiagnostic() {
-    expectList();
-    List<DiagnosticMessage> context = [
-      for (; moveNext();) expectDiagnosticMessage(),
-    ];
-
-    String? correctionMessage = (this..moveNext()).expectNullableString();
-    DiagnosticMessage message = (this..moveNext()).expectDiagnosticMessage();
-    Severity severity = Severity.values[(this..moveNext()).expectInt()];
-
-    return Diagnostic(message, severity,
-        contextMessages: context, correctionMessage: correctionMessage);
-  }
-
-  DiagnosticMessage expectDiagnosticMessage() {
-    String message = expectString();
-
-    moveNext();
-    RemoteInstance? target = checkNull() ? null : expectRemoteInstance();
-
-    return switch (target) {
-      null => DiagnosticMessage(message),
-      DeclarationImpl() =>
-        DiagnosticMessage(message, target: target.asDiagnosticTarget),
-      TypeAnnotationImpl() =>
-        DiagnosticMessage(message, target: target.asDiagnosticTarget),
-      MetadataAnnotationImpl() =>
-        DiagnosticMessage(message, target: target.asDiagnosticTarget),
-      _ => throw UnsupportedError(
-          'Unsupported target type ${target.runtimeType}, only Declarations, '
-          'TypeAnnotations, and Metadata are allowed.'),
-    };
-  }
-}
-
-extension SerializeNullable on Serializable? {
-  /// Either serializes a `null` literal or the object.
-  void serializeNullable(Serializer serializer) {
-    Serializable? self = this;
-    if (self == null) {
-      serializer.addNull();
-    } else {
-      self.serialize(serializer);
-    }
-  }
-}
-
-extension SerializeNullableCode on Code? {
-  /// Either serializes a `null` literal or the code object.
-  void serializeNullable(Serializer serializer) {
-    Code? self = this;
-    if (self == null) {
-      serializer.addNull();
-    } else {
-      self.serialize(serializer);
-    }
-  }
-}
-
-extension SerializeCode on Code {
-  void serialize(Serializer serializer) {
-    serializer.addInt(kind.index);
-    switch (kind) {
-      case CodeKind.namedTypeAnnotation:
-        NamedTypeAnnotationCode self = this as NamedTypeAnnotationCode;
-        (self.name as IdentifierImpl).serialize(serializer);
-        serializer.startList();
-        for (TypeAnnotationCode typeArg in self.typeArguments) {
-          typeArg.serialize(serializer);
-        }
-        serializer.endList();
-        return;
-      case CodeKind.functionTypeAnnotation:
-        FunctionTypeAnnotationCode self = this as FunctionTypeAnnotationCode;
-        serializer.startList();
-        for (ParameterCode named in self.namedParameters) {
-          named.serialize(serializer);
-        }
-        serializer
-          ..endList()
-          ..startList();
-        for (ParameterCode positional in self.positionalParameters) {
-          positional.serialize(serializer);
-        }
-        serializer.endList();
-        self.returnType.serializeNullable(serializer);
-        serializer.startList();
-        for (TypeParameterCode typeParam in self.typeParameters) {
-          typeParam.serialize(serializer);
-        }
-        serializer.endList();
-        return;
-      case CodeKind.nullableTypeAnnotation:
-        NullableTypeAnnotationCode self = this as NullableTypeAnnotationCode;
-        self.underlyingType.serialize(serializer);
-        return;
-      case CodeKind.omittedTypeAnnotation:
-        OmittedTypeAnnotationCode self = this as OmittedTypeAnnotationCode;
-        (self.typeAnnotation as OmittedTypeAnnotationImpl)
-            .serialize(serializer);
-        return;
-      case CodeKind.recordField:
-        RecordFieldCode self = this as RecordFieldCode;
-        serializer.addNullableString(self.name);
-        self.type.serialize(serializer);
-        return;
-      case CodeKind.recordTypeAnnotation:
-        RecordTypeAnnotationCode self = this as RecordTypeAnnotationCode;
-        serializer.startList();
-        for (RecordFieldCode field in self.namedFields) {
-          field.serialize(serializer);
-        }
-        serializer
-          ..endList()
-          ..startList();
-        for (RecordFieldCode field in self.positionalFields) {
-          field.serialize(serializer);
-        }
-        serializer.endList();
-        return;
-      case CodeKind.parameter:
-        ParameterCode self = this as ParameterCode;
-        self.defaultValue.serializeNullable(serializer);
-        serializer.startList();
-        for (String keyword in self.keywords) {
-          serializer.addString(keyword);
-        }
-        serializer
-          ..endList()
-          ..addNullableString(self.name);
-        self.type.serializeNullable(serializer);
-        return;
-      case CodeKind.typeParameter:
-        TypeParameterCode self = this as TypeParameterCode;
-        self.bound.serializeNullable(serializer);
-        serializer.addString(self.name);
-        return;
-      case CodeKind.comment:
-      case CodeKind.declaration:
-      case CodeKind.expression:
-      case CodeKind.raw:
-      case CodeKind.rawTypeAnnotation:
-      case CodeKind.functionBody:
-        serializer.startList();
-        for (Object part in parts) {
-          if (part is String) {
-            serializer
-              ..addInt(_CodePartKind.string.index)
-              ..addString(part);
-          } else if (part is Code) {
-            serializer.addInt(_CodePartKind.code.index);
-            part.serialize(serializer);
-          } else if (part is IdentifierImpl) {
-            serializer.addInt(_CodePartKind.identifier.index);
-            part.serialize(serializer);
-          } else {
-            throw StateError('Unrecognized code part $part');
-          }
-        }
-        serializer.endList();
-        return;
-    }
-  }
-}
-
-extension SerializeDiagnostic on Diagnostic {
-  void serialize(Serializer serializer) {
-    serializer.startList();
-    for (DiagnosticMessage message in contextMessages) {
-      message.serialize(serializer);
-    }
-    serializer.endList();
-
-    serializer.addNullableString(correctionMessage);
-    message.serialize(serializer);
-    serializer.addInt(severity.index);
-  }
-}
-
-extension SerializeDiagnosticMessage on DiagnosticMessage {
-  void serialize(Serializer serializer) {
-    serializer.addString(message);
-    switch (target) {
-      case null:
-        serializer.addNull();
-      case DeclarationDiagnosticTarget target:
-        (target.declaration as DeclarationImpl).serialize(serializer);
-      case TypeAnnotationDiagnosticTarget target:
-        (target.typeAnnotation as TypeAnnotationImpl).serialize(serializer);
-      case MetadataAnnotationDiagnosticTarget target:
-        (target.metadataAnnotation as MetadataAnnotationImpl)
-            .serialize(serializer);
-    }
-  }
-}
-
-extension Helpers on Serializer {
-  void addUri(Uri uri) => addString('$uri');
-
-  void addSerializable(Serializable serializable) =>
-      serializable.serialize(this);
-}
-
-enum _CodePartKind {
-  string,
-  code,
-  identifier,
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/span.dart b/pkg/json/lib/.dart_tool/_macros/lib/src/executor/span.dart
deleted file mode 100644
index c5c0be3..0000000
--- a/pkg/json/lib/.dart_tool/_macros/lib/src/executor/span.dart
+++ /dev/null
@@ -1,460 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import '../api.dart';
-import '../executor.dart';
-
-/// Meta information for a span of text in a generated augmentation library.
-///
-/// These are collected during generation of augmentation libraries and are used
-/// to compute relation between offsets in the intermediate augmentation
-/// libraries and the merged augmented library.
-class Span {
-  /// Key that defines the semantics of the content of this span.
-  ///
-  /// This must be unique within the spans generated from a single
-  /// augmentation library.
-  final Key key;
-
-  /// The offset in the generated augmentation library source code where this
-  /// span occurs.
-  final int offset;
-
-  /// The source code of this span.
-  final String text;
-
-  Span(this.key, this.offset, this.text);
-}
-
-/// Object that defines the semantics of a [Span] in a generated augmentation
-/// library.
-///
-/// This is used to identify corresponding parts of generated augmentation
-/// libraries when converting offsets from the intermediate augmentation
-/// libraries to the merged augmentation library.
-///
-/// For instance we might have two intermediate both containing an import
-/// of the same library with potentially different prefixes:
-///
-///     // intermediate augmentation library #0
-///     ...
-///     import 'dart:core' as prefix1;
-///     ...
-///     prefix1.String method1() => '42';
-///     ...
-///
-///     // intermediate augmentation library #1
-///     ...
-///     import 'dart:core' as prefix2;
-///     ...
-///     prefix2.String method2() => '87';
-///     ...
-///
-/// and the merged augmentation library:
-///
-///     ...
-///     import 'dart:core' as prefix4;
-///     ...
-///     prefix4.String method1() => '42';
-///     ...
-///     prefix4.String method2() => '87';
-///     ...
-///
-/// Here the same key is used for the 'prefix1', 'prefix2' and 'prefix4' in the
-/// import directives. The same key is used for 'prefix1' in
-/// 'prefix1.String' in intermediate augmentation library #0 and the 'prefix4'
-/// in the first occurrence of 'prefix4.String' in the merged augmentation
-/// library. Similarly for 'prefix2' and 'prefix4' for 'method2'.
-sealed class Key {
-  Key? get parent;
-}
-
-enum _ContentKind {
-  code,
-  string,
-  implicitThis,
-  prefixDot,
-  staticScope,
-  identifierName,
-  libraryAugmentation,
-  libraryAugmentationSeparator,
-}
-
-/// Content defined by its [_kind] and [index] within the [parent] key.
-class ContentKey implements Key {
-  @override
-  final Key parent;
-  final int index;
-  final _ContentKind _kind;
-
-  ContentKey._(this.parent, this.index, this._kind);
-
-  /// Create the key for a [Code] object occurring as the [index]th part of
-  /// [parent].
-  ContentKey.code(Key parent, int index)
-      : this._(parent, index, _ContentKind.code);
-
-  /// Create the key for a [String] occurring as the [index]th part of [parent].
-  ContentKey.string(Key parent, int index)
-      : this._(parent, index, _ContentKind.string);
-
-  /// Create the key for a `this.` occurring as the [index]th part of [parent].
-  ContentKey.implicitThis(Key parent, int index)
-      : this._(parent, index, _ContentKind.implicitThis);
-
-  /// Create the key for a `.` after a prefix occurring as the [index]th part
-  /// of [parent].
-  ContentKey.prefixDot(Key parent, int index)
-      : this._(parent, index, _ContentKind.prefixDot);
-
-  /// Create the key for a static qualifier `Foo.` of a static member access in
-  /// `Foo` occurring as the [index]th part of [parent].
-  ContentKey.staticScope(Key parent, int index)
-      : this._(parent, index, _ContentKind.staticScope);
-
-  /// Create the key for an [Identifier] after a prefix occurring as the
-  /// [index]th part of [parent].
-  ContentKey.identifierName(Key parent, int index)
-      : this._(parent, index, _ContentKind.identifierName);
-
-  /// Create the key the [index]th library augmentation in [parent].
-  ContentKey.libraryAugmentation(Key parent, int index)
-      : this._(parent, index, _ContentKind.libraryAugmentation);
-
-  /// Create the key the separator text after the [index]th library augmentation
-  /// in [parent].
-  ContentKey.libraryAugmentationSeparator(Key parent, int index)
-      : this._(parent, index, _ContentKind.libraryAugmentationSeparator);
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is ContentKey &&
-          runtimeType == other.runtimeType &&
-          parent == other.parent &&
-          index == other.index &&
-          _kind == other._kind;
-
-  @override
-  int get hashCode => Object.hash(parent, index, _kind);
-}
-
-enum _UriKind {
-  prefix,
-  importPrefix,
-  importSuffix,
-}
-
-/// Use of a [Uri] defined by the [uri] and the [_kind] of use.
-class UriKey implements Key {
-  final Uri uri;
-
-  final _UriKind _kind;
-
-  UriKey._(this.uri, this._kind);
-
-  /// Creates a key for the definition of the prefix for [uri], that is,
-  /// "prefix" in `import 'foo.dart' as prefix;`.
-  UriKey.prefixDefinition(Uri uri) : this._(uri, _UriKind.prefix);
-
-  /// Creates a key for the prefix of the import of [uri], that is,
-  /// "import 'foo.dart' as" in `import 'foo.dart' as prefix;`.
-  UriKey.importPrefix(Uri uri) : this._(uri, _UriKind.importPrefix);
-
-  /// Creates a key for the suffix of the import of [uri], that is,
-  /// ";\n" in
-  ///
-  ///     import 'foo.dart' as prefix;
-  ///
-  UriKey.importSuffix(Uri uri) : this._(uri, _UriKind.importSuffix);
-
-  @override
-  Key? get parent => null;
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is UriKey &&
-          runtimeType == other.runtimeType &&
-          uri == other.uri &&
-          _kind == other._kind;
-
-  @override
-  int get hashCode => Object.hash(uri, _kind);
-}
-
-/// A reference to the prefix of [uri] occurring as the [index]th part of
-/// [parent].
-class PrefixUseKey implements Key {
-  @override
-  final Key parent;
-
-  final int index;
-
-  final Uri uri;
-
-  PrefixUseKey(this.parent, this.index, this.uri);
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is PrefixUseKey &&
-          runtimeType == other.runtimeType &&
-          parent == other.parent &&
-          uri == other.uri &&
-          index == other.index;
-
-  @override
-  int get hashCode => Object.hash(parent, uri, index);
-}
-
-/// The use of [omittedTypeAnnotation] occurring as the [index]th part of
-/// [parent].
-class OmittedTypeAnnotationKey implements Key {
-  @override
-  final Key parent;
-
-  final int index;
-
-  final OmittedTypeAnnotation omittedTypeAnnotation;
-
-  OmittedTypeAnnotationKey(this.parent, this.index, this.omittedTypeAnnotation);
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is OmittedTypeAnnotationKey &&
-          runtimeType == other.runtimeType &&
-          parent == other.parent &&
-          index == other.index &&
-          omittedTypeAnnotation == other.omittedTypeAnnotation;
-
-  @override
-  int get hashCode => Object.hash(parent, index, omittedTypeAnnotation);
-}
-
-/// The content defined by [result].
-///
-/// This is used as the root key for content specific to [result].
-class MacroExecutionResultKey implements Key {
-  final MacroExecutionResult result;
-
-  MacroExecutionResultKey(this.result);
-
-  @override
-  Key? get parent => null;
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is MacroExecutionResultKey &&
-          runtimeType == other.runtimeType &&
-          result == other.result;
-
-  @override
-  int get hashCode => result.hashCode;
-}
-
-/// The root key for content of [typeDeclaration].
-///
-/// This is used as the root key for the parts of the declaration of
-/// [typeDeclaration] that can be shared amongst members.
-///
-/// For instance when to intermediate augmentation libraries generate members
-/// for the same class we have
-///
-///     // intermediate augmentation library #0
-///     ...
-///     augment class Foo {
-///       method1() {}
-///     }
-///     ...
-///
-///     // intermediate augmentation library #1
-///     ...
-///     augment class Foo {
-///       method2() {}
-///     }
-///     ...
-///
-/// and the merged augmentation library merges these to same the class
-/// declaration:
-///
-///     ...
-///     augment class Foo {
-///       method1() {}
-///       method2() {}
-///     }
-///     ...
-///
-/// In this case the declaration "augment class Foo ", the body start "{\n" and
-/// the body end "}\n" use keys with the same [TypeDeclarationKey] as parent.
-class TypeDeclarationKey implements Key {
-  final TypeDeclaration typeDeclaration;
-
-  TypeDeclarationKey(this.typeDeclaration);
-
-  @override
-  Key? get parent => null;
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is TypeDeclarationKey &&
-          runtimeType == other.runtimeType &&
-          typeDeclaration == other.typeDeclaration;
-
-  @override
-  int get hashCode => typeDeclaration.hashCode;
-}
-
-enum _TypeDeclarationContentKind {
-  declaration,
-  mixins,
-  interfaces,
-  bodyStart,
-  enumValueEnd,
-  declarationSeparator,
-  bodyEnd,
-}
-
-/// Content of a [TypeDeclaration].
-class TypeDeclarationContentKey implements Key {
-  @override
-  final Key parent;
-
-  final _TypeDeclarationContentKind _kind;
-
-  TypeDeclarationContentKey._(this.parent, this._kind);
-
-  /// The declaration of the type declaration, that is, "augment class Foo " in
-  /// `augment class Foo { }`.
-  TypeDeclarationContentKey.declaration(Key parent)
-      : this._(parent, _TypeDeclarationContentKind.declaration);
-
-  /// The fixed parts of a with-clause, that is, "with " and ", " in
-  /// `augment class Foo with Bar, Baz { }`.
-  TypeDeclarationContentKey.mixins(Key parent)
-      : this._(parent, _TypeDeclarationContentKind.mixins);
-
-  /// The fixed parts of an implements-clause, that is, "implements " and ", "
-  /// in `augment class Foo implements Bar, Baz { }`.
-  TypeDeclarationContentKey.interfaces(Key parent)
-      : this._(parent, _TypeDeclarationContentKind.interfaces);
-
-  /// The start of the declaration body, that is, "{\n" in
-  ///
-  ///     augment class Foo implements Bar, Baz {
-  ///     }
-  ///
-  TypeDeclarationContentKey.bodyStart(Key parent)
-      : this._(parent, _TypeDeclarationContentKind.bodyStart);
-
-  /// The end of element values, that is, ";\n"
-  ///
-  ///     augment enum Foo {
-  ///       a,
-  ///       b,
-  ///       ;
-  ///       method() {}
-  ///     }
-  ///
-  TypeDeclarationContentKey.enumValueEnd(Key parent)
-      : this._(parent, _TypeDeclarationContentKind.enumValueEnd);
-
-  /// The space between member declarations.
-  TypeDeclarationContentKey.declarationSeparator(Key parent)
-      : this._(parent, _TypeDeclarationContentKind.declarationSeparator);
-
-  /// The end of the declaration body, that is, "}\n" in
-  ///
-  ///     augment class Foo implements Bar, Baz {
-  ///     }
-  ///
-  TypeDeclarationContentKey.bodyEnd(Key parent)
-      : this._(parent, _TypeDeclarationContentKind.bodyEnd);
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is TypeDeclarationContentKey &&
-          runtimeType == other.runtimeType &&
-          parent == other.parent &&
-          _kind == other._kind;
-
-  @override
-  int get hashCode => Object.hash(parent, _kind);
-}
-
-enum _IdentifierKind {
-  enuum, // `uu` because `enum` is reserved
-  mixin,
-  interface,
-  type,
-}
-
-/// Key defined be the [identifier] its use [_kind] occurring as the [index]th
-/// part of [parent].
-class IdentifierKey implements Key {
-  @override
-  final Key parent;
-  final Identifier identifier;
-  final int index;
-  final _IdentifierKind _kind;
-
-  IdentifierKey._(this.parent, this.index, this.identifier, this._kind);
-
-  /// Identifier for an enum value.
-  IdentifierKey.enum_(Key parent, int index, Identifier identifier)
-      : this._(parent, index, identifier, _IdentifierKind.enuum);
-
-  /// Identifier for a mixed in type.
-  IdentifierKey.mixin(Key parent, int index, Identifier identifier)
-      : this._(parent, index, identifier, _IdentifierKind.mixin);
-
-  /// Identifier for an implemented type.
-  IdentifierKey.interface(Key parent, int index, Identifier identifier)
-      : this._(parent, index, identifier, _IdentifierKind.interface);
-
-  /// Identifier for an augmented member.
-  IdentifierKey.member(Key parent, int index, Identifier identifier)
-      : this._(parent, index, identifier, _IdentifierKind.type);
-
-  @override
-  bool operator ==(Object other) =>
-      identical(this, other) ||
-      other is IdentifierKey &&
-          runtimeType == other.runtimeType &&
-          parent == other.parent &&
-          index == other.index &&
-          identifier == other.identifier &&
-          _kind == other._kind;
-
-  @override
-  int get hashCode => Object.hash(parent, index, identifier, _kind);
-}
-
-/// Key for the separation between imports and declarations.
-class ImportDeclarationSeparatorKey implements Key {
-  const ImportDeclarationSeparatorKey();
-
-  @override
-  Key? get parent => null;
-}
-
-/// Key for the end-of-file.
-class EndOfFileKey implements Key {
-  const EndOfFileKey();
-
-  @override
-  Key? get parent => null;
-}
-
-/// Key for the `library augment` directive
-class LibraryAugmentKey implements Key {
-  const LibraryAugmentKey();
-
-  @override
-  Key? get parent => null;
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/pubspec.yaml b/pkg/json/lib/.dart_tool/_macros/pubspec.yaml
deleted file mode 100644
index f6f14d7..0000000
--- a/pkg/json/lib/.dart_tool/_macros/pubspec.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-name: _macros
-version: 0.1.5
-description: >-
-  This is a private SDK vendored package, which is re-exported by the public
-  `macros` package, which is a pub package. Every change to this package is
-  treated as a release, see CONTRIBUTING.md for full instructions.
-publish_to: none
-repository: https://github.com/dart-lang/sdk/tree/main/pkg/_macros
-
-environment:
-  sdk: ^3.4.0-256.0.dev
-
-# Note that as an SDK vendored package, pub package dependencies are only
-# allowed in the dev_dependencies section.
-dev_dependencies:
-  test: any
diff --git a/pkg/json/lib/.dart_tool/_macros/test/executor/augmentation_library_test.dart b/pkg/json/lib/.dart_tool/_macros/test/executor/augmentation_library_test.dart
deleted file mode 100644
index 06e3169..0000000
--- a/pkg/json/lib/.dart_tool/_macros/test/executor/augmentation_library_test.dart
+++ /dev/null
@@ -1,610 +0,0 @@
-// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'package:test/fake.dart';
-import 'package:test/test.dart';
-
-import 'package:_macros/src/api.dart';
-import 'package:_macros/src/executor.dart';
-import 'package:_macros/src/executor/augmentation_library.dart';
-import 'package:_macros/src/executor/introspection_impls.dart';
-import 'package:_macros/src/executor/remote_instance.dart';
-import 'package:_macros/src/executor/response_impls.dart';
-
-import '../util.dart';
-
-void main() {
-  group('AugmentationLibraryBuilder', () {
-    final intIdentifier = TestIdentifier(
-        id: RemoteInstance.uniqueId,
-        name: 'int',
-        kind: IdentifierKind.topLevelMember,
-        staticScope: null,
-        uri: Uri.parse('dart:core'));
-
-    final interfaceIdentifiers = [
-      for (var i = 0; i < 2; i++)
-        TestIdentifier(
-            id: RemoteInstance.uniqueId,
-            name: 'I$i',
-            kind: IdentifierKind.topLevelMember,
-            uri: null,
-            staticScope: null),
-    ];
-    final mixinIdentifiers = [
-      for (var i = 0; i < 2; i++)
-        TestIdentifier(
-            id: RemoteInstance.uniqueId,
-            name: 'M$i',
-            kind: IdentifierKind.topLevelMember,
-            uri: null,
-            staticScope: null),
-    ];
-
-    test('can combine multiple execution results', () {
-      final classes = <IdentifierImpl, ClassDeclaration>{};
-      for (var i = 0; i < 2; i++) {
-        for (var j = 0; j < 3; j++) {
-          final identifier =
-              IdentifierImpl(id: RemoteInstance.uniqueId, name: 'Foo$i$j');
-          classes[identifier] = ClassDeclarationImpl(
-              id: RemoteInstance.uniqueId,
-              identifier: identifier,
-              library: Fixtures.library,
-              metadata: [],
-              typeParameters: [],
-              interfaces: [],
-              hasAbstract: false,
-              hasBase: false,
-              hasExternal: false,
-              hasFinal: false,
-              hasInterface: false,
-              hasMixin: false,
-              hasSealed: false,
-              mixins: [],
-              superclass: null);
-        }
-      }
-      var results = [
-        for (var i = 0; i < 2; i++)
-          MacroExecutionResultImpl(
-            diagnostics: [],
-            enumValueAugmentations: {},
-            interfaceAugmentations: {
-              for (var j = 0; j < 3; j++)
-                classes.keys
-                    .firstWhere((identifier) => identifier.name == 'Foo$i$j'): [
-                  for (var k = 0; k < j; k++)
-                    NamedTypeAnnotationCode(name: interfaceIdentifiers[k]),
-                ]
-            },
-            libraryAugmentations: [
-              for (var j = 0; j < 3; j++)
-                DeclarationCode.fromParts(
-                    [intIdentifier, ' get i${i}j$j => ${i + j};\n']),
-            ],
-            mixinAugmentations: {
-              for (var j = 0; j < 3; j++)
-                classes.keys
-                    .firstWhere((identifier) => identifier.name == 'Foo$i$j'): [
-                  for (var k = 0; k < i; k++)
-                    NamedTypeAnnotationCode(name: mixinIdentifiers[k]),
-                ]
-            },
-            newTypeNames: [
-              'Foo${i}0',
-              'Foo${i}1',
-              'Foo${i}2',
-            ],
-            typeAugmentations: {
-              for (var j = 0; j < 3; j++)
-                classes.keys
-                    .firstWhere((identifier) => identifier.name == 'Foo$i$j'): [
-                  DeclarationCode.fromParts([intIdentifier, ' get i => $i;\n']),
-                  DeclarationCode.fromParts([intIdentifier, ' get j => $j;\n']),
-                ]
-            },
-          ),
-      ];
-      var library = _TestExecutor().buildAugmentationLibrary(
-          Fixtures.library.uri,
-          results,
-          (Identifier i) => classes[i]!,
-          (Identifier i) => (i as TestIdentifier).resolved,
-          (OmittedTypeAnnotation i) =>
-              (i as TestOmittedTypeAnnotation).inferredType);
-      expect(library, equalsIgnoringWhitespace('''
-        augment library 'package:foo/bar.dart';
-
-        import 'dart:core' as prefix0;
-
-        prefix0.int get i0j0 => 0;
-        prefix0.int get i0j1 => 1;
-        prefix0.int get i0j2 => 2;
-        prefix0.int get i1j0 => 1;
-        prefix0.int get i1j1 => 2;
-        prefix0.int get i1j2 => 3;
-        augment class Foo00 {
-          prefix0.int get i => 0;
-          prefix0.int get j => 0;
-        }
-        augment class Foo01 implements I0 {
-          prefix0.int get i => 0;
-          prefix0.int get j => 1;
-        }
-        augment class Foo02 implements I0, I1 {
-          prefix0.int get i => 0;
-          prefix0.int get j => 2;
-        }
-        augment class Foo10 with M0 {
-          prefix0.int get i => 1;
-          prefix0.int get j => 0;
-        }
-        augment class Foo11 with M0 implements I0 {
-          prefix0.int get i => 1;
-          prefix0.int get j => 1;
-        }
-        augment class Foo12 with M0 implements I0, I1 {
-          prefix0.int get i => 1;
-          prefix0.int get j => 2;
-        }
-      '''));
-    });
-
-    test('can add imports for identifiers', () {
-      var fooIdentifier = TestIdentifier(
-          id: RemoteInstance.uniqueId,
-          name: 'Foo',
-          kind: IdentifierKind.topLevelMember,
-          staticScope: null,
-          uri: Uri.parse('package:foo/foo.dart'));
-      var barIdentifier = TestIdentifier(
-          id: RemoteInstance.uniqueId,
-          name: 'Bar',
-          kind: IdentifierKind.topLevelMember,
-          staticScope: null,
-          uri: Uri.parse('package:bar/bar.dart'));
-      var builderIdentifier = TestIdentifier(
-          id: RemoteInstance.uniqueId,
-          name: 'Builder',
-          kind: IdentifierKind.topLevelMember,
-          staticScope: null,
-          uri: Uri.parse('package:builder/builder.dart'));
-      var barInstanceMember = TestIdentifier(
-          id: RemoteInstance.uniqueId,
-          name: 'baz',
-          kind: IdentifierKind.instanceMember,
-          staticScope: null,
-          uri: Uri.parse('package:bar/bar.dart'));
-      var barStaticMember = TestIdentifier(
-          id: RemoteInstance.uniqueId,
-          name: 'zap',
-          kind: IdentifierKind.staticInstanceMember,
-          staticScope: 'Bar',
-          uri: Uri.parse('package:bar/bar.dart'));
-      var results = [
-        MacroExecutionResultImpl(
-          diagnostics: [],
-          enumValueAugmentations: {},
-          interfaceAugmentations: {},
-          mixinAugmentations: {},
-          typeAugmentations: {},
-          libraryAugmentations: [
-            DeclarationCode.fromParts([
-              'class FooBuilder<T extends ',
-              fooIdentifier,
-              '> implements ',
-              builderIdentifier,
-              '<',
-              barIdentifier,
-              '<T>> {\n',
-              'late ',
-              intIdentifier,
-              ' ${barInstanceMember.name};\n',
-              barIdentifier,
-              '<T> build() => new ',
-              barIdentifier,
-              '()..',
-              barInstanceMember,
-              ' = ',
-              barStaticMember,
-              ';',
-              '\n}',
-            ]),
-          ],
-          newTypeNames: [
-            'FooBuilder',
-          ],
-        )
-      ];
-      var library = _TestExecutor().buildAugmentationLibrary(
-          Fixtures.library.uri,
-          results,
-          (_) => throw UnimplementedError(),
-          (Identifier i) => (i as TestIdentifier).resolved,
-          (OmittedTypeAnnotation i) =>
-              (i as TestOmittedTypeAnnotation).inferredType);
-      expect(library, equalsIgnoringWhitespace('''
-        augment library 'package:foo/bar.dart';
-
-        import 'package:foo/foo.dart' as prefix0;
-        import 'package:builder/builder.dart' as prefix1;
-        import 'package:bar/bar.dart' as prefix2;
-        import 'dart:core' as prefix3;
-
-        class FooBuilder<T extends prefix0.Foo> implements prefix1.Builder<prefix2.Bar<T>> {
-          late prefix3.int baz;
-
-          prefix2.Bar<T> build() => new prefix2.Bar()..baz = prefix2.Bar.zap;
-        }
-      '''));
-    });
-
-    test('can handle omitted type annotations', () {
-      var results = [
-        MacroExecutionResultImpl(
-            diagnostics: [],
-            enumValueAugmentations: {},
-            interfaceAugmentations: {},
-            mixinAugmentations: {},
-            typeAugmentations: {},
-            libraryAugmentations: [
-              DeclarationCode.fromParts([
-                OmittedTypeAnnotationCode(
-                    TestOmittedTypeAnnotation(NamedTypeAnnotationImpl(
-                  id: RemoteInstance.uniqueId,
-                  identifier: intIdentifier,
-                  isNullable: false,
-                  typeArguments: [],
-                ))),
-                ' x = 1;',
-              ]),
-            ],
-            newTypeNames: []),
-      ];
-      var library = _TestExecutor().buildAugmentationLibrary(
-          Fixtures.library.uri,
-          results,
-          (_) => throw UnimplementedError(),
-          (Identifier i) => (i as TestIdentifier).resolved,
-          (OmittedTypeAnnotation i) =>
-              (i as TestOmittedTypeAnnotation).inferredType);
-      expect(library, equalsIgnoringWhitespace('''
-        augment library 'package:foo/bar.dart';
-
-        import 'dart:core' as prefix0;
-
-        prefix0.int x = 1;
-      '''));
-    });
-
-    test('can handle name conflicts', () {
-      var omittedType0 = TestOmittedTypeAnnotation();
-      var omittedType1 = TestOmittedTypeAnnotation();
-
-      var omittedTypeIdentifier = TestIdentifier(
-          id: RemoteInstance.uniqueId,
-          name: 'OmittedType',
-          kind: IdentifierKind.topLevelMember,
-          staticScope: null,
-          uri: Uri.parse('package:foo/foo.dart'));
-      var omittedTypeIdentifier0 = TestIdentifier(
-          id: RemoteInstance.uniqueId,
-          name: 'OmittedType0',
-          kind: IdentifierKind.topLevelMember,
-          staticScope: null,
-          uri: Uri.parse('package:bar/bar.dart'));
-      var prefixInstanceMember = TestIdentifier(
-          id: RemoteInstance.uniqueId,
-          name: 'prefix',
-          kind: IdentifierKind.instanceMember,
-          staticScope: null,
-          uri: Uri.parse('package:bar/bar.dart'));
-      var prefix0InstanceMember = TestIdentifier(
-          id: RemoteInstance.uniqueId,
-          name: 'prefix0',
-          kind: IdentifierKind.instanceMember,
-          staticScope: null,
-          uri: Uri.parse('package:bar/bar.dart'));
-      var prefix1StaticMember = TestIdentifier(
-          id: RemoteInstance.uniqueId,
-          name: 'prefix1',
-          kind: IdentifierKind.staticInstanceMember,
-          staticScope: 'OmittedType1',
-          uri: Uri.parse('package:bar/bar.dart'));
-      var results = [
-        MacroExecutionResultImpl(
-          diagnostics: [],
-          enumValueAugmentations: {},
-          interfaceAugmentations: {},
-          mixinAugmentations: {},
-          typeAugmentations: {},
-          libraryAugmentations: [
-            DeclarationCode.fromParts([
-              'class OmittedType {\n  ',
-              omittedType0.code,
-              ' method(',
-              omittedType1.code,
-              ' o) {\n    ',
-              intIdentifier,
-              ' ${prefixInstanceMember.name} = 0;\n    ',
-              omittedTypeIdentifier,
-              ' ${prefix0InstanceMember.name} = ',
-              'new ',
-              omittedTypeIdentifier,
-              '();\n    ',
-              'new ',
-              omittedTypeIdentifier0,
-              '()..',
-              prefixInstanceMember,
-              ' = ',
-              prefix1StaticMember,
-              ';',
-              '\n  }',
-              '\n}',
-            ]),
-          ],
-          newTypeNames: [
-            'OmittedType',
-          ],
-        )
-      ];
-      var omittedTypes = <OmittedTypeAnnotation, String>{};
-      var library = _TestExecutor().buildAugmentationLibrary(
-          Fixtures.library.uri,
-          results,
-          (_) => throw UnimplementedError(),
-          (Identifier i) => (i as TestIdentifier).resolved,
-          (OmittedTypeAnnotation i) =>
-              (i as TestOmittedTypeAnnotation).inferredType,
-          omittedTypes: omittedTypes);
-      expect(library, equalsIgnoringWhitespace('''
-        augment library 'package:foo/bar.dart';
-
-        import 'dart:core' as prefix2_0;
-        import 'package:foo/foo.dart' as prefix2_1;
-        import 'package:bar/bar.dart' as prefix2_2;
-
-        class OmittedType {
-          OmittedType2_0 method(OmittedType2_1 o) {
-            prefix2_0.int prefix = 0;
-            prefix2_1.OmittedType prefix0 = new prefix2_1.OmittedType();
-            new prefix2_2.OmittedType0()..prefix = prefix2_2.OmittedType1.prefix1;
-          }
-        }
-      '''));
-      expect(omittedTypes[omittedType0], 'OmittedType2_0');
-      expect(omittedTypes[omittedType1], 'OmittedType2_1');
-    });
-
-    test('can augment enums and enum values', () async {
-      final myEnum = EnumDeclarationImpl(
-        id: RemoteInstance.uniqueId,
-        identifier: TestIdentifier(
-            id: RemoteInstance.uniqueId,
-            name: 'MyEnum',
-            kind: IdentifierKind.topLevelMember,
-            uri: Uri.parse('a.dart'),
-            staticScope: null),
-        library: Fixtures.library,
-        metadata: [],
-        typeParameters: [],
-        interfaces: [],
-        mixins: [],
-      );
-      final myField = FieldDeclarationImpl(
-          id: RemoteInstance.uniqueId,
-          identifier: TestIdentifier(
-              id: RemoteInstance.uniqueId,
-              name: 'value',
-              kind: IdentifierKind.instanceMember,
-              uri: Uri.parse('a.dart'),
-              staticScope: null),
-          library: Fixtures.library,
-          metadata: [],
-          definingType: myEnum.identifier,
-          hasAbstract: false,
-          hasConst: false,
-          hasExternal: false,
-          hasFinal: true,
-          hasInitializer: false,
-          hasLate: false,
-          hasStatic: false,
-          type: NamedTypeAnnotationImpl(
-              id: RemoteInstance.uniqueId,
-              isNullable: false,
-              identifier: intIdentifier,
-              typeArguments: []));
-
-      var results = [
-        MacroExecutionResultImpl(diagnostics: [], enumValueAugmentations: {
-          myEnum.identifier: [
-            DeclarationCode.fromParts(['a(1),\n']),
-          ],
-        }, typeAugmentations: {
-          myEnum.identifier: [
-            DeclarationCode.fromParts(['MyEnum(', myField.identifier, ');\n']),
-            DeclarationCode.fromParts(
-                ['final ', intIdentifier, ' ', myField.identifier.name, ';\n']),
-          ],
-        }, interfaceAugmentations: {
-          myEnum.identifier: [
-            NamedTypeAnnotationCode(name: interfaceIdentifiers.first),
-          ],
-        }, mixinAugmentations: {
-          myEnum.identifier: [
-            NamedTypeAnnotationCode(name: mixinIdentifiers.first),
-          ],
-        }, newTypeNames: [], libraryAugmentations: []),
-      ];
-      var library = _TestExecutor().buildAugmentationLibrary(
-          Fixtures.library.uri,
-          results,
-          (Identifier i) =>
-              i == myEnum.identifier ? myEnum : throw UnimplementedError(),
-          (Identifier i) => (i as TestIdentifier).resolved,
-          (OmittedTypeAnnotation i) =>
-              (i as TestOmittedTypeAnnotation).inferredType);
-      expect(library, equalsIgnoringWhitespace('''
-        augment library 'package:foo/bar.dart';
-
-        import 'a.dart' as prefix0;
-        import 'dart:core' as prefix1;
-
-        augment enum MyEnum with M0 implements I0 {
-          a(1),
-          ;
-          MyEnum(this.value);
-          final prefix1.int value;
-        }
-      '''));
-    });
-
-    test('can augment extensions', () async {
-      final myExtension = ExtensionDeclarationImpl(
-        id: RemoteInstance.uniqueId,
-        identifier: TestIdentifier(
-            id: RemoteInstance.uniqueId,
-            name: 'MyExtension',
-            kind: IdentifierKind.topLevelMember,
-            uri: Uri.parse('a.dart'),
-            staticScope: null),
-        library: Fixtures.library,
-        metadata: [],
-        typeParameters: [],
-        onType: Fixtures.myClassType,
-      );
-      final myGetter = MethodDeclarationImpl(
-          id: RemoteInstance.uniqueId,
-          identifier: TestIdentifier(
-              id: RemoteInstance.uniqueId,
-              name: 'x',
-              kind: IdentifierKind.instanceMember,
-              uri: Uri.parse('a.dart'),
-              staticScope: null),
-          library: Fixtures.library,
-          metadata: [],
-          definingType: myExtension.identifier,
-          hasExternal: false,
-          hasStatic: false,
-          returnType: NamedTypeAnnotationImpl(
-              id: RemoteInstance.uniqueId,
-              isNullable: false,
-              identifier: intIdentifier,
-              typeArguments: []),
-          hasBody: true,
-          isGetter: true,
-          isOperator: false,
-          isSetter: false,
-          namedParameters: [],
-          positionalParameters: [],
-          typeParameters: []);
-
-      var results = [
-        MacroExecutionResultImpl(
-            diagnostics: [],
-            enumValueAugmentations: {},
-            typeAugmentations: {
-              myExtension.identifier: [
-                DeclarationCode.fromParts([
-                  intIdentifier,
-                  ' get ',
-                  myGetter.identifier.name,
-                  ' => 1;\n'
-                ]),
-              ],
-            },
-            interfaceAugmentations: {},
-            mixinAugmentations: {},
-            newTypeNames: [],
-            libraryAugmentations: []),
-      ];
-      var library = _TestExecutor().buildAugmentationLibrary(
-          Fixtures.library.uri,
-          results,
-          (Identifier i) => i == myExtension.identifier
-              ? myExtension
-              : throw UnimplementedError(),
-          (Identifier i) => (i as TestIdentifier).resolved,
-          (OmittedTypeAnnotation i) =>
-              (i as TestOmittedTypeAnnotation).inferredType);
-      expect(library, equalsIgnoringWhitespace('''
-        augment library 'package:foo/bar.dart';
-
-        import 'dart:core' as prefix0;
-
-        augment extension MyExtension {
-          prefix0.int get x => 1;
-        }
-      '''));
-    });
-
-    test('copies keywords for classes', () async {
-      for (final hasKeywords in [true, false]) {
-        final clazz = ClassDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MyClass'),
-            library: Fixtures.library,
-            metadata: [],
-            typeParameters: [],
-            interfaces: [],
-            hasAbstract: hasKeywords,
-            hasBase: hasKeywords,
-            hasExternal: hasKeywords,
-            hasFinal: hasKeywords,
-            hasInterface: hasKeywords,
-            hasMixin: hasKeywords,
-            hasSealed: hasKeywords,
-            mixins: [],
-            superclass: null);
-
-        var results = [
-          MacroExecutionResultImpl(
-              diagnostics: [],
-              enumValueAugmentations: {},
-              typeAugmentations: {
-                clazz.identifier: [
-                  DeclarationCode.fromParts(['']),
-                ]
-              },
-              interfaceAugmentations: {},
-              mixinAugmentations: {},
-              newTypeNames: [],
-              libraryAugmentations: []),
-        ];
-        var library = _TestExecutor().buildAugmentationLibrary(
-            Fixtures.library.uri,
-            results,
-            (Identifier i) =>
-                i == clazz.identifier ? clazz : throw UnimplementedError(),
-            (Identifier i) => (i as TestIdentifier).resolved,
-            (OmittedTypeAnnotation i) =>
-                (i as TestOmittedTypeAnnotation).inferredType);
-        final expectedKeywords = [
-          if (hasKeywords) ...[
-            'abstract',
-            'base',
-            'external',
-            'final',
-            'interface',
-            'mixin',
-            'sealed'
-          ]
-        ];
-        // Add extra space after, if we have keywords
-        if (expectedKeywords.isNotEmpty) expectedKeywords.add('');
-        expect(library, equalsIgnoringWhitespace('''
-            augment library 'package:foo/bar.dart';
-
-            augment ${expectedKeywords.join(' ')}class MyClass {
-            }
-          '''));
-      }
-    });
-  });
-}
-
-class _TestExecutor extends MacroExecutor
-    with AugmentationLibraryBuilder, Fake {}
diff --git a/pkg/json/lib/.dart_tool/_macros/test/executor/cast_test.dart b/pkg/json/lib/.dart_tool/_macros/test/executor/cast_test.dart
deleted file mode 100644
index dc91c30..0000000
--- a/pkg/json/lib/.dart_tool/_macros/test/executor/cast_test.dart
+++ /dev/null
@@ -1,242 +0,0 @@
-// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'package:test/test.dart';
-
-import 'package:_macros/src/executor/cast.dart';
-
-void main() {
-  test("dynamic casts", () {
-    expect(Cast<dynamic>().cast(3), 3);
-    expect(Cast<dynamic>().cast("hello"), "hello");
-  });
-
-  test("int casts", () {
-    expect(Cast<int>().cast(3), 3);
-    expect(
-        () => Cast<int>().cast("hello"),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type int but got type String for: hello')));
-  });
-
-  test("double casts", () {
-    expect(Cast<double>().cast(3.1), 3.1);
-    expect(
-        () => Cast<double>().cast("hello"),
-        throwsA(isA<FailedCast>().having(
-            (e) => e.toString(),
-            'toString()',
-            'Failed cast: '
-                'expected type double but got type String for: hello')));
-  });
-
-  test("String casts", () {
-    expect(Cast<String>().cast("hello"), "hello");
-    expect(
-        () => Cast<String>().cast(3),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type String but got type int for: 3')));
-  });
-
-  test("bool casts", () {
-    expect(Cast<bool>().cast(true), true);
-    expect(
-        () => Cast<bool>().cast(3),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type bool but got type int for: 3')));
-  });
-
-  test("Casting empty lists", () {
-    var listOfInt = ListCast.from(Cast<int>());
-    var listOfString = ListCast.from(Cast<String>());
-
-    expect(listOfInt.cast(<dynamic>[]) is List<int>, isTrue);
-    expect(listOfInt.cast(<dynamic>[]), <int>[]);
-
-    expect(
-        () => listOfString.cast({}),
-        throwsA(isA<FailedCast>().having(
-            (e) => e.toString(),
-            'toString()',
-            'Failed cast: expected type List<String> but got '
-                'type _Map<dynamic, dynamic> for: {}')));
-  });
-
-  test("Casting non-empty lists", () {
-    var listOfInt = ListCast.from(Cast<int>());
-    var listOfString = ListCast.from(Cast<String>());
-
-    expect(listOfInt.cast(<num>[3]) is List<int>, isTrue);
-    expect(listOfInt.cast(<num>[3]), <int>[3]);
-    expect(
-        () => listOfString.cast(<num>[3]),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type String but got type int for: 3')));
-  });
-
-  test("Casting nested lists", () {
-    var listOfInt = ListCast.from(Cast<int>());
-    var listOfString = ListCast.from(Cast<String>());
-    var listOfListOfInt = ListCast.from(listOfInt);
-    var listOfListOfString = ListCast.from(listOfString);
-
-    expect(
-        listOfListOfInt.cast(<dynamic>[
-          <dynamic>[3]
-        ]) is List<List<int>>,
-        isTrue);
-    expect(
-        listOfListOfInt.cast(<dynamic>[
-          <dynamic>[3]
-        ]),
-        <List<int>>[
-          <int>[3]
-        ]);
-    expect(
-        () => listOfListOfString.cast(<dynamic>[
-              <dynamic>[3]
-            ]),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type String but got type int for: 3')));
-  });
-
-  test("Casting non-empty sets", () {
-    var setOfInt = SetCast.from(Cast<int>());
-    var setOfString = SetCast.from(Cast<String>());
-
-    expect(setOfInt.cast(<num>{3}) is Set<int>, isTrue);
-    expect(setOfInt.cast(<num>{3}), <int>{3});
-    expect(
-        () => setOfString.cast(<num>{3}),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type String but got type int for: 3')));
-  });
-
-  test("Casting nested sets", () {
-    var setOfInt = SetCast.from(Cast<int>());
-    var setOfString = SetCast.from(Cast<String>());
-    var setOfSetOfInt = SetCast.from(setOfInt);
-    var setOfSetOfString = SetCast.from(setOfString);
-
-    expect(
-        setOfSetOfInt.cast(<dynamic>{
-          <dynamic>{3}
-        }) is Set<Set<int>>,
-        isTrue);
-    expect(
-        setOfSetOfInt.cast(<dynamic>{
-          <dynamic>{3}
-        }),
-        <Set<int>>{
-          <int>{3}
-        });
-    expect(
-        () => setOfSetOfString.cast(<dynamic>{
-              <dynamic>{3}
-            }),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type String but got type int for: 3')));
-  });
-
-  test("Casting empty maps", () {
-    var mapOfStringToInt = MapCast.from(Cast<String>(), Cast<int>());
-    var mapOfStringToString = MapCast.from(Cast<String>(), Cast<String>());
-
-    expect(mapOfStringToInt.cast(<dynamic, dynamic>{}) is Map<String, int>,
-        isTrue);
-    expect(mapOfStringToInt.cast(<dynamic, dynamic>{}), <String, int>{});
-
-    expect(
-        () => mapOfStringToString.cast(<dynamic>[]),
-        throwsA(isA<FailedCast>().having(
-            (e) => e.toString(),
-            'toString()',
-            'Failed cast: expected type Map<String, String> but got type '
-                'List<dynamic> for: []')));
-  });
-
-  test("Casting non-empty maps", () {
-    var mapOfStringToInt = MapCast.from(Cast<String>(), Cast<int>());
-    var mapOfStringToString = MapCast.from(Cast<String>(), Cast<String>());
-
-    expect(
-        mapOfStringToInt.cast(<dynamic, dynamic>{"hello": 3})
-            is Map<String, int>,
-        isTrue);
-    expect(mapOfStringToInt.cast(<dynamic, dynamic>{"hello": 3}),
-        <String, int>{"hello": 3});
-
-    expect(() => mapOfStringToString.cast(<dynamic, dynamic>{"hello": 3}),
-        throwsA(isA<FailedCast>()));
-    expect(
-        () => mapOfStringToString.cast(<dynamic, dynamic>{3: "world"}),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type String but got type int for: 3')));
-  });
-
-  test("Casting nested maps", () {
-    var schema =
-        MapCast.from(Cast<String>(), MapCast.from(Cast<String>(), Cast<int>()));
-
-    expect(
-        schema.cast(<dynamic, dynamic>{
-          "hello": <dynamic, dynamic>{"hello": 3}
-        }) is Map<String, Map<String, int>>,
-        isTrue);
-    expect(
-        schema.cast(<dynamic, dynamic>{
-          "hello": <dynamic, dynamic>{"hello": 3}
-        }),
-        <String, Map<String, int>>{
-          "hello": <String, int>{"hello": 3}
-        });
-
-    expect(
-        () => schema.cast(<dynamic, dynamic>{
-              "hello": <dynamic, dynamic>{3: "hello"}
-            }),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type String but got type int for: 3')));
-  });
-
-  test("Casting nested list/maps/sets", () {
-    var schema =
-        MapCast.from(Cast<String>(), ListCast.from(SetCast.from(Cast<int>())));
-
-    expect(
-        schema.cast(<dynamic, dynamic>{
-          "hello": <dynamic>[
-            {3}
-          ]
-        }) is Map<String, List<Set<int>>>,
-        isTrue);
-    expect(
-        schema.cast(<dynamic, dynamic>{
-          "hello": <dynamic>[
-            {3}
-          ]
-        }),
-        <String, List<Set<int>>>{
-          "hello": <Set<int>>[
-            {3}
-          ]
-        });
-  });
-
-  test("nullable cast", () {
-    expect(Cast<int>().nullable.cast(null), null);
-    expect(Cast<int>().nullable.cast(3), 3);
-    expect(ListCast.from(Cast<int>()).nullable.cast(<num>[3]), <int>[3]);
-    expect(ListCast.from(Cast<int>().nullable).cast(<num?>[3, null]),
-        <int?>[3, null]);
-    expect(
-        () => Cast<int>().nullable.cast(2.0),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type int but got type double for: 2.0')));
-    expect(
-        () => ListCast.from(Cast<int>()).nullable.cast([2.0]),
-        throwsA(isA<FailedCast>().having((e) => e.toString(), 'toString()',
-            'Failed cast: expected type int but got type double for: 2.0')));
-  });
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/test/executor/executor_test.dart b/pkg/json/lib/.dart_tool/_macros/test/executor/executor_test.dart
deleted file mode 100644
index 00b9fed..0000000
--- a/pkg/json/lib/.dart_tool/_macros/test/executor/executor_test.dart
+++ /dev/null
@@ -1,1079 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:io';
-import 'dart:isolate';
-
-import 'package:_macros/src/api.dart';
-import 'package:_macros/src/bootstrap.dart';
-import 'package:_macros/src/executor.dart';
-import 'package:_macros/src/executor/isolated_executor.dart'
-    as isolated_executor;
-import 'package:_macros/src/executor/process_executor.dart' as process_executor
-    show start;
-import 'package:_macros/src/executor/process_executor.dart' hide start;
-import 'package:_macros/src/executor/serialization.dart';
-import 'package:test/test.dart';
-
-import '../util.dart';
-
-void main() {
-  late MacroExecutor executor;
-  late File kernelOutputFile;
-  final diagnosticMacroName = 'DiagnosticMacro';
-  final simpleMacroName = 'SimpleMacro';
-  late MacroInstanceIdentifier diagnosticMacroInstanceId;
-  late MacroInstanceIdentifier simpleMacroInstanceId;
-  late Uri macroUri;
-  late File simpleMacroFile;
-  late Directory tmpDir;
-
-  for (var executorKind in [
-    'Isolated',
-    'ProcessSocket',
-    'ProcessStdio',
-  ]) {
-    group('$executorKind executor', () {
-      for (var mode in [SerializationMode.byteData, SerializationMode.json]) {
-        group('$mode', () {
-          setUpAll(() async {
-            simpleMacroFile =
-                File(Platform.script.resolve('simple_macro.dart').toFilePath());
-            tmpDir = Directory.systemTemp.createTempSync('executor_test');
-            macroUri = simpleMacroFile.absolute.uri;
-
-            var bootstrapContent = bootstrapMacroIsolate({
-              macroUri.toString(): {
-                simpleMacroName: ['', 'named'],
-                diagnosticMacroName: [''],
-              }
-            }, mode);
-            var bootstrapFile =
-                File(tmpDir.uri.resolve('main.dart').toFilePath())
-                  ..writeAsStringSync(bootstrapContent);
-            kernelOutputFile =
-                File(tmpDir.uri.resolve('main.dart.dill').toFilePath());
-            var packageConfigPath = (await Isolate.packageConfig)!.toFilePath();
-            var buildSnapshotResult =
-                await Process.run(Platform.resolvedExecutable, [
-              if (executorKind == 'Isolated') ...[
-                '--snapshot=${kernelOutputFile.uri.toFilePath()}',
-                '--snapshot-kind=kernel',
-              ] else ...[
-                'compile',
-                'exe',
-                '-o',
-                kernelOutputFile.uri.toFilePath(),
-              ],
-              '--packages=$packageConfigPath',
-              bootstrapFile.uri.toFilePath(),
-            ]);
-            expect(buildSnapshotResult.exitCode, 0,
-                reason: 'stdout: ${buildSnapshotResult.stdout}\n'
-                    'stderr: ${buildSnapshotResult.stderr}');
-
-            executor = executorKind == 'Isolated'
-                ? await isolated_executor.start(mode, kernelOutputFile.uri)
-                : executorKind == 'ProcessSocket'
-                    ? await process_executor.start(mode,
-                        CommunicationChannel.socket, kernelOutputFile.path)
-                    : await process_executor.start(mode,
-                        CommunicationChannel.stdio, kernelOutputFile.path);
-
-            simpleMacroInstanceId = await executor.instantiateMacro(
-                macroUri, simpleMacroName, '', Arguments([], {}));
-            expect(simpleMacroInstanceId, isNotNull,
-                reason: 'Can create an instance with no arguments.');
-            executor.disposeMacro(simpleMacroInstanceId);
-
-            simpleMacroInstanceId = await executor.instantiateMacro(
-                macroUri, simpleMacroName, '', Arguments([IntArgument(1)], {}));
-            expect(simpleMacroInstanceId, isNotNull,
-                reason: 'Can create an instance with positional arguments.');
-            executor.disposeMacro(simpleMacroInstanceId);
-
-            simpleMacroInstanceId = await executor.instantiateMacro(
-                macroUri,
-                simpleMacroName,
-                'named',
-                Arguments([], {
-                  'myBool': BoolArgument(true),
-                  'myDouble': DoubleArgument(1.0),
-                  'myInt': IntArgument(1),
-                  'myList': ListArgument([
-                    IntArgument(1),
-                    IntArgument(2),
-                    IntArgument(3),
-                  ], [
-                    ArgumentKind.nullable,
-                    ArgumentKind.int
-                  ]),
-                  'mySet': SetArgument([
-                    BoolArgument(true),
-                    NullArgument(),
-                    MapArgument({StringArgument('a'): DoubleArgument(1.0)},
-                        [ArgumentKind.string, ArgumentKind.double]),
-                  ], [
-                    ArgumentKind.nullable,
-                    ArgumentKind.object,
-                  ]),
-                  'myMap': MapArgument({
-                    StringArgument('x'): IntArgument(1),
-                  }, [
-                    ArgumentKind.string,
-                    ArgumentKind.int
-                  ]),
-                  'myString': StringArgument('a'),
-                }));
-            expect(simpleMacroInstanceId, isNotNull,
-                reason: 'Can create an instance with named arguments.');
-
-            diagnosticMacroInstanceId = await executor.instantiateMacro(
-                macroUri, diagnosticMacroName, '', Arguments([], {}));
-            expect(diagnosticMacroInstanceId, isNotNull);
-          });
-
-          tearDownAll(() async {
-            executor.disposeMacro(diagnosticMacroInstanceId);
-            executor.disposeMacro(simpleMacroInstanceId);
-            await expectLater(
-                () => executor.executeTypesPhase(simpleMacroInstanceId,
-                    Fixtures.myFunction, TestTypePhaseIntrospector()),
-                throwsA(isA<UnexpectedMacroException>().having((e) => e.message,
-                    'message', contains('Unrecognized macro instance'))),
-                reason: 'Should be able to dispose macro instances');
-            if (tmpDir.existsSync()) {
-              try {
-                // Fails flakily on windows if a process still has the file open
-                tmpDir.deleteSync(recursive: true);
-              } catch (_) {}
-            }
-            await executor.close();
-          });
-
-          group('run macros', () {
-            group('in the types phase', () {
-              test('on functions', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myFunction,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('class GeneratedByMyFunction {}'));
-              });
-
-              test('on methods', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myMethod,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('class GeneratedByMyMethod {}'));
-              });
-
-              test('on getters', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myVariableGetter,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace(
-                        'class GeneratedByMyVariableGetter {}'));
-              });
-
-              test('on setters', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myVariableSetter,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace(
-                        'class GeneratedByMyVariableSetter {}'));
-              });
-
-              test('on variables', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myVariable,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace(
-                        'class GeneratedBy_myVariable {}'));
-              });
-
-              test('on constructors', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myConstructor,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace(
-                        'class GeneratedByMyConstructor {}'));
-              });
-
-              test('on fields', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myField,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('class GeneratedByMyField {}'));
-              });
-
-              test('on classes', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myClass,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(
-                    result.interfaceAugmentations.mapValuesToDebugCodeString(),
-                    equals({
-                      Fixtures.myClass.identifier: ['HasX'],
-                    }));
-                expect(
-                    result.mixinAugmentations.mapValuesToDebugCodeString(),
-                    equals({
-                      Fixtures.myClass.identifier: ['GetX'],
-                    }));
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.mapToDebugCodeString(),
-                    unorderedEquals([
-                      equalsIgnoringWhitespace(
-                          'class MyClassBuilder implements Builder<MyClass> '
-                          '{}'),
-                      equalsIgnoringWhitespace('''mixin GetX implements HasX {
-                              int get x => 1;
-                            }'''),
-                      equalsIgnoringWhitespace(
-                          '''abstract interface class HasX {
-                              int get x;
-                            }'''),
-                    ]));
-              });
-
-              test('on enums', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myEnum,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('class GeneratedByMyEnum {}'));
-              });
-
-              test('on enum values', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myEnumValues.first,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('class GeneratedByMyEnum_A {}'));
-              });
-
-              test('on extensions', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myExtension,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('class MyExtensionOnMyClass {}'));
-              });
-
-              test('on extension types', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myExtensionType,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace(
-                        'class MyExtensionTypeOnMyClass {}'));
-              });
-
-              test('on type aliases', () async {
-                var result = await executor.executeTypesPhase(
-                  simpleMacroInstanceId,
-                  Fixtures.myTypeAlias,
-                  TestTypePhaseIntrospector(),
-                );
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                  result.libraryAugmentations.single.debugString().toString(),
-                  equalsIgnoringWhitespace(
-                    'class MyTypeAliasAliasedTypeMyClass {}',
-                  ),
-                );
-              });
-
-              test('on mixins', () async {
-                var result = await executor.executeTypesPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myMixin,
-                    TestTypePhaseIntrospector());
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace(
-                        'class GeneratedByMyMixinOnMyClass {}'));
-              });
-
-              test('on libraries', () async {
-                var result = await executor.executeTypesPhase(
-                  simpleMacroInstanceId,
-                  Fixtures.library,
-                  TestTypePhaseIntrospector(),
-                );
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                  result.libraryAugmentations.single.debugString().toString(),
-                  equalsIgnoringWhitespace('''
-class LibraryInfo {
-  final Uri uri;
-  final String languageVersion;
-  final List<Type> definedTypes;
-  const LibraryInfo(this.uri, this.languageVersion, this.definedTypes);
-}
-'''),
-                );
-              });
-            });
-
-            group('in the declaration phase', () {
-              test('on functions', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myFunction,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace(
-                        'String delegateMyFunction() => myFunction();'));
-              });
-
-              test('on methods', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myMethod,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace(
-                        '(String, bool? hello, {String world}) '
-                        'delegateMemberMyMethod() => myMethod();'));
-              });
-
-              test('on constructors', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myConstructor,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, hasLength(1));
-                expect(
-                    result
-                        .typeAugmentations[Fixtures.myConstructor.definingType]!
-                        .single
-                        .debugString()
-                        .toString(),
-                    equalsIgnoringWhitespace('''
-                factory MyClass.myConstructorDelegate() => MyClass.myConstructor();
-              '''));
-                expect(result.libraryAugmentations, isEmpty);
-              });
-
-              test('on getters', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myVariableGetter,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('''
-                String get delegateMyVariable => myVariable;'''));
-              });
-
-              test('on setters', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myVariableSetter,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('''
-                void set delegateMyVariable(String value) => myVariable = value;'''));
-              });
-
-              test('on variables', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myVariable,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('''
-                /*inferred*/String get delegate_myVariable => _myVariable;'''));
-              });
-
-              test('on fields', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myField,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, hasLength(1));
-                expect(
-                    result.typeAugmentations[Fixtures.myField.definingType]!
-                        .single
-                        .debugString()
-                        .toString(),
-                    equalsIgnoringWhitespace('''
-                String get delegateMyField => myField;
-              '''));
-                expect(result.libraryAugmentations, isEmpty);
-              });
-
-              test('on classes', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myClass,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, hasLength(1));
-                expect(
-                    result
-                        .typeAugmentations[Fixtures.myClass.identifier]!.single
-                        .debugString()
-                        .toString(),
-                    equalsIgnoringWhitespace('''
-                static const List<String> fieldNames = ['myField',];
-              '''));
-              });
-
-              test('on enums', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myEnum,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, hasLength(1));
-                expect(
-                    result.typeAugmentations[Fixtures.myEnum.identifier]!.single
-                        .debugString()
-                        .toString(),
-                    equalsIgnoringWhitespace('''
-                static const List<String> valuesByName = {'a': a};
-              '''));
-                expect(result.libraryAugmentations, isEmpty);
-              });
-
-              test('on enum values', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myEnumValues.first,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, hasLength(1));
-                expect(
-                    result.typeAugmentations[Fixtures.myEnum.identifier]!.single
-                        .debugString()
-                        .toString(),
-                    equalsIgnoringWhitespace('''
-                MyEnum aToString() => a.toString();
-              '''));
-                expect(result.libraryAugmentations, isEmpty);
-              });
-
-              test('on extensions', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myExtension,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.typeAugmentations, hasLength(1));
-                expect(
-                    result.typeAugmentations[Fixtures.myExtension.identifier]!
-                        .single
-                        .debugString()
-                        .toString(),
-                    equalsIgnoringWhitespace('''
-                List<String> get onTypeFieldNames;
-              '''));
-                expect(result.libraryAugmentations, isEmpty);
-              });
-
-              test('on extension types', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myExtensionType,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.typeAugmentations, hasLength(1));
-                expect(
-                    result
-                        .typeAugmentations[Fixtures.myExtensionType.identifier]!
-                        .single
-                        .debugString()
-                        .toString(),
-                    equalsIgnoringWhitespace('''
-                List<String> get onTypeFieldNames;
-              '''));
-                expect(result.libraryAugmentations, isEmpty);
-              });
-
-              test('on type aliases', () async {
-                var result = await executor.executeDeclarationsPhase(
-                  simpleMacroInstanceId,
-                  Fixtures.myTypeAlias,
-                  Fixtures.testDeclarationPhaseIntrospector,
-                );
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.libraryAugmentations, hasLength(1));
-                expect(
-                  result.libraryAugmentations.single.debugString().toString(),
-                  equalsIgnoringWhitespace(
-                    'List<String> get aliasedTypeFieldNames;',
-                  ),
-                );
-                expect(result.typeAugmentations, isEmpty);
-              });
-
-              test('on mixins', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myMixin,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, hasLength(1));
-                expect(
-                    result
-                        .typeAugmentations[Fixtures.myMixin.identifier]!.single
-                        .debugString()
-                        .toString(),
-                    equalsIgnoringWhitespace('''
-                static const List<String> methodNames = ['myMixinMethod',];
-              '''));
-                expect(result.libraryAugmentations, isEmpty);
-              });
-
-              test('on libraries', () async {
-                var result = await executor.executeDeclarationsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.library,
-                    Fixtures.testDeclarationPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                  result.libraryAugmentations.single.debugString().toString(),
-                  equalsIgnoringWhitespace('final LibraryInfo library;'),
-                );
-              });
-            });
-
-            group('in the definition phase', () {
-              test('on functions', () async {
-                var result = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myFunction,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('''
-                // A comment!
-                augment String myFunction() {
-                  print('isExternal: false');
-                  print('isGetter: false');
-                  print('isSetter: false');
-                  print('returnType: String');
-                  return augmented();
-                }'''));
-              });
-
-              test('on methods', () async {
-                var definitionResult = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myMethod,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(definitionResult.enumValueAugmentations, isEmpty);
-                expect(definitionResult.interfaceAugmentations, isEmpty);
-                expect(definitionResult.mixinAugmentations, isEmpty);
-                expect(definitionResult.typeAugmentations, hasLength(1));
-                var augmentationStrings = definitionResult
-                    .typeAugmentations[Fixtures.myMethod.definingType]!
-                    .mapToDebugCodeString();
-                expect(augmentationStrings,
-                    unorderedEquals(methodDefinitionMatchers));
-                expect(definitionResult.libraryAugmentations, isEmpty);
-              });
-
-              test('on constructors', () async {
-                var definitionResult = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myConstructor,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(definitionResult.enumValueAugmentations, isEmpty);
-                expect(definitionResult.interfaceAugmentations, isEmpty);
-                expect(definitionResult.mixinAugmentations, isEmpty);
-                expect(definitionResult.typeAugmentations, hasLength(1));
-                expect(
-                    definitionResult
-                        .typeAugmentations[Fixtures.myConstructor.definingType]!
-                        .first
-                        .debugString()
-                        .toString(),
-                    constructorDefinitionMatcher);
-                expect(definitionResult.libraryAugmentations, isEmpty);
-              });
-
-              test('on getters', () async {
-                var result = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myVariableGetter,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('''
-                // A comment!
-                augment String get myVariable {
-                  print('isExternal: false');
-                  print('isGetter: true');
-                  print('isSetter: false');
-                  print('returnType: String');
-                  return augmented;
-                }'''));
-              });
-
-              test('on setters', () async {
-                var result = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myVariableSetter,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('''
-                // A comment!
-                augment void set myVariable(String value, ) {
-                  print('isExternal: false');
-                  print('isGetter: false');
-                  print('isSetter: true');
-                  print('returnType: void');
-                  print('positionalParam: String value');
-                  return augmented = value;
-                }'''));
-              });
-
-              test('on variables', () async {
-                var result = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myVariable,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.mapToDebugCodeString(),
-                    unorderedEquals([
-                      equalsIgnoringWhitespace('''
-                augment /*inferred*/String get _myVariable {
-                  print('parentClass: ');
-                  print('isExternal: false');
-                  print('isFinal: true');
-                  print('isLate: false');
-                  return augmented;
-                }'''),
-                      equalsIgnoringWhitespace('''
-                augment set _myVariable(/*inferred*/String value) {
-                  augmented = value;
-                }'''),
-                      equalsIgnoringWhitespace('''
-                augment final /*inferred*/String _myVariable = 'new initial value' + augmented;
-                '''),
-                    ]));
-              });
-
-              test('on fields', () async {
-                var definitionResult = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myField,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(definitionResult.enumValueAugmentations, isEmpty);
-                expect(definitionResult.interfaceAugmentations, isEmpty);
-                expect(definitionResult.mixinAugmentations, isEmpty);
-                expect(definitionResult.typeAugmentations, hasLength(1));
-                expect(
-                    definitionResult
-                        .typeAugmentations[Fixtures.myField.definingType]!
-                        .mapToDebugCodeString(),
-                    unorderedEquals(fieldDefinitionMatchers));
-                expect(definitionResult.libraryAugmentations, isEmpty);
-              });
-
-              test('on classes', () async {
-                var definitionResult = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myClass,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(definitionResult.enumValueAugmentations, isEmpty);
-                expect(definitionResult.interfaceAugmentations, isEmpty);
-                expect(definitionResult.mixinAugmentations, isEmpty);
-                expect(definitionResult.typeAugmentations, hasLength(1));
-                var augmentationStrings = definitionResult
-                    .typeAugmentations[Fixtures.myClass.identifier]!
-                    .mapToDebugCodeString();
-                expect(
-                    augmentationStrings,
-                    unorderedEquals([
-                      ...methodDefinitionMatchers,
-                      constructorDefinitionMatcher,
-                      ...fieldDefinitionMatchers,
-                    ]));
-              });
-
-              test('on enums', () async {
-                var definitionResult = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myEnum,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(definitionResult.enumValueAugmentations, hasLength(1));
-                var entryAugmentationStrings = definitionResult
-                    .enumValueAugmentations[Fixtures.myEnum.identifier]!
-                    .mapToDebugCodeString()
-                    .toList();
-                expect(entryAugmentationStrings,
-                    unorderedEquals(["a('myField', ),"]));
-                expect(definitionResult.interfaceAugmentations, isEmpty);
-                expect(definitionResult.mixinAugmentations, isEmpty);
-                expect(definitionResult.typeAugmentations, hasLength(1));
-                var typeAugmentationStrings = definitionResult
-                    .typeAugmentations[Fixtures.myEnum.identifier]!
-                    .mapToDebugCodeString();
-                expect(
-                    typeAugmentationStrings,
-                    unorderedEquals([
-                      equalsIgnoringWhitespace('''
-                        augment MyEnum.myEnumConstructor(String myField, ) {
-                          print('definingClass: MyEnum');
-                          print('isFactory: false');
-                          print('isExternal: false');
-                          print('isGetter: false');
-                          print('isSetter: false');
-                          print('returnType: MyEnum');
-                          print('positionalParam: String myField');
-                          return augmented();
-                        }''')
-                    ]));
-              });
-
-              test('on enum values', () async {
-                var definitionResult = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myEnumValues.first,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(definitionResult.enumValueAugmentations, hasLength(1));
-                expect(definitionResult.interfaceAugmentations, isEmpty);
-                expect(definitionResult.mixinAugmentations, isEmpty);
-                var augmentationStrings = definitionResult
-                    .enumValueAugmentations[Fixtures.myEnum.identifier]!
-                    .mapToDebugCodeString();
-                expect(
-                    augmentationStrings, unorderedEquals(["a('myField', ),"]));
-                expect(definitionResult.typeAugmentations, isEmpty);
-              });
-
-              test('on extensions', () async {
-                var definitionResult = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myExtension,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(definitionResult.enumValueAugmentations, isEmpty);
-                expect(definitionResult.typeAugmentations, hasLength(1));
-                expect(
-                    definitionResult
-                        .typeAugmentations[Fixtures.myExtension.identifier]!
-                        .single
-                        .debugString()
-                        .toString(),
-                    equalsIgnoringWhitespace(
-                        "augment List<String> get onTypeFieldNames => "
-                        "['myField',];"));
-              });
-
-              test('on extension types', () async {
-                var definitionResult = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myExtensionType,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(definitionResult.enumValueAugmentations, isEmpty);
-                expect(definitionResult.typeAugmentations, hasLength(1));
-                expect(
-                    definitionResult
-                        .typeAugmentations[Fixtures.myExtensionType.identifier]!
-                        .single
-                        .debugString()
-                        .toString(),
-                    equalsIgnoringWhitespace(
-                        "augment List<String> get onTypeFieldNames => "
-                        "['myField',];"));
-              });
-
-              test('on mixins', () async {
-                var definitionResult = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.myMixin,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(definitionResult.enumValueAugmentations, isEmpty);
-                expect(definitionResult.interfaceAugmentations, isEmpty);
-                expect(definitionResult.mixinAugmentations, isEmpty);
-                expect(definitionResult.typeAugmentations, hasLength(1));
-                var augmentationStrings = definitionResult
-                    .typeAugmentations[Fixtures.myMixin.identifier]!
-                    .mapToDebugCodeString();
-                expect(
-                    augmentationStrings,
-                    unorderedEquals(
-                      mixinMethodDefinitionMatchers,
-                    ));
-              });
-
-              test('on libraries', () async {
-                var result = await executor.executeDefinitionsPhase(
-                    simpleMacroInstanceId,
-                    Fixtures.library,
-                    Fixtures.testDefinitionPhaseIntrospector);
-                expect(result.enumValueAugmentations, isEmpty);
-                expect(result.interfaceAugmentations, isEmpty);
-                expect(result.mixinAugmentations, isEmpty);
-                expect(result.typeAugmentations, isEmpty);
-                expect(
-                    result.libraryAugmentations.single.debugString().toString(),
-                    equalsIgnoringWhitespace('''
-augment final LibraryInfo library = LibraryInfo(Uri.parse('package:foo/bar.dart'), '3.0', [MyClass, MyEnum, MyMixin, ]);
-'''));
-              });
-            });
-
-            test('and report diagnostics', () async {
-              final result = await executor.executeTypesPhase(
-                  diagnosticMacroInstanceId,
-                  Fixtures.myClass,
-                  TestTypePhaseIntrospector());
-              expect(result.diagnostics, [
-                predicate<Diagnostic>((d) =>
-                    d.severity == Severity.info &&
-                    d.message.message == 'superclass' &&
-                    (d.message.target as TypeAnnotationDiagnosticTarget)
-                            .typeAnnotation ==
-                        Fixtures.mySuperclassType &&
-                    d.contextMessages.single.message == 'interface' &&
-                    (d.contextMessages.single.target
-                                as TypeAnnotationDiagnosticTarget)
-                            .typeAnnotation ==
-                        Fixtures.myInterfaceType &&
-                    d.correctionMessage == 'correct me!'),
-                predicate<Diagnostic>((d) =>
-                    d.severity == Severity.error &&
-                    d.message.message.contains('bug in the macro') &&
-                    // Quick test that some stack trace also appears
-                    d.contextMessages.first.message
-                        .contains('simple_macro.dart')),
-              ]);
-            });
-          });
-        });
-      }
-    });
-  }
-}
-
-final constructorDefinitionMatcher = equalsIgnoringWhitespace('''
-augment MyClass.myConstructor(/*inferred*/String myField, ) {
-  print('definingClass: MyClass');
-  print('isFactory: false');
-  print('isExternal: false');
-  print('isGetter: false');
-  print('isSetter: false');
-  print('returnType: MyClass');
-  print('positionalParam: String (inferred) myField');
-  return augmented();
-}''');
-
-final fieldDefinitionMatchers = [
-  equalsIgnoringWhitespace('''
-    augment String get myField {
-      print('parentClass: MyClass');
-      print('isAbstract: false');
-      print('isExternal: false');
-      print('isFinal: false');
-      print('isLate: false');
-      return augmented;
-    }'''),
-  equalsIgnoringWhitespace('''
-    augment set myField(String value) {
-      augmented = value;
-    }'''),
-  equalsIgnoringWhitespace('''
-    augment String myField = 'new initial value' + augmented;'''),
-];
-
-final methodDefinitionMatchers = [
-  equalsIgnoringWhitespace('''
-    // A comment!
-    augment (String, bool? hello, {String world}) myMethod() {
-      print('definingClass: MyClass');
-      print('isExternal: false');
-      print('isGetter: false');
-      print('isSetter: false');
-      print('returnType: (String, bool? hello, {String world})');
-      return augmented();
-    }'''),
-  equalsIgnoringWhitespace('''
-    augment (String, bool? hello, {String world}) myMethod() {
-      print('myBool: true');
-      print('myDouble: 1.0');
-      print('myInt: 1');
-      print('myList: [1, 2, 3]');
-      print('mySet: {true, null, {a: 1.0}}');
-      print('myMap: {x: 1}');
-      print('myString: a');
-      print('parentClass: MyClass');
-      print('superClass: MySuperclass');
-      print('interface: MyInterface');
-      print('mixin: MyMixin');
-      print('field: myField');
-      print('method: myMethod');
-      print('constructor: myConstructor');
-      return augmented();
-    }'''),
-];
-
-final mixinMethodDefinitionMatchers = [
-  equalsIgnoringWhitespace('''
-    // A comment!
-    augment (String, bool? hello, {String world}) myMixinMethod() {
-      print('definingClass: MyMixin');
-      print('isExternal: false');
-      print('isGetter: false');
-      print('isSetter: false');
-      print('returnType: (String, bool? hello, {String world})');
-      return augmented();
-    }'''),
-  equalsIgnoringWhitespace('''
-    augment (String, bool? hello, {String world}) myMixinMethod() {
-      print('myBool: true');
-      print('myDouble: 1.0');
-      print('myInt: 1');
-      print('myList: [1, 2, 3]');
-      print('mySet: {true, null, {a: 1.0}}');
-      print('myMap: {x: 1}');
-      print('myString: a');
-      print('parentClass: MyMixin');
-      print('superClass: null');
-      print('method: myMixinMethod');
-      return augmented();
-    }'''),
-];
diff --git a/pkg/json/lib/.dart_tool/_macros/test/executor/response_impls_test.dart b/pkg/json/lib/.dart_tool/_macros/test/executor/response_impls_test.dart
deleted file mode 100644
index f6e63ad..0000000
--- a/pkg/json/lib/.dart_tool/_macros/test/executor/response_impls_test.dart
+++ /dev/null
@@ -1,269 +0,0 @@
-// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'package:_macros/src/api.dart';
-import 'package:_macros/src/executor.dart';
-import 'package:_macros/src/executor/remote_instance.dart';
-import 'package:_macros/src/executor/response_impls.dart';
-import 'package:test/fake.dart';
-import 'package:test/test.dart';
-
-void main() {
-  group('MacroInstanceIdentifierImpl', () {
-    test('shouldExecute', () {
-      for (var kind in DeclarationKind.values) {
-        for (var phase in Phase.values) {
-          var instance = instancesByKindAndPhase[kind]?[phase];
-          if (instance == null) continue;
-          for (var otherKind in DeclarationKind.values) {
-            for (var otherPhase in Phase.values) {
-              var expected = false;
-              if (otherPhase == phase) {
-                if (kind == otherKind) {
-                  expected = true;
-                } else if (kind == DeclarationKind.function &&
-                    otherKind == DeclarationKind.method) {
-                  expected = true;
-                } else if (kind == DeclarationKind.variable &&
-                    otherKind == DeclarationKind.field) {
-                  expected = true;
-                }
-              }
-              expect(instance.shouldExecute(otherKind, otherPhase), expected,
-                  reason: 'Expected a $kind macro in $phase to '
-                      '${expected ? '' : 'not '}be applied to a $otherKind '
-                      'in $otherPhase');
-            }
-          }
-        }
-      }
-    });
-
-    test('supportsDeclarationKind', () {
-      for (var kind in DeclarationKind.values) {
-        for (var phase in Phase.values) {
-          var instance = instancesByKindAndPhase[kind]?[phase];
-          if (instance == null) continue;
-          for (var otherKind in DeclarationKind.values) {
-            var expected = false;
-            if (kind == otherKind) {
-              expected = true;
-            } else if (kind == DeclarationKind.function &&
-                otherKind == DeclarationKind.method) {
-              expected = true;
-            } else if (kind == DeclarationKind.variable &&
-                otherKind == DeclarationKind.field) {
-              expected = true;
-            }
-            expect(instance.supportsDeclarationKind(otherKind), expected,
-                reason: 'Expected a $kind macro to ${expected ? '' : 'not '}'
-                    'support a $otherKind');
-          }
-        }
-      }
-    });
-  });
-}
-
-final Map<DeclarationKind, Map<Phase, MacroInstanceIdentifierImpl>>
-    instancesByKindAndPhase = {
-  DeclarationKind.classType: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeClassTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeClassDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeClassDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.constructor: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeConstructorTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeConstructorDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeConstructorDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.enumType: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeEnumTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeEnumDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeEnumDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.enumValue: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeEnumValueTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeEnumValueDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeEnumValueDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.extension: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeExtensionTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeExtensionDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeExtensionDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.extensionType: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeExtensionTypeTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeExtensionTypeDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeExtensionTypeDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.field: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeFieldTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeFieldDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeFieldDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.function: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeFunctionTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeFunctionDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeFunctionDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.library: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeLibraryTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeLibraryDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeLibraryDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.method: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeMethodTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeMethodDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeMethodDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.mixinType: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeMixinTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeMixinDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeMixinDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.typeAlias: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeTypeAliasTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeTypeAliasDeclarationsMacro(), RemoteInstance.uniqueId),
-  },
-  DeclarationKind.variable: {
-    Phase.types: MacroInstanceIdentifierImpl(
-        FakeVariableTypesMacro(), RemoteInstance.uniqueId),
-    Phase.declarations: MacroInstanceIdentifierImpl(
-        FakeVariableDeclarationsMacro(), RemoteInstance.uniqueId),
-    Phase.definitions: MacroInstanceIdentifierImpl(
-        FakeVariableDefinitionMacro(), RemoteInstance.uniqueId),
-  },
-};
-
-class FakeClassTypesMacro extends Fake implements ClassTypesMacro {}
-
-class FakeClassDeclarationsMacro extends Fake
-    implements ClassDeclarationsMacro {}
-
-class FakeClassDefinitionMacro extends Fake implements ClassDefinitionMacro {}
-
-class FakeConstructorTypesMacro extends Fake implements ConstructorTypesMacro {}
-
-class FakeConstructorDeclarationsMacro extends Fake
-    implements ConstructorDeclarationsMacro {}
-
-class FakeConstructorDefinitionMacro extends Fake
-    implements ConstructorDefinitionMacro {}
-
-class FakeFieldTypesMacro extends Fake implements FieldTypesMacro {}
-
-class FakeFieldDeclarationsMacro extends Fake
-    implements FieldDeclarationsMacro {}
-
-class FakeFieldDefinitionMacro extends Fake implements FieldDefinitionMacro {}
-
-class FakeFunctionTypesMacro extends Fake implements FunctionTypesMacro {}
-
-class FakeFunctionDeclarationsMacro extends Fake
-    implements FunctionDeclarationsMacro {}
-
-class FakeFunctionDefinitionMacro extends Fake
-    implements FunctionDefinitionMacro {}
-
-class FakeMethodTypesMacro extends Fake implements MethodTypesMacro {}
-
-class FakeMethodDeclarationsMacro extends Fake
-    implements MethodDeclarationsMacro {}
-
-class FakeMethodDefinitionMacro extends Fake implements MethodDefinitionMacro {}
-
-class FakeVariableTypesMacro extends Fake implements VariableTypesMacro {}
-
-class FakeVariableDeclarationsMacro extends Fake
-    implements VariableDeclarationsMacro {}
-
-class FakeVariableDefinitionMacro extends Fake
-    implements VariableDefinitionMacro {}
-
-class FakeMixinTypesMacro extends Fake implements MixinTypesMacro {}
-
-class FakeMixinDeclarationsMacro extends Fake
-    implements MixinDeclarationsMacro {}
-
-class FakeMixinDefinitionMacro extends Fake implements MixinDefinitionMacro {}
-
-class FakeEnumTypesMacro extends Fake implements EnumTypesMacro {}
-
-class FakeEnumDeclarationsMacro extends Fake implements EnumDeclarationsMacro {}
-
-class FakeEnumDefinitionMacro extends Fake implements EnumDefinitionMacro {}
-
-class FakeEnumValueTypesMacro extends Fake implements EnumValueTypesMacro {}
-
-class FakeEnumValueDeclarationsMacro extends Fake
-    implements EnumValueDeclarationsMacro {}
-
-class FakeEnumValueDefinitionMacro extends Fake
-    implements EnumValueDefinitionMacro {}
-
-class FakeExtensionTypesMacro extends Fake implements ExtensionTypesMacro {}
-
-class FakeExtensionDeclarationsMacro extends Fake
-    implements ExtensionDeclarationsMacro {}
-
-class FakeExtensionDefinitionMacro extends Fake
-    implements ExtensionDefinitionMacro {}
-
-class FakeExtensionTypeTypesMacro extends Fake
-    implements ExtensionTypeTypesMacro {}
-
-class FakeExtensionTypeDeclarationsMacro extends Fake
-    implements ExtensionTypeDeclarationsMacro {}
-
-class FakeExtensionTypeDefinitionMacro extends Fake
-    implements ExtensionTypeDefinitionMacro {}
-
-class FakeLibraryTypesMacro extends Fake implements LibraryTypesMacro {}
-
-class FakeLibraryDeclarationsMacro extends Fake
-    implements LibraryDeclarationsMacro {}
-
-class FakeLibraryDefinitionMacro extends Fake
-    implements LibraryDefinitionMacro {}
-
-class FakeTypeAliasTypesMacro extends Fake implements TypeAliasTypesMacro {}
-
-class FakeTypeAliasDeclarationsMacro extends Fake
-    implements TypeAliasDeclarationsMacro {}
diff --git a/pkg/json/lib/.dart_tool/_macros/test/executor/serialization_test.dart b/pkg/json/lib/.dart_tool/_macros/test/executor/serialization_test.dart
deleted file mode 100644
index 7d32540..0000000
--- a/pkg/json/lib/.dart_tool/_macros/test/executor/serialization_test.dart
+++ /dev/null
@@ -1,726 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:math';
-
-import 'package:_macros/src/api.dart';
-import 'package:_macros/src/executor.dart';
-import 'package:_macros/src/executor/exception_impls.dart';
-import 'package:_macros/src/executor/introspection_impls.dart';
-import 'package:_macros/src/executor/remote_instance.dart';
-import 'package:_macros/src/executor/serialization.dart';
-import 'package:test/test.dart';
-
-import '../util.dart';
-
-void main() {
-  // We randomize fields which should make the tests more likely to catch issues
-  // related to serialization ordering.
-  final seed = Random().nextInt(1000);
-  print('Nondeterministic test ran with seed: $seed, change to this seed to '
-      'repro.');
-  final rand = Random(seed);
-
-  for (var mode in [SerializationMode.json, SerializationMode.byteData]) {
-    test('$mode can serialize and deserialize basic data', () {
-      withSerializationMode(mode, () {
-        var serializer = serializerFactory();
-        serializer
-          ..addInt(0)
-          ..addInt(1)
-          ..addInt(0xff)
-          ..addInt(0xffff)
-          ..addInt(0xffffffff)
-          ..addInt(0xffffffffffffffff)
-          ..addInt(-1)
-          ..addInt(-0x80)
-          ..addInt(-0x8000)
-          ..addInt(-0x80000000)
-          ..addInt(-0x8000000000000000)
-          ..addNullableInt(null)
-          ..addString('hello')
-          ..addString('€') // Requires a two byte string
-          ..addString('𐐷') // Requires two, 16 bit code units
-          ..addNullableString(null)
-          ..startList()
-          ..addBool(true)
-          ..startList()
-          ..addNull()
-          ..endList()
-          ..addNullableBool(null)
-          ..endList()
-          ..addDouble(1.0)
-          ..startList()
-          ..endList();
-        var deserializer = deserializerFactory(serializer.result);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), 0);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), 1);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), 0xff);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), 0xffff);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), 0xffffffff);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), 0xffffffffffffffff);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), -1);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), -0x80);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), -0x8000);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), -0x80000000);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectInt(), -0x8000000000000000);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectNullableInt(), null);
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectString(), 'hello');
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectString(), '€');
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectString(), '𐐷');
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectNullableString(), null);
-        expect(deserializer.moveNext(), true);
-
-        deserializer.expectList();
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectBool(), true);
-        expect(deserializer.moveNext(), true);
-
-        deserializer.expectList();
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.checkNull(), true);
-        expect(deserializer.moveNext(), false);
-
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectNullableBool(), null);
-        expect(deserializer.moveNext(), false);
-
-        // Have to move the parent again to advance it past the list entry.
-        expect(deserializer.moveNext(), true);
-        expect(deserializer.expectDouble(), 1.0);
-        expect(deserializer.moveNext(), true);
-
-        deserializer.expectList();
-        expect(deserializer.moveNext(), false);
-
-        expect(deserializer.moveNext(), false);
-      });
-    });
-  }
-
-  for (var mode in [SerializationMode.byteData, SerializationMode.json]) {
-    test('remote instances in $mode', () async {
-      var string = NamedTypeAnnotationImpl(
-          id: RemoteInstance.uniqueId,
-          isNullable: false,
-          identifier:
-              IdentifierImpl(id: RemoteInstance.uniqueId, name: 'String'),
-          typeArguments: const []);
-      var foo = NamedTypeAnnotationImpl(
-          id: RemoteInstance.uniqueId,
-          isNullable: false,
-          identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'Foo'),
-          typeArguments: [string]);
-
-      withSerializationMode(mode, () {
-        final int zoneId = newRemoteInstanceZone();
-        withRemoteInstanceZone(zoneId, () {
-          var serializer = serializerFactory();
-          foo.serialize(serializer);
-          // This is a fake client, we don't want to actually share the cache,
-          // so we negate the zone id and use that.
-          var response = roundTrip(serializer.result, -zoneId);
-          var deserializer = deserializerFactory(response);
-          var instance = RemoteInstance.deserialize(deserializer);
-          expect(instance, foo);
-        });
-      });
-    });
-  }
-
-  group('declarations', () {
-    final barType = NamedTypeAnnotationImpl(
-        id: RemoteInstance.uniqueId,
-        isNullable: rand.nextBool(),
-        identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'Bar'),
-        typeArguments: []);
-    final fooType = NamedTypeAnnotationImpl(
-        id: RemoteInstance.uniqueId,
-        isNullable: rand.nextBool(),
-        identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'Foo'),
-        typeArguments: [barType]);
-
-    for (var mode in [SerializationMode.byteData, SerializationMode.json]) {
-      group('with mode $mode', () {
-        test('NamedTypeAnnotation', () {
-          expectSerializationEquality<TypeAnnotationImpl>(
-              fooType, mode, RemoteInstance.deserialize);
-        });
-
-        final fooNamedParam = FormalParameterDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            isNamed: rand.nextBool(),
-            isRequired: rand.nextBool(),
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'foo'),
-            library: Fixtures.library,
-            metadata: [],
-            type: fooType);
-        final fooNamedFunctionTypeParam = FormalParameterImpl(
-            id: RemoteInstance.uniqueId,
-            isNamed: rand.nextBool(),
-            isRequired: rand.nextBool(),
-            metadata: [],
-            name: 'foo',
-            type: fooType);
-
-        final barPositionalParam = FormalParameterDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            isNamed: rand.nextBool(),
-            isRequired: rand.nextBool(),
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'bar'),
-            library: Fixtures.library,
-            metadata: [],
-            type: barType);
-        final barPositionalFunctionTypeParam = FormalParameterImpl(
-            id: RemoteInstance.uniqueId,
-            isNamed: rand.nextBool(),
-            isRequired: rand.nextBool(),
-            metadata: [],
-            name: 'bar',
-            type: fooType);
-
-        final unnamedFunctionTypeParam = FormalParameterImpl(
-            id: RemoteInstance.uniqueId,
-            isNamed: rand.nextBool(),
-            isRequired: rand.nextBool(),
-            metadata: [],
-            name: rand.nextBool() ? null : 'zip',
-            type: fooType);
-
-        final zapTypeParam = TypeParameterDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'Zap'),
-            library: Fixtures.library,
-            metadata: [],
-            bound: barType);
-
-        // Transitively tests `TypeParameterDeclaration` and
-        // `ParameterDeclaration`.
-        test('FunctionTypeAnnotation', () {
-          var functionType = FunctionTypeAnnotationImpl(
-            id: RemoteInstance.uniqueId,
-            isNullable: rand.nextBool(),
-            namedParameters: [
-              fooNamedFunctionTypeParam,
-              unnamedFunctionTypeParam
-            ],
-            positionalParameters: [barPositionalFunctionTypeParam],
-            returnType: fooType,
-            typeParameters: [
-              TypeParameterImpl(
-                  id: RemoteInstance.uniqueId,
-                  metadata: [],
-                  name: 'Zip',
-                  bound: barType)
-            ],
-          );
-          expectSerializationEquality<TypeAnnotationImpl>(
-              functionType, mode, RemoteInstance.deserialize);
-        });
-
-        test('FunctionDeclaration', () {
-          var function = FunctionDeclarationImpl(
-              id: RemoteInstance.uniqueId,
-              identifier:
-                  IdentifierImpl(id: RemoteInstance.uniqueId, name: 'name'),
-              library: Fixtures.library,
-              metadata: [],
-              hasBody: rand.nextBool(),
-              hasExternal: rand.nextBool(),
-              isGetter: rand.nextBool(),
-              isOperator: rand.nextBool(),
-              isSetter: rand.nextBool(),
-              namedParameters: [],
-              positionalParameters: [],
-              returnType: fooType,
-              typeParameters: []);
-          expectSerializationEquality<DeclarationImpl>(
-              function, mode, RemoteInstance.deserialize);
-        });
-
-        test('MethodDeclaration', () {
-          var method = MethodDeclarationImpl(
-              id: RemoteInstance.uniqueId,
-              identifier:
-                  IdentifierImpl(id: RemoteInstance.uniqueId, name: 'zorp'),
-              library: Fixtures.library,
-              metadata: [],
-              hasBody: rand.nextBool(),
-              hasExternal: rand.nextBool(),
-              isGetter: rand.nextBool(),
-              isOperator: rand.nextBool(),
-              isSetter: rand.nextBool(),
-              namedParameters: [fooNamedParam],
-              positionalParameters: [barPositionalParam],
-              returnType: fooType,
-              typeParameters: [zapTypeParam],
-              definingType: fooType.identifier,
-              hasStatic: rand.nextBool());
-          expectSerializationEquality<DeclarationImpl>(
-              method, mode, RemoteInstance.deserialize);
-        });
-
-        test('ConstructorDeclaration', () {
-          var constructor = ConstructorDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'new'),
-            library: Fixtures.library,
-            metadata: [],
-            hasBody: rand.nextBool(),
-            hasExternal: rand.nextBool(),
-            namedParameters: [fooNamedParam],
-            positionalParameters: [barPositionalParam],
-            returnType: fooType,
-            typeParameters: [zapTypeParam],
-            definingType: fooType.identifier,
-            isFactory: rand.nextBool(),
-          );
-          expectSerializationEquality<DeclarationImpl>(
-              constructor, mode, RemoteInstance.deserialize);
-        });
-
-        test('VariableDeclaration', () {
-          var bar = VariableDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'bar'),
-            library: Fixtures.library,
-            metadata: [],
-            hasConst: rand.nextBool(),
-            hasExternal: rand.nextBool(),
-            hasFinal: rand.nextBool(),
-            hasInitializer: rand.nextBool(),
-            hasLate: rand.nextBool(),
-            type: barType,
-          );
-          expectSerializationEquality<DeclarationImpl>(
-              bar, mode, RemoteInstance.deserialize);
-        });
-
-        test('FieldDeclaration', () {
-          var bar = FieldDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'bar'),
-            library: Fixtures.library,
-            metadata: [],
-            hasAbstract: rand.nextBool(),
-            hasConst: rand.nextBool(),
-            hasExternal: rand.nextBool(),
-            hasFinal: rand.nextBool(),
-            hasInitializer: rand.nextBool(),
-            hasLate: rand.nextBool(),
-            type: barType,
-            definingType: fooType.identifier,
-            hasStatic: rand.nextBool(),
-          );
-          expectSerializationEquality<DeclarationImpl>(
-              bar, mode, RemoteInstance.deserialize);
-        });
-
-        var objectType = NamedTypeAnnotationImpl(
-          id: RemoteInstance.uniqueId,
-          identifier:
-              IdentifierImpl(id: RemoteInstance.uniqueId, name: 'Object'),
-          isNullable: false,
-          typeArguments: [],
-        );
-        var serializableType = NamedTypeAnnotationImpl(
-          id: RemoteInstance.uniqueId,
-          identifier:
-              IdentifierImpl(id: RemoteInstance.uniqueId, name: 'Serializable'),
-          isNullable: rand.nextBool(),
-          typeArguments: [],
-        );
-
-        test('ClassDeclaration', () {
-          var fooClass = ClassDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'Foo'),
-            library: Fixtures.library,
-            metadata: [],
-            interfaces: [barType],
-            hasAbstract: rand.nextBool(),
-            hasBase: rand.nextBool(),
-            hasExternal: rand.nextBool(),
-            hasFinal: rand.nextBool(),
-            hasInterface: rand.nextBool(),
-            hasMixin: rand.nextBool(),
-            hasSealed: rand.nextBool(),
-            mixins: [serializableType],
-            superclass: objectType,
-            typeParameters: [zapTypeParam],
-          );
-          expectSerializationEquality<DeclarationImpl>(
-              fooClass, mode, RemoteInstance.deserialize);
-        });
-
-        test('EnumDeclaration', () {
-          var fooEnum = EnumDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MyEnum'),
-            library: Fixtures.library,
-            metadata: [],
-            interfaces: [barType],
-            mixins: [serializableType],
-            typeParameters: [zapTypeParam],
-          );
-          expectSerializationEquality<DeclarationImpl>(
-              fooEnum, mode, RemoteInstance.deserialize);
-        });
-
-        test('EnumValueDeclaration', () {
-          var entry = EnumValueDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'a'),
-            library: Fixtures.library,
-            metadata: [],
-            definingEnum:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MyEnum'),
-          );
-          expectSerializationEquality<DeclarationImpl>(
-              entry, mode, RemoteInstance.deserialize);
-        });
-
-        test('ExtensionDeclaration', () {
-          var extension = ExtensionDeclarationImpl(
-              id: RemoteInstance.uniqueId,
-              identifier: IdentifierImpl(
-                  id: RemoteInstance.uniqueId, name: 'MyExtension'),
-              library: Fixtures.library,
-              metadata: [],
-              typeParameters: [],
-              onType: Fixtures.myClassType);
-          expectSerializationEquality<DeclarationImpl>(
-              extension, mode, RemoteInstance.deserialize);
-        });
-
-        test('ExtensionTypeDeclaration', () {
-          var extensionType = ExtensionTypeDeclarationImpl(
-              id: RemoteInstance.uniqueId,
-              identifier: IdentifierImpl(
-                  id: RemoteInstance.uniqueId, name: 'MyExtensionType'),
-              library: Fixtures.library,
-              metadata: [],
-              typeParameters: [],
-              representationType: Fixtures.myClassType);
-          expectSerializationEquality<DeclarationImpl>(
-              extensionType, mode, RemoteInstance.deserialize);
-        });
-
-        test('MixinDeclaration', () {
-          var mixin = MixinDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MyMixin'),
-            library: Fixtures.library,
-            metadata: [],
-            hasBase: rand.nextBool(),
-            interfaces: [barType],
-            superclassConstraints: [serializableType],
-            typeParameters: [zapTypeParam],
-          );
-          expectSerializationEquality<DeclarationImpl>(
-              mixin, mode, RemoteInstance.deserialize);
-        });
-
-        test('TypeAliasDeclaration', () {
-          var typeAlias = TypeAliasDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'FooOfBar'),
-            library: Fixtures.library,
-            metadata: [],
-            typeParameters: [zapTypeParam],
-            aliasedType: NamedTypeAnnotationImpl(
-                id: RemoteInstance.uniqueId,
-                isNullable: rand.nextBool(),
-                identifier:
-                    IdentifierImpl(id: RemoteInstance.uniqueId, name: 'Foo'),
-                typeArguments: [barType]),
-          );
-          expectSerializationEquality<DeclarationImpl>(
-              typeAlias, mode, RemoteInstance.deserialize);
-        });
-
-        /// Transitively tests [RecordField]
-        test('RecordTypeAnnotation', () {
-          var recordType = RecordTypeAnnotationImpl(
-            id: RemoteInstance.uniqueId,
-            isNullable: rand.nextBool(),
-            namedFields: [
-              RecordFieldImpl(
-                id: RemoteInstance.uniqueId,
-                name: 'hello',
-                type: barType,
-              ),
-            ],
-            positionalFields: [
-              RecordFieldImpl(
-                id: RemoteInstance.uniqueId,
-                name: rand.nextBool() ? null : 'zoiks',
-                type: fooType,
-              ),
-            ],
-          );
-          expectSerializationEquality<TypeAnnotationImpl>(
-              recordType, mode, RemoteInstance.deserialize);
-        });
-      });
-    }
-  });
-
-  group('Arguments', () {
-    test('can create properly typed collections', () {
-      withSerializationMode(SerializationMode.json, () {
-        final parsed = Arguments.deserialize(deserializerFactory([
-          // positional args
-          [
-            // int
-            ArgumentKind.int.index,
-            1,
-            // List<int>
-            ArgumentKind.list.index,
-            [ArgumentKind.int.index],
-            [
-              ArgumentKind.int.index,
-              1,
-              ArgumentKind.int.index,
-              2,
-              ArgumentKind.int.index,
-              3,
-            ],
-            // List<Set<String>>
-            ArgumentKind.list.index,
-            [ArgumentKind.set.index, ArgumentKind.string.index],
-            [
-              // Set<String>
-              ArgumentKind.set.index,
-              [ArgumentKind.string.index],
-              [
-                ArgumentKind.string.index,
-                'hello',
-                ArgumentKind.string.index,
-                'world',
-              ]
-            ],
-            // Map<int, List<String>>
-            ArgumentKind.map.index,
-            [
-              ArgumentKind.int.index,
-              ArgumentKind.nullable.index,
-              ArgumentKind.list.index,
-              ArgumentKind.string.index
-            ],
-            [
-              // key: int
-              ArgumentKind.int.index,
-              4,
-              // value: List<String>
-              ArgumentKind.list.index,
-              [ArgumentKind.string.index],
-              [
-                ArgumentKind.string.index,
-                'zip',
-              ],
-              ArgumentKind.int.index,
-              5,
-              ArgumentKind.nil.index,
-            ]
-          ],
-          // named args
-          [],
-        ]));
-        expect(parsed.positional.length, 4);
-        expect(parsed.positional.first.value, 1);
-        expect(parsed.positional[1].value, [1, 2, 3]);
-        expect(parsed.positional[1].value, isA<List<int>>());
-        expect(parsed.positional[2].value, [
-          {'hello', 'world'}
-        ]);
-        expect(parsed.positional[2].value, isA<List<Set<String>>>());
-        expect(
-          parsed.positional[3].value,
-          {
-            4: ['zip'],
-            5: null,
-          },
-        );
-        expect(parsed.positional[3].value, isA<Map<int, List<String>?>>());
-      });
-    });
-
-    group('can be serialized and deserialized', () {
-      for (var mode in [SerializationMode.byteData, SerializationMode.json]) {
-        test('with mode $mode', () {
-          final arguments = Arguments([
-            MapArgument({
-              StringArgument('hello'): ListArgument(
-                  [BoolArgument(rand.nextBool()), NullArgument()],
-                  [ArgumentKind.nullable, ArgumentKind.bool]),
-            }, [
-              ArgumentKind.string,
-              ArgumentKind.list,
-              ArgumentKind.nullable,
-              ArgumentKind.bool
-            ]),
-            CodeArgument(ExpressionCode.fromParts([
-              '1 + ',
-              IdentifierImpl(id: RemoteInstance.uniqueId, name: 'a')
-            ])),
-            ListArgument([
-              TypeAnnotationArgument(Fixtures.myClassType),
-              TypeAnnotationArgument(Fixtures.myEnumType),
-              TypeAnnotationArgument(NamedTypeAnnotationImpl(
-                  id: RemoteInstance.uniqueId,
-                  isNullable: false,
-                  identifier:
-                      IdentifierImpl(id: RemoteInstance.uniqueId, name: 'List'),
-                  typeArguments: [Fixtures.stringType])),
-            ], [
-              ArgumentKind.typeAnnotation
-            ])
-          ], {
-            'a': SetArgument([
-              MapArgument({
-                IntArgument(1): StringArgument('1'),
-              }, [
-                ArgumentKind.int,
-                ArgumentKind.string
-              ])
-            ], [
-              ArgumentKind.map,
-              ArgumentKind.int,
-              ArgumentKind.string
-            ])
-          });
-          expectSerializationEquality(arguments, mode, Arguments.deserialize);
-        });
-      }
-    });
-  });
-
-  group('Exceptions', () {
-    group('can be serialized and deserialized', () {
-      for (var mode in [SerializationMode.byteData, SerializationMode.json]) {
-        test('with mode $mode', () {
-          final exception = UnexpectedMacroExceptionImpl('something happened',
-              stackTrace: 'here');
-          expectSerializationEquality<UnexpectedMacroExceptionImpl>(
-              exception, mode, RemoteInstance.deserialize);
-        });
-      }
-    });
-  });
-
-  group('metadata annotations can be serialized and deserialized', () {
-    for (var mode in [SerializationMode.byteData, SerializationMode.json]) {
-      group('with mode $mode', () {
-        test('identifiers', () {
-          final identifierMetadata = IdentifierMetadataAnnotationImpl(
-              id: RemoteInstance.uniqueId,
-              identifier: IdentifierImpl(
-                  id: RemoteInstance.uniqueId, name: 'singleton'));
-
-          expectSerializationEquality<IdentifierMetadataAnnotationImpl>(
-              identifierMetadata, mode, RemoteInstance.deserialize);
-        });
-
-        test('constructor invocations', () {
-          final constructorMetadata = ConstructorMetadataAnnotationImpl(
-              id: RemoteInstance.uniqueId,
-              type: NamedTypeAnnotationImpl(
-                  id: RemoteInstance.uniqueId,
-                  identifier: IdentifierImpl(
-                      id: RemoteInstance.uniqueId, name: 'Singleton'),
-                  isNullable: false,
-                  typeArguments: []),
-              constructor:
-                  IdentifierImpl(id: RemoteInstance.uniqueId, name: 'someName'),
-              positionalArguments: [
-                ExpressionCode.fromString("'foo'"),
-                ExpressionCode.fromString('12'),
-              ],
-              namedArguments: {
-                'bar': ExpressionCode.fromString("'bar'"),
-                'foobar': ExpressionCode.fromString('13'),
-              });
-
-          expectSerializationEquality<ConstructorMetadataAnnotationImpl>(
-              constructorMetadata, mode, RemoteInstance.deserialize);
-        });
-      });
-    }
-  });
-}
-
-/// Serializes [serializable] in server mode, then deserializes it in client
-/// mode, and checks that all the fields are the same.
-void expectSerializationEquality<T extends Serializable>(T serializable,
-    SerializationMode mode, T Function(Deserializer deserializer) deserialize) {
-  withSerializationMode(mode, () {
-    late Object? serialized;
-    final int zoneId = newRemoteInstanceZone();
-    withRemoteInstanceZone(zoneId, () {
-      var serializer = serializerFactory();
-      serializable.serialize(serializer);
-      serialized = serializer.result;
-    });
-
-    // This is a fake client, we don't want to actually share the cache,
-    // so we negate the zone id and use that.
-    withRemoteInstanceZone(-zoneId, () {
-      var deserializer = deserializerFactory(serialized);
-      var deserialized = deserialize(deserializer);
-
-      expect(
-          serializable,
-          switch (deserialized) {
-            Declaration() => deepEqualsDeclaration(deserialized as Declaration),
-            TypeAnnotation() =>
-              deepEqualsTypeAnnotation(deserialized as TypeAnnotation),
-            Arguments() => deepEqualsArguments(deserialized),
-            MacroExceptionImpl() => deepEqualsMacroException(deserialized),
-            MetadataAnnotation() =>
-              deepEqualsMetadataAnnotation(deserialized as MetadataAnnotation),
-            _ =>
-              throw UnsupportedError('Unsupported object type $deserialized'),
-          });
-    }, createIfMissing: true);
-  });
-}
-
-/// Deserializes [serialized] in its own remote instance cache and sends it
-/// back.
-Object? roundTrip<Declaration>(Object? serialized, int zoneId) {
-  return withRemoteInstanceZone(zoneId, () {
-    var deserializer = deserializerFactory(serialized);
-    var instance = RemoteInstance.deserialize(deserializer) as Serializable;
-    var serializer = serializerFactory();
-    instance.serialize(serializer);
-    return serializer.result;
-  }, createIfMissing: true);
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/test/executor/simple_macro.dart b/pkg/json/lib/.dart_tool/_macros/test/executor/simple_macro.dart
deleted file mode 100644
index 3b95938..0000000
--- a/pkg/json/lib/.dart_tool/_macros/test/executor/simple_macro.dart
+++ /dev/null
@@ -1,803 +0,0 @@
-// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-
-import 'package:_macros/src/api.dart';
-
-/// A macro for testing diagnostics reporting, including error handling.
-class DiagnosticMacro implements ClassTypesMacro {
-  @override
-  FutureOr<void> buildTypesForClass(
-      ClassDeclaration clazz, ClassTypeBuilder builder) {
-    builder.report(Diagnostic(
-        DiagnosticMessage('superclass',
-            target: clazz.superclass!.asDiagnosticTarget),
-        Severity.info,
-        contextMessages: [
-          DiagnosticMessage(
-            'interface',
-            target: clazz.interfaces.single.asDiagnosticTarget,
-          ),
-        ],
-        correctionMessage: 'correct me!'));
-
-    // Test general error handling also
-    throw 'I threw an error!';
-  }
-}
-
-/// A very simple macro that augments any declaration it is given, usually
-/// adding print statements and inlining values from the declaration object
-/// for comparison with expected values in tests.
-///
-/// When applied to [MethodDeclaration]s there is some extra work that happens
-/// to validate the introspection APIs work as expected.
-class SimpleMacro
-    implements
-        ClassTypesMacro,
-        ClassDeclarationsMacro,
-        ClassDefinitionMacro,
-        ConstructorTypesMacro,
-        ConstructorDeclarationsMacro,
-        ConstructorDefinitionMacro,
-        EnumTypesMacro,
-        EnumDeclarationsMacro,
-        EnumDefinitionMacro,
-        EnumValueTypesMacro,
-        EnumValueDeclarationsMacro,
-        EnumValueDefinitionMacro,
-        ExtensionTypesMacro,
-        ExtensionDeclarationsMacro,
-        ExtensionDefinitionMacro,
-        ExtensionTypeTypesMacro,
-        ExtensionTypeDeclarationsMacro,
-        ExtensionTypeDefinitionMacro,
-        FieldTypesMacro,
-        FieldDeclarationsMacro,
-        FieldDefinitionMacro,
-        FunctionTypesMacro,
-        FunctionDeclarationsMacro,
-        FunctionDefinitionMacro,
-        LibraryTypesMacro,
-        LibraryDeclarationsMacro,
-        LibraryDefinitionMacro,
-        MethodTypesMacro,
-        MethodDeclarationsMacro,
-        MethodDefinitionMacro,
-        MixinTypesMacro,
-        MixinDeclarationsMacro,
-        MixinDefinitionMacro,
-        TypeAliasTypesMacro,
-        TypeAliasDeclarationsMacro,
-        VariableTypesMacro,
-        VariableDeclarationsMacro,
-        VariableDefinitionMacro {
-  final bool? myBool;
-  final int? myInt;
-  final double? myDouble;
-  final Set? mySet;
-  final List? myList;
-  final Map? myMap;
-  final String? myString;
-
-  SimpleMacro([this.myInt])
-      : myBool = null,
-        myDouble = null,
-        mySet = null,
-        myList = null,
-        myMap = null,
-        myString = null;
-
-  SimpleMacro.named(
-      {required this.myBool,
-      required this.myDouble,
-      required this.myInt,
-      required this.mySet,
-      required this.myList,
-      required this.myMap,
-      required this.myString});
-
-  @override
-  FutureOr<void> buildDeclarationsForClass(
-      ClassDeclaration clazz, MemberDeclarationBuilder builder) async {
-    var fields = await builder.fieldsOf(clazz);
-    builder.declareInType(DeclarationCode.fromParts([
-      'static const List<String> fieldNames = [',
-      for (var field in fields) "'${field.identifier.name}',",
-      '];',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForConstructor(
-      ConstructorDeclaration constructor, MemberDeclarationBuilder builder) {
-    var className = constructor.definingType.name;
-    var constructorName = constructor.identifier.name;
-    builder.declareInType(DeclarationCode.fromString(
-        'factory $className.${constructorName}Delegate() => '
-        '$className.$constructorName();'));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForEnum(
-      EnumDeclaration enuum, EnumDeclarationBuilder builder) async {
-    var values = await builder.valuesOf(enuum);
-    builder.declareInType(DeclarationCode.fromParts([
-      'static const List<String> valuesByName = {',
-      for (var value in values) ...[
-        "'${value.identifier.name}': ",
-        value.identifier
-      ],
-      '};',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForEnumValue(
-      EnumValueDeclaration value, EnumDeclarationBuilder builder) async {
-    final parent = await builder.typeDeclarationOf(value.definingEnum);
-    builder.declareInType(DeclarationCode.fromParts([
-      parent.identifier,
-      ' ${value.identifier.name}ToString() => ',
-      value.identifier,
-      '.toString();',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForFunction(
-      FunctionDeclaration function, DeclarationBuilder builder) {
-    var functionName = function.identifier.name;
-    builder.declareInLibrary(DeclarationCode.fromParts([
-      function.returnType.code,
-      if (function.isGetter) ' get' else if (function.isSetter) ' set ',
-      ' delegate${functionName.capitalize()}',
-      if (!function.isGetter) ...[
-        '(',
-        if (function.isSetter) ...[
-          function.positionalParameters.first.type.code,
-          ' value',
-        ],
-        ')',
-      ],
-      ' => $functionName',
-      function.isGetter
-          ? ''
-          : function.isSetter
-              ? ' = value'
-              : '()',
-      ';',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForMethod(
-      MethodDeclaration method, MemberDeclarationBuilder builder) {
-    if (method.positionalParameters.isNotEmpty ||
-        method.namedParameters.isNotEmpty) {
-      throw UnsupportedError('Can only run on method with no parameters!');
-    }
-    var methodName = method.identifier.name;
-    builder.declareInLibrary(DeclarationCode.fromParts([
-      method.returnType.code,
-      ' delegateMember${methodName.capitalize()}() => $methodName();',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForMixin(
-      MixinDeclaration mixin, MemberDeclarationBuilder builder) async {
-    var methods = await builder.methodsOf(mixin);
-    builder.declareInType(DeclarationCode.fromParts([
-      'static const List<String> methodNames = [',
-      for (var method in methods) "'${method.identifier.name}',",
-      '];',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForVariable(
-      VariableDeclaration variable, DeclarationBuilder builder) {
-    var variableName = variable.identifier.name;
-    builder.declareInLibrary(DeclarationCode.fromParts([
-      variable.type.code,
-      ' get delegate${variableName.capitalize()} => $variableName;',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForField(
-      FieldDeclaration field, MemberDeclarationBuilder builder) {
-    var fieldName = field.identifier.name;
-    builder.declareInType(DeclarationCode.fromParts([
-      field.type.code,
-      ' get delegate${fieldName.capitalize()} => $fieldName;',
-    ]));
-  }
-
-  @override
-  Future<void> buildDefinitionForClass(
-      ClassDeclaration clazz, TypeDefinitionBuilder builder) async {
-    // Apply ourself to all our members
-    var fields = (await builder.fieldsOf(clazz));
-    for (var field in fields) {
-      await buildDefinitionForField(
-          field, await builder.buildField(field.identifier));
-    }
-    var methods = (await builder.methodsOf(clazz));
-    for (var method in methods) {
-      await buildDefinitionForMethod(
-          method, await builder.buildMethod(method.identifier));
-    }
-    var constructors = (await builder.constructorsOf(clazz));
-    for (var constructor in constructors) {
-      await buildDefinitionForConstructor(
-          constructor, await builder.buildConstructor(constructor.identifier));
-    }
-  }
-
-  @override
-  Future<void> buildDefinitionForConstructor(ConstructorDeclaration constructor,
-      ConstructorDefinitionBuilder builder) async {
-    var clazz = await builder.declarationOf(constructor.definingType)
-        as TypeDeclaration;
-    var fields = (await builder.fieldsOf(clazz));
-
-    builder.augment(
-      body: await _buildFunctionAugmentation(constructor, builder),
-      initializers: [
-        for (var field in fields)
-          // TODO: Compare against actual `int` type.
-          if (field.hasFinal &&
-              (field.type as NamedTypeAnnotation).identifier.name == 'int')
-            RawCode.fromParts([field.identifier, ' = ${myInt!}']),
-      ],
-    );
-  }
-
-  @override
-  Future<void> buildDefinitionForEnum(
-      EnumDeclaration enuum, EnumDefinitionBuilder builder) async {
-    // Apply ourself to all our members
-    var values = (await builder.valuesOf(enuum));
-    for (var value in values) {
-      await buildDefinitionForEnumValue(
-          value, await builder.buildEnumValue(value.identifier));
-    }
-    var fields = (await builder.fieldsOf(enuum));
-    for (var field in fields) {
-      await buildDefinitionForField(
-          field, await builder.buildField(field.identifier));
-    }
-    var methods = (await builder.methodsOf(enuum));
-    for (var method in methods) {
-      await buildDefinitionForMethod(
-          method, await builder.buildMethod(method.identifier));
-    }
-    var constructors = (await builder.constructorsOf(enuum));
-    for (var constructor in constructors) {
-      await buildDefinitionForConstructor(
-          constructor, await builder.buildConstructor(constructor.identifier));
-    }
-  }
-
-  @override
-  FutureOr<void> buildDefinitionForEnumValue(
-      EnumValueDeclaration value, EnumValueDefinitionBuilder builder) async {
-    final parent =
-        await builder.typeDeclarationOf(value.definingEnum) as EnumDeclaration;
-    final constructor = (await builder.constructorsOf(parent)).first;
-    final parts = [
-      value.identifier,
-      '(',
-    ];
-    final stringType = await builder.resolve(NamedTypeAnnotationCode(
-        name:
-            // ignore: deprecated_member_use_from_same_package
-            await builder.resolveIdentifier(Uri.parse('dart:core'), 'String')));
-    for (var positional in constructor.positionalParameters) {
-      final resolvedType = await builder.resolve(positional.type.code);
-      if (!(await resolvedType.isExactly(stringType))) {
-        throw StateError('Expected only string parameters');
-      }
-      parts.add("'${positional.identifier.name}', ");
-    }
-    for (var named in constructor.namedParameters) {
-      final resolvedType = await builder.resolve(named.type.code);
-      if (!(await resolvedType.isExactly(stringType))) {
-        throw StateError('Expected only string parameters');
-      }
-      parts.add("${named.identifier.name}: '${named.identifier.name}', ");
-    }
-    parts.add('),');
-    builder.augment(DeclarationCode.fromParts(parts));
-  }
-
-  @override
-  Future<void> buildDefinitionForField(
-          FieldDeclaration field, VariableDefinitionBuilder builder) async =>
-      buildDefinitionForVariable(field, builder);
-
-  @override
-  Future<void> buildDefinitionForFunction(
-      FunctionDeclaration function, FunctionDefinitionBuilder builder) async {
-    builder.augment(await _buildFunctionAugmentation(function, builder),
-        docComments: CommentCode.fromString('// A comment!'));
-  }
-
-  @override
-  Future<void> buildDefinitionForMethod(
-      MethodDeclaration method, FunctionDefinitionBuilder builder) async {
-    await buildDefinitionForFunction(method, builder);
-
-    // Test the type declaration resolver
-    var parentClass = await builder.typeDeclarationOf(method.definingType);
-    // Should be able to find ourself in the methods of the parent class.
-    (await builder.methodsOf(parentClass))
-        .singleWhere((m) => m.identifier == method.identifier);
-
-    TypeDeclaration? superClass;
-    final interfaces = <TypeDeclaration>[];
-    final mixins = <TypeDeclaration>[];
-    final superclassConstraints = <TypeDeclaration>[];
-    // Test the class introspector
-    if (parentClass is ClassDeclaration) {
-      superClass =
-          (await builder.typeDeclarationOf(parentClass.superclass!.identifier));
-      interfaces.addAll(await Future.wait(parentClass.interfaces.map(
-          (interface) => builder.typeDeclarationOf(interface.identifier))));
-      mixins.addAll(await Future.wait(parentClass.mixins
-          .map((mixins) => builder.typeDeclarationOf(mixins.identifier))));
-    } else if (parentClass is MixinDeclaration) {
-      superclassConstraints.addAll(await Future.wait(
-          parentClass.superclassConstraints.map(
-              (interface) => builder.typeDeclarationOf(interface.identifier))));
-      interfaces.addAll(await Future.wait(parentClass.interfaces.map(
-          (interface) => builder.typeDeclarationOf(interface.identifier))));
-    } else if (parentClass is EnumDeclaration) {
-      interfaces.addAll(await Future.wait(parentClass.interfaces.map(
-          (interface) => builder.typeDeclarationOf(interface.identifier))));
-      mixins.addAll(await Future.wait(parentClass.mixins
-          .map((mixins) => builder.typeDeclarationOf(mixins.identifier))));
-    }
-    var fields = (await builder.fieldsOf(parentClass));
-    var methods = (await builder.methodsOf(parentClass));
-    var constructors = (await builder.constructorsOf(parentClass));
-
-    // Test the type resolver and static type interfaces
-    var methodReturnType = method.returnType as RecordTypeAnnotation;
-    var staticReturnType = await builder
-        .resolve(methodReturnType.positionalFields.first.type.code);
-    if (!(await staticReturnType.isExactly(staticReturnType))) {
-      throw StateError('The return type should be exactly equal to itself!');
-    }
-    if (!(await staticReturnType.isSubtypeOf(staticReturnType))) {
-      throw StateError('The return type should be a subtype of itself!');
-    }
-
-    // TODO: Use `builder.instantiateCode` instead once implemented.
-    if (constructors.isNotEmpty) {
-      var classType = await builder.resolve(constructors.first.returnType.code);
-      if (await staticReturnType.isExactly(classType)) {
-        throw StateError(
-            'The return type should not be exactly equal to the class type');
-      }
-      if (await staticReturnType.isSubtypeOf(classType)) {
-        throw StateError(
-            'The return type should not be a subtype of the class type!');
-      }
-    }
-
-    builder.augment(FunctionBodyCode.fromParts([
-      '''{
-      print('myBool: $myBool');
-      print('myDouble: $myDouble');
-      print('myInt: $myInt');
-      print('myList: $myList');
-      print('mySet: $mySet');
-      print('myMap: $myMap');
-      print('myString: $myString');
-      print('parentClass: ${parentClass.identifier.name}');
-      print('superClass: ${superClass?.identifier.name}');''',
-      for (var interface in interfaces)
-        "\n      print('interface: ${interface.identifier.name}');",
-      for (var mixin in mixins)
-        "\n      print('mixin: ${mixin.identifier.name}');",
-      for (var field in fields)
-        "\n      print('field: ${field.identifier.name}');",
-      for (var method in methods)
-        "\n      print('method: ${method.identifier.name}');",
-      for (var constructor in constructors)
-        "\n      print('constructor: ${constructor.identifier.name}');",
-      '''
-\n      return augmented();
-    }''',
-    ]));
-  }
-
-  @override
-  Future<void> buildDefinitionForMixin(
-      MixinDeclaration mixin, TypeDefinitionBuilder builder) async {
-    // Apply ourself to all our members
-    var fields = (await builder.fieldsOf(mixin));
-    for (var field in fields) {
-      await buildDefinitionForField(
-          field, await builder.buildField(field.identifier));
-    }
-    var methods = (await builder.methodsOf(mixin));
-    for (var method in methods) {
-      await buildDefinitionForMethod(
-          method, await builder.buildMethod(method.identifier));
-    }
-  }
-
-  @override
-  Future<void> buildDefinitionForVariable(
-      VariableDeclaration variable, VariableDefinitionBuilder builder) async {
-    var definingClass =
-        variable is FieldDeclaration ? variable.definingType.name : '';
-    builder.augment(
-      getter: DeclarationCode.fromParts([
-        variable.type.code,
-        ' get ',
-        variable.identifier.name,
-        ''' {
-          print('parentClass: $definingClass');
-        ''',
-        if (variable is FieldDeclaration)
-          "print('isAbstract: ${variable.hasAbstract}');\n",
-        '''print('isExternal: ${variable.hasExternal}');
-          print('isFinal: ${variable.hasFinal}');
-          print('isLate: ${variable.hasLate}');
-          return augmented;
-        }''',
-      ]),
-      setter: DeclarationCode.fromParts([
-        'set ',
-        variable.identifier.name,
-        '(',
-        variable.type.code,
-        ' value) { augmented = value; }'
-      ]),
-      initializer: ExpressionCode.fromString("'new initial value' + augmented"),
-    );
-  }
-
-  @override
-  FutureOr<void> buildTypesForClass(
-      ClassDeclaration clazz, ClassTypeBuilder builder) {
-    List<Object> buildTypeParam(
-        TypeParameterDeclaration typeParam, bool isFirst) {
-      return [
-        if (!isFirst) ', ',
-        typeParam.identifier.name,
-        if (typeParam.bound != null) ...[
-          ' extends ',
-          typeParam.bound!.code,
-        ]
-      ];
-    }
-
-    var name = '${clazz.identifier.name}Builder';
-    builder.declareType(
-        name,
-        DeclarationCode.fromParts([
-          'class $name',
-          if (clazz.typeParameters.isNotEmpty) ...[
-            '<',
-            ...buildTypeParam(clazz.typeParameters.first, true),
-            for (var typeParam in clazz.typeParameters.skip(1))
-              ...buildTypeParam(typeParam, false),
-            '>',
-          ],
-          ' implements Builder<',
-          clazz.identifier,
-          if (clazz.typeParameters.isNotEmpty) ...[
-            '<',
-            clazz.typeParameters.first.identifier.name,
-            for (var typeParam in clazz.typeParameters)
-              ', ${typeParam.identifier.name}',
-            '>',
-          ],
-          '> {}'
-        ]));
-
-    final interfaceName = 'HasX';
-    builder.declareType(interfaceName, DeclarationCode.fromString('''
-abstract interface class $interfaceName {
-  int get x;
-}'''));
-
-    final mixinName = 'GetX';
-    builder.declareType(mixinName, DeclarationCode.fromString('''
-mixin $mixinName implements $interfaceName {
-  int get x => 1;
-}'''));
-
-    builder.appendInterfaces([RawTypeAnnotationCode.fromString(interfaceName)]);
-    builder.appendMixins([RawTypeAnnotationCode.fromString(mixinName)]);
-  }
-
-  @override
-  FutureOr<void> buildTypesForConstructor(
-      ConstructorDeclaration constructor, TypeBuilder builder) {
-    var name = 'GeneratedBy${constructor.identifier.name.capitalize()}';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  FutureOr<void> buildTypesForEnum(EnumDeclaration enuum, TypeBuilder builder) {
-    final name = 'GeneratedBy${enuum.identifier.name.capitalize()}';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  FutureOr<void> buildTypesForEnumValue(
-      EnumValueDeclaration value, TypeBuilder builder) {
-    final name = 'GeneratedBy${value.definingEnum.name}_'
-        '${value.identifier.name.capitalize()}';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  FutureOr<void> buildTypesForField(
-      FieldDeclaration field, TypeBuilder builder) {
-    var name = 'GeneratedBy${field.identifier.name.capitalize()}';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  FutureOr<void> buildTypesForFunction(
-      FunctionDeclaration function, TypeBuilder builder) {
-    var suffix = function.isGetter
-        ? 'Getter'
-        : function.isSetter
-            ? 'Setter'
-            : '';
-    var name = 'GeneratedBy${function.identifier.name.capitalize()}$suffix';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  FutureOr<void> buildTypesForMethod(
-      MethodDeclaration method, TypeBuilder builder) {
-    var name = 'GeneratedBy${method.identifier.name.capitalize()}';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  FutureOr<void> buildTypesForMixin(
-      MixinDeclaration mixin, TypeBuilder builder) {
-    final onNames = mixin.superclassConstraints
-        .map((type) => type.identifier.name.capitalize())
-        .join('');
-    final name = 'GeneratedBy${mixin.identifier.name.capitalize()}On$onNames';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  FutureOr<void> buildTypesForVariable(
-      VariableDeclaration variable, TypeBuilder builder) {
-    var name = 'GeneratedBy${variable.identifier.name.capitalize()}';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  void buildDeclarationsForLibrary(
-      Library library, DeclarationBuilder builder) {
-    builder.declareInLibrary(
-        DeclarationCode.fromString("final LibraryInfo library;"));
-  }
-
-  @override
-  Future<void> buildDefinitionForLibrary(
-      Library library, LibraryDefinitionBuilder builder) async {
-    var languageVersion = library.languageVersion;
-    var allDeclarations = await builder.topLevelDeclarationsOf(library);
-    var variableDeclaration =
-        allDeclarations.singleWhere((d) => d.identifier.name == 'library');
-    var variableBuilder =
-        await builder.buildVariable(variableDeclaration.identifier);
-    variableBuilder.augment(
-        initializer: ExpressionCode.fromParts([
-      'LibraryInfo(',
-      "Uri.parse('${library.uri}'), ",
-      "'${languageVersion.major}.${languageVersion.minor}', ",
-      "[",
-      for (var type in allDeclarations)
-        if (type is TypeDeclaration) ...[type.identifier, ', '],
-      "])",
-    ]));
-  }
-
-  @override
-  void buildTypesForLibrary(Library library, TypeBuilder builder) {
-    builder.declareType('LibraryInfo', DeclarationCode.fromString('''
-class LibraryInfo {
-  final Uri uri;
-  final String languageVersion;
-  final List<Type> definedTypes;
-  const LibraryInfo(this.uri, this.languageVersion, this.definedTypes);
-}'''));
-  }
-
-  @override
-  FutureOr<void> buildTypesForExtension(
-      ExtensionDeclaration extension, TypeBuilder builder) {
-    final onType = extension.onType as NamedTypeAnnotation;
-    final name = '${extension.identifier.name}On${onType.identifier.name}';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForExtension(
-      ExtensionDeclaration extension, MemberDeclarationBuilder builder) async {
-    final dartCoreList =
-        // ignore: deprecated_member_use_from_same_package
-        await builder.resolveIdentifier(Uri.parse('dart:core'), 'List');
-    final dartCoreString =
-        // ignore: deprecated_member_use_from_same_package
-        await builder.resolveIdentifier(Uri.parse('dart:core'), 'String');
-    builder.declareInType(DeclarationCode.fromParts([
-      NamedTypeAnnotationCode(name: dartCoreList, typeArguments: [
-        NamedTypeAnnotationCode(name: dartCoreString),
-      ]),
-      ' get onTypeFieldNames;',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildDefinitionForExtension(
-      ExtensionDeclaration extension, TypeDefinitionBuilder builder) async {
-    // Get a builder for the getter we added earlier.
-    final extensionMethods = await builder.methodsOf(extension);
-    final getterBuilder = await builder.buildMethod(extensionMethods
-        .singleWhere((m) => m.identifier.name == 'onTypeFieldNames')
-        .identifier);
-
-    // Introspect on our `on` type.
-    final onType = (await builder.typeDeclarationOf(
-        (extension.onType as NamedTypeAnnotation).identifier));
-    final onTypeFields = await builder.fieldsOf(onType);
-
-    getterBuilder.augment(FunctionBodyCode.fromParts([
-      '=> [',
-      for (var field in onTypeFields) "'${field.identifier.name}',",
-      '];',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildTypesForExtensionType(
-      ExtensionTypeDeclaration extensionType, TypeBuilder builder) {
-    final representationType =
-        extensionType.representationType as NamedTypeAnnotation;
-    final name = '${extensionType.identifier.name}On'
-        '${representationType.identifier.name}';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForExtensionType(
-      ExtensionTypeDeclaration extensionType,
-      MemberDeclarationBuilder builder) async {
-    final dartCoreList =
-        // ignore: deprecated_member_use_from_same_package
-        await builder.resolveIdentifier(Uri.parse('dart:core'), 'List');
-    final dartCoreString =
-        // ignore: deprecated_member_use_from_same_package
-        await builder.resolveIdentifier(Uri.parse('dart:core'), 'String');
-    builder.declareInType(DeclarationCode.fromParts([
-      NamedTypeAnnotationCode(name: dartCoreList, typeArguments: [
-        NamedTypeAnnotationCode(name: dartCoreString),
-      ]),
-      ' get onTypeFieldNames;',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildDefinitionForExtensionType(
-      ExtensionTypeDeclaration extensionType,
-      TypeDefinitionBuilder builder) async {
-    // Get a builder for the getter we added earlier.
-    final extensionTypeMethods = await builder.methodsOf(extensionType);
-    final getterBuilder = await builder.buildMethod(extensionTypeMethods
-        .singleWhere((m) => m.identifier.name == 'onTypeFieldNames')
-        .identifier);
-
-    // Introspect on our "representation" type.
-    final onType = (await builder.typeDeclarationOf(
-        (extensionType.representationType as NamedTypeAnnotation).identifier));
-    final onTypeFields = await builder.fieldsOf(onType);
-
-    getterBuilder.augment(FunctionBodyCode.fromParts([
-      '=> [',
-      for (var field in onTypeFields) "'${field.identifier.name}',",
-      '];',
-    ]));
-  }
-
-  @override
-  FutureOr<void> buildTypesForTypeAlias(
-      TypeAliasDeclaration extensionType, TypeBuilder builder) {
-    final representationType = extensionType.aliasedType as NamedTypeAnnotation;
-    final name = '${extensionType.identifier.name}AliasedType'
-        '${representationType.identifier.name}';
-    builder.declareType(name, DeclarationCode.fromString('class $name {}'));
-  }
-
-  @override
-  FutureOr<void> buildDeclarationsForTypeAlias(
-      TypeAliasDeclaration extensionType, DeclarationBuilder builder) async {
-    final dartCoreList =
-        // ignore: deprecated_member_use_from_same_package
-        await builder.resolveIdentifier(Uri.parse('dart:core'), 'List');
-    final dartCoreString =
-        // ignore: deprecated_member_use_from_same_package
-        await builder.resolveIdentifier(Uri.parse('dart:core'), 'String');
-    builder.declareInLibrary(DeclarationCode.fromParts([
-      NamedTypeAnnotationCode(name: dartCoreList, typeArguments: [
-        NamedTypeAnnotationCode(name: dartCoreString),
-      ]),
-      ' get aliasedTypeFieldNames;',
-    ]));
-  }
-}
-
-Future<FunctionBodyCode> _buildFunctionAugmentation(
-    FunctionDeclaration function,
-    DefinitionPhaseIntrospector introspector) async {
-  Future<List<Object>> typeParts(TypeAnnotation annotation) async {
-    if (annotation is OmittedTypeAnnotation) {
-      var inferred = await introspector.inferType(annotation);
-      return [inferred.code, ' (inferred)'];
-    }
-    return [annotation.code];
-  }
-
-  return FunctionBodyCode.fromParts([
-    '{\n',
-    if (function is MethodDeclaration)
-      "print('definingClass: ${function.definingType.name}');\n",
-    if (function is ConstructorDeclaration)
-      "print('isFactory: ${function.isFactory}');\n",
-    '''
-      print('isExternal: ${function.hasExternal}');
-      print('isGetter: ${function.isGetter}');
-      print('isSetter: ${function.isSetter}');
-      print('returnType: ''',
-    function.returnType.code,
-    "');\n",
-    for (var param in function.positionalParameters) ...[
-      "print('positionalParam: ",
-      ...await typeParts(param.type),
-      ' ${param.identifier.name}',
-      "');\n",
-    ],
-    for (var param in function.namedParameters) ...[
-      "print('namedParam: ",
-      ...await typeParts(param.type),
-      ' ${param.identifier.name}',
-      "');\n",
-    ],
-    for (var param in function.typeParameters) ...[
-      "print('typeParam: ${param.identifier.name} ",
-      if (param.bound != null) param.bound!.code,
-      "');\n",
-    ],
-    'return augmented',
-    if (function.isSetter) ...[
-      ' = ',
-      function.positionalParameters.first.identifier,
-    ],
-    if (!function.isGetter && !function.isSetter) '()',
-    ''';
-    }''',
-  ]);
-}
-
-extension on String {
-  String capitalize() => '${this[0].toUpperCase()}${substring(1)}';
-}
diff --git a/pkg/json/lib/.dart_tool/_macros/test/util.dart b/pkg/json/lib/.dart_tool/_macros/test/util.dart
deleted file mode 100644
index 35f0d91..0000000
--- a/pkg/json/lib/.dart_tool/_macros/test/util.dart
+++ /dev/null
@@ -1,795 +0,0 @@
-// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:mirrors';
-
-import 'package:_macros/src/api.dart';
-import 'package:_macros/src/executor.dart';
-import 'package:_macros/src/executor/introspection_impls.dart';
-import 'package:_macros/src/executor/remote_instance.dart';
-import 'package:test/test.dart';
-
-class TestTypePhaseIntrospector implements TypePhaseIntrospector {
-  @override
-  Future<Identifier> resolveIdentifier(Uri library, String name) async {
-    if (library == Uri.parse('dart:core') && name == 'String') {
-      return Fixtures.stringType.identifier;
-    }
-    if (library == Uri.parse('dart:core') && name == 'List') {
-      return Fixtures.listIdentifier;
-    }
-    throw UnimplementedError('Cannot resolve the identifier $library:$name');
-  }
-}
-
-class TestDeclarationPhaseIntrospector extends TestTypePhaseIntrospector
-    implements DeclarationPhaseIntrospector {
-  final Map<TypeDeclaration, List<ConstructorDeclaration>> constructors;
-  final Map<EnumDeclaration, List<EnumValueDeclaration>> enumValues;
-  final Map<TypeDeclaration, List<FieldDeclaration>> fields;
-  final Map<TypeDeclaration, List<MethodDeclaration>> methods;
-  final Map<Library, List<TypeDeclaration>> libraryTypes;
-  final Map<Identifier, StaticType> staticTypes;
-  final Map<Identifier, Declaration> identifierDeclarations;
-
-  TestDeclarationPhaseIntrospector(
-      {required this.constructors,
-      required this.enumValues,
-      required this.fields,
-      required this.methods,
-      required this.libraryTypes,
-      required this.staticTypes,
-      required this.identifierDeclarations});
-
-  @override
-  Future<TypeDeclaration> typeDeclarationOf(
-      covariant Identifier identifier) async {
-    var declaration = identifierDeclarations[identifier];
-    if (declaration != null) return declaration as TypeDeclaration;
-    throw 'No declaration found for ${identifier.name}';
-  }
-
-  @override
-  Future<StaticType> resolve(covariant TypeAnnotationCode type) async {
-    assert(type.parts.length == 1);
-    return staticTypes[type.parts.first]!;
-  }
-
-  @override
-  Future<List<ConstructorDeclaration>> constructorsOf(
-          covariant TypeDeclaration type) async =>
-      constructors[type]!;
-
-  @override
-  Future<List<EnumValueDeclaration>> valuesOf(
-          covariant EnumDeclaration enuum) async =>
-      enumValues[enuum]!;
-
-  @override
-  Future<List<FieldDeclaration>> fieldsOf(
-          covariant TypeDeclaration clazz) async =>
-      fields[clazz]!;
-
-  @override
-  Future<List<MethodDeclaration>> methodsOf(
-          covariant TypeDeclaration clazz) async =>
-      methods[clazz]!;
-
-  @override
-  Future<List<TypeDeclaration>> typesOf(covariant Library library) async =>
-      libraryTypes[library]!;
-}
-
-/// Doesn't handle generics etc but thats ok for now
-class TestNamedStaticType implements NamedStaticType {
-  final IdentifierImpl identifier;
-  final String library;
-  final List<TestNamedStaticType> superTypes;
-
-  TestNamedStaticType(this.identifier, this.library, this.superTypes);
-
-  @override
-  Future<bool> isExactly(TestNamedStaticType other) async => _isExactly(other);
-
-  @override
-  Future<bool> isSubtypeOf(TestNamedStaticType other) async =>
-      _isExactly(other) ||
-      superTypes.any((superType) => superType._isExactly(other));
-
-  bool _isExactly(TestNamedStaticType other) =>
-      identical(other, this) ||
-      (library == other.library && identifier.name == other.identifier.name);
-}
-
-/// Assumes all omitted types are [TestOmittedTypeAnnotation]s and just returns
-/// the inferred type directly.
-class TestDefinitionsPhaseIntrospector extends TestDeclarationPhaseIntrospector
-    implements DefinitionPhaseIntrospector {
-  final Map<Library, List<Declaration>> libraryDeclarations;
-
-  TestDefinitionsPhaseIntrospector(
-      {required this.libraryDeclarations,
-      required super.constructors,
-      required super.enumValues,
-      required super.fields,
-      required super.methods,
-      required super.libraryTypes,
-      required super.staticTypes,
-      required super.identifierDeclarations});
-  @override
-  Future<Declaration> declarationOf(Identifier identifier) async =>
-      identifierDeclarations[identifier]!;
-
-  @override
-  Future<TypeAnnotation> inferType(
-          TestOmittedTypeAnnotation omittedType) async =>
-      omittedType.inferredType!;
-
-  @override
-  Future<List<Declaration>> topLevelDeclarationsOf(Library library) async =>
-      libraryDeclarations[library]!;
-
-  @override
-  Future<TypeDeclaration> typeDeclarationOf(Identifier identifier) async =>
-      await super.typeDeclarationOf(identifier);
-}
-
-/// Knows its inferred type ahead of time.
-class TestOmittedTypeAnnotation extends OmittedTypeAnnotationImpl {
-  final TypeAnnotation? inferredType;
-
-  TestOmittedTypeAnnotation([this.inferredType])
-      : super(id: RemoteInstance.uniqueId);
-}
-
-/// An identifier that knows the resolved version of itself.
-class TestIdentifier extends IdentifierImpl {
-  final ResolvedIdentifier resolved;
-
-  TestIdentifier({
-    required super.id,
-    required super.name,
-    required IdentifierKind kind,
-    required Uri? uri,
-    required String? staticScope,
-  }) : resolved = ResolvedIdentifier(
-            kind: kind, name: name, staticScope: staticScope, uri: uri);
-}
-
-extension DebugCodeString on Code {
-  StringBuffer debugString([StringBuffer? buffer]) {
-    buffer ??= StringBuffer();
-    for (var part in parts) {
-      if (part is Code) {
-        part.debugString(buffer);
-      } else if (part is IdentifierImpl) {
-        buffer.write(part.name);
-      } else if (part is TestOmittedTypeAnnotation) {
-        if (part.inferredType != null) {
-          buffer.write('/*inferred*/');
-          part.inferredType!.code.debugString(buffer);
-        } else {
-          buffer.write('/*omitted*/');
-        }
-      } else {
-        buffer.write(part as String);
-      }
-    }
-    return buffer;
-  }
-}
-
-extension IterableToDebugCodeString on Iterable<Code> {
-  Iterable<String> mapToDebugCodeString() =>
-      map((a) => a.debugString().toString())
-          // Avoid doing this repeatedly when used in unorderedEquals etc.
-          .toList();
-}
-
-extension MapValuesToDebugCodeString<K> on Map<K, Iterable<Code>> {
-  Map<K, Iterable<String>> mapValuesToDebugCodeString() =>
-      map((key, values) => MapEntry(key, values.mapToDebugCodeString()));
-}
-
-/// Checks if two [Code] objects are of the same type and all their fields are
-/// equal.
-Matcher deepEqualsCode(Code other) => _DeepEqualityMatcher(other);
-
-/// Checks if two [Declaration]s are of the same type and all their fields are
-/// equal.
-Matcher deepEqualsDeclaration(Declaration declaration) =>
-    _DeepEqualityMatcher(declaration);
-
-/// Checks if two [TypeAnnotation]s are of the same type and all their fields
-/// are equal.
-Matcher deepEqualsTypeAnnotation(TypeAnnotation declaration) =>
-    _DeepEqualityMatcher(declaration);
-
-/// Checks if two [Arguments]s are identical
-Matcher deepEqualsArguments(Arguments arguments) =>
-    _DeepEqualityMatcher(arguments);
-
-/// Checks if two [MacroException]s are identical
-Matcher deepEqualsMacroException(MacroException macroException) =>
-    _DeepEqualityMatcher(macroException);
-
-/// Checks if two [MetadataAnnotation]s are identical
-Matcher deepEqualsMetadataAnnotation(MetadataAnnotation metadata) =>
-    _DeepEqualityMatcher(metadata);
-
-/// Checks if two [Declaration]s, [TypeAnnotation]s, [Code]s or
-/// [MacroException]s are of the same type and all their fields are equal.
-class _DeepEqualityMatcher extends Matcher {
-  final Object? instance;
-
-  _DeepEqualityMatcher(this.instance);
-
-  @override
-  Description describe(Description description) => description;
-
-  @override
-  bool matches(item, Map matchState) {
-    // For type promotion.
-    final instance = this.instance;
-    if (!equals(item.runtimeType).matches(instance.runtimeType, matchState)) {
-      return false;
-    }
-    if (instance is Declaration ||
-        instance is TypeAnnotation ||
-        instance is MetadataAnnotation ||
-        instance is MacroException) {
-      var instanceReflector = reflect(instance);
-      var itemReflector = reflect(item);
-
-      var type = instanceReflector.type;
-      for (var getter
-          in type.instanceMembers.values.where((member) => member.isGetter)) {
-        // We only care about synthetic field getters
-        if (!getter.isSynthetic) continue;
-
-        var instanceField = instanceReflector.getField(getter.simpleName);
-        var itemField = itemReflector.getField(getter.simpleName);
-        var instanceValue = instanceField.reflectee;
-        var itemValue = itemField.reflectee;
-
-        if (!_DeepEqualityMatcher(instanceValue)
-            .matches(itemValue, matchState)) {
-          return false;
-        }
-      }
-    } else if (instance is Code) {
-      item as Code;
-      if (!_DeepEqualityMatcher(instance.parts)
-          .matches(item.parts, matchState)) {
-        return false;
-      }
-    } else if (instance is Arguments) {
-      item as Arguments;
-      if (!equals(instance.positional.length)
-          .matches(item.positional.length, matchState)) {
-        return false;
-      }
-      for (var i = 0; i < instance.positional.length; i++) {
-        if (!_DeepEqualityMatcher(instance.positional[i].value)
-            .matches(item.positional[i].value, matchState)) {
-          return false;
-        }
-      }
-      if (instance.named.length != item.named.length) return false;
-      if (!equals(instance.named.keys).matches(item.named.keys, matchState)) {
-        return false;
-      }
-      for (var key in instance.named.keys) {
-        if (!_DeepEqualityMatcher(instance.named[key]!.value)
-            .matches(item.named[key]!.value, matchState)) {
-          return false;
-        }
-      }
-    } else if (instance is List) {
-      item as List;
-      if (!equals(instance.length).matches(item.length, matchState)) {
-        return false;
-      }
-      for (var i = 0; i < instance.length; i++) {
-        if (!_DeepEqualityMatcher(instance[i]).matches(item[i], matchState)) {
-          return false;
-        }
-      }
-    } else if (instance is Map) {
-      item as Map;
-      if (!equals(instance.length).matches(item.length, matchState)) {
-        return false;
-      }
-      for (var key in instance.keys) {
-        // Key sets are same size, so they are equal if every key in `instance`
-        // is also a key in `item`.
-        if (!contains(key).matches(item, matchState)) {
-          return false;
-        }
-        // Maps are equal if keys are equal and every value is equal.
-        if (!_DeepEqualityMatcher(instance[key])
-            .matches(item[key], matchState)) {
-          return false;
-        }
-      }
-    } else {
-      // Handles basic values and identity
-      if (!equals(instance).matches(item, matchState)) {
-        return false;
-      }
-    }
-    return true;
-  }
-}
-
-class Fixtures {
-  static final library = LibraryImpl(
-      id: RemoteInstance.uniqueId,
-      languageVersion: LanguageVersionImpl(3, 0),
-      metadata: [],
-      uri: Uri.parse('package:foo/bar.dart'));
-  static final listIdentifier =
-      IdentifierImpl(id: RemoteInstance.uniqueId, name: 'List');
-  static final nullableBoolType = NamedTypeAnnotationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'bool'),
-      isNullable: true,
-      typeArguments: const []);
-  static final stringType = NamedTypeAnnotationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'String'),
-      isNullable: false,
-      typeArguments: const []);
-  static final inferredStringType = TestOmittedTypeAnnotation(stringType);
-  static final voidType = NamedTypeAnnotationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'void'),
-      isNullable: false,
-      typeArguments: const []);
-  static final recordType = RecordTypeAnnotationImpl(
-      id: RemoteInstance.uniqueId,
-      isNullable: false,
-      namedFields: [
-        RecordFieldImpl(
-            id: RemoteInstance.uniqueId, name: 'world', type: stringType),
-      ],
-      positionalFields: [
-        RecordFieldImpl(
-            id: RemoteInstance.uniqueId, name: null, type: stringType),
-        RecordFieldImpl(
-            id: RemoteInstance.uniqueId, name: 'hello', type: nullableBoolType),
-      ]);
-
-  // Top level, non-class declarations.
-  static final myFunction = FunctionDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'myFunction'),
-      library: Fixtures.library,
-      metadata: [],
-      hasBody: true,
-      hasExternal: false,
-      isGetter: false,
-      isOperator: false,
-      isSetter: false,
-      namedParameters: [],
-      positionalParameters: [],
-      returnType: stringType,
-      typeParameters: []);
-  static final myVariable = VariableDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: '_myVariable'),
-      library: Fixtures.library,
-      metadata: [],
-      hasConst: false,
-      hasExternal: false,
-      hasFinal: true,
-      hasInitializer: false,
-      hasLate: false,
-      type: inferredStringType);
-  static final myVariableGetter = FunctionDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'myVariable'),
-      library: Fixtures.library,
-      metadata: [],
-      hasBody: true,
-      hasExternal: false,
-      isGetter: true,
-      isOperator: false,
-      isSetter: false,
-      namedParameters: [],
-      positionalParameters: [],
-      returnType: stringType,
-      typeParameters: []);
-  static final myVariableSetter = FunctionDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'myVariable'),
-      library: Fixtures.library,
-      metadata: [],
-      hasBody: true,
-      hasExternal: false,
-      isGetter: false,
-      isOperator: false,
-      isSetter: true,
-      namedParameters: [],
-      positionalParameters: [
-        FormalParameterDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'value'),
-            library: Fixtures.library,
-            metadata: [],
-            isNamed: false,
-            isRequired: true,
-            type: stringType)
-      ],
-      returnType: voidType,
-      typeParameters: []);
-
-  static final libraryVariable = VariableDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'library'),
-      library: Fixtures.library,
-      metadata: [],
-      hasConst: false,
-      hasExternal: false,
-      hasFinal: true,
-      hasInitializer: false,
-      hasLate: false,
-      type: NamedTypeAnnotationImpl(
-          id: RemoteInstance.uniqueId,
-          isNullable: false,
-          identifier:
-              IdentifierImpl(id: RemoteInstance.uniqueId, name: 'LibraryInfo'),
-          typeArguments: []));
-
-  // Class and member declarations
-  static final myInterfaceType = NamedTypeAnnotationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MyInterface'),
-      isNullable: false,
-      typeArguments: const []);
-  static final myMixinType = NamedTypeAnnotationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MyMixin'),
-      isNullable: false,
-      typeArguments: const []);
-  static final mySuperclassType = NamedTypeAnnotationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MySuperclass'),
-      isNullable: false,
-      typeArguments: const []);
-  static final myClassType = NamedTypeAnnotationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MyClass'),
-      isNullable: false,
-      typeArguments: const []);
-  static final myClass = ClassDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: myClassType.identifier,
-      library: Fixtures.library,
-      metadata: [],
-      typeParameters: [],
-      interfaces: [myInterfaceType],
-      hasAbstract: false,
-      hasBase: false,
-      hasExternal: false,
-      hasFinal: false,
-      hasInterface: false,
-      hasMixin: false,
-      hasSealed: false,
-      mixins: [myMixinType],
-      superclass: mySuperclassType);
-  static final myConstructor = ConstructorDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'myConstructor'),
-      library: Fixtures.library,
-      metadata: [],
-      hasBody: false, // we will augment with one
-      hasExternal: false,
-      namedParameters: [],
-      positionalParameters: [
-        FormalParameterDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'myField'),
-            library: Fixtures.library,
-            metadata: [],
-            isNamed: false,
-            isRequired: true,
-            type: TestOmittedTypeAnnotation(myField.type))
-      ],
-      returnType: myClassType,
-      typeParameters: [],
-      definingType: myClassType.identifier,
-      isFactory: false);
-  static final myField = FieldDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'myField'),
-      library: Fixtures.library,
-      metadata: [],
-      hasAbstract: false,
-      hasConst: false,
-      hasExternal: false,
-      hasFinal: false,
-      hasInitializer: false,
-      hasLate: false,
-      type: stringType,
-      definingType: myClassType.identifier,
-      hasStatic: false);
-  static final myInterface = ClassDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: myInterfaceType.identifier,
-      library: Fixtures.library,
-      metadata: [],
-      typeParameters: [],
-      interfaces: [],
-      hasAbstract: false,
-      hasBase: false,
-      hasExternal: false,
-      hasFinal: false,
-      hasInterface: true,
-      hasMixin: false,
-      hasSealed: false,
-      mixins: [],
-      superclass: null);
-  static final myMethod = MethodDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'myMethod'),
-      library: Fixtures.library,
-      metadata: [],
-      hasBody: true,
-      hasExternal: false,
-      isGetter: false,
-      isOperator: false,
-      isSetter: false,
-      namedParameters: [],
-      positionalParameters: [],
-      returnType: recordType,
-      typeParameters: [],
-      definingType: myClassType.identifier,
-      hasStatic: false);
-  static final mySuperclass = ClassDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: mySuperclassType.identifier,
-      library: Fixtures.library,
-      metadata: [],
-      typeParameters: [],
-      interfaces: [],
-      hasAbstract: false,
-      hasBase: false,
-      hasExternal: false,
-      hasFinal: false,
-      hasInterface: false,
-      hasMixin: false,
-      hasSealed: false,
-      mixins: [],
-      superclass: null);
-
-  static final myClassStaticType = TestNamedStaticType(
-      myClassType.identifier, 'package:my_package/my_package.dart', []);
-
-  static final myEnumType = NamedTypeAnnotationImpl(
-      id: RemoteInstance.uniqueId,
-      isNullable: false,
-      identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MyEnum'),
-      typeArguments: []);
-  static final myEnum = EnumDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: myEnumType.identifier,
-      library: Fixtures.library,
-      metadata: [],
-      typeParameters: [],
-      interfaces: [],
-      mixins: []);
-  static final myEnumValues = [
-    EnumValueDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: IdentifierImpl(id: RemoteInstance.uniqueId, name: 'a'),
-      library: Fixtures.library,
-      metadata: [],
-      definingEnum: myEnum.identifier,
-    ),
-  ];
-  static final myEnumConstructor = ConstructorDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier: IdentifierImpl(
-          id: RemoteInstance.uniqueId, name: 'myEnumConstructor'),
-      library: Fixtures.library,
-      metadata: [],
-      hasBody: false, // We will augment with one
-      hasExternal: false,
-      namedParameters: [],
-      positionalParameters: [
-        FormalParameterDeclarationImpl(
-            id: RemoteInstance.uniqueId,
-            identifier:
-                IdentifierImpl(id: RemoteInstance.uniqueId, name: 'myField'),
-            library: Fixtures.library,
-            metadata: [],
-            isNamed: false,
-            isRequired: true,
-            type: stringType)
-      ],
-      returnType: myEnumType,
-      typeParameters: [],
-      definingType: myEnum.identifier,
-      isFactory: false);
-
-  static final myMixin = MixinDeclarationImpl(
-    id: RemoteInstance.uniqueId,
-    identifier: myMixinType.identifier,
-    library: Fixtures.library,
-    metadata: [],
-    typeParameters: [],
-    hasBase: false,
-    interfaces: [],
-    superclassConstraints: [myClassType],
-  );
-  static final myMixinMethod = MethodDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'myMixinMethod'),
-      library: Fixtures.library,
-      metadata: [],
-      hasBody: true,
-      hasExternal: false,
-      isGetter: false,
-      isOperator: false,
-      isSetter: false,
-      namedParameters: [],
-      positionalParameters: [],
-      returnType: recordType,
-      typeParameters: [],
-      definingType: myMixinType.identifier,
-      hasStatic: false);
-
-  static final myExtension = ExtensionDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MyExtension'),
-      library: Fixtures.library,
-      metadata: [],
-      typeParameters: [],
-      onType: myClassType);
-
-  static final myExtensionType = ExtensionTypeDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'MyExtensionType'),
-      library: Fixtures.library,
-      metadata: [],
-      typeParameters: [],
-      representationType: myClassType);
-
-  static final myTypeAlias = TypeAliasDeclarationImpl(
-    id: RemoteInstance.uniqueId,
-    identifier: IdentifierImpl(
-      id: RemoteInstance.uniqueId,
-      name: 'MyTypeAlias',
-    ),
-    library: Fixtures.library,
-    metadata: [],
-    typeParameters: [],
-    aliasedType: myClassType,
-  );
-
-  static final myGeneratedExtensionMethod = MethodDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'onTypeFieldNames'),
-      library: library,
-      metadata: [],
-      hasBody: true,
-      hasExternal: false,
-      isGetter: true,
-      isOperator: false,
-      isSetter: false,
-      namedParameters: [],
-      positionalParameters: [],
-      returnType: NamedTypeAnnotationImpl(
-          id: RemoteInstance.uniqueId,
-          isNullable: false,
-          identifier: listIdentifier,
-          typeArguments: [stringType]),
-      typeParameters: [],
-      definingType: myExtension.identifier,
-      // TODO: This is a bit weird, the method is actually static, but doesn't
-      // have the keyword because it is implicit.
-      hasStatic: false);
-
-  static final myGeneratedExtensionTypeMethod = MethodDeclarationImpl(
-      id: RemoteInstance.uniqueId,
-      identifier:
-          IdentifierImpl(id: RemoteInstance.uniqueId, name: 'onTypeFieldNames'),
-      library: library,
-      metadata: [],
-      hasBody: true,
-      hasExternal: false,
-      isGetter: true,
-      isOperator: false,
-      isSetter: false,
-      namedParameters: [],
-      positionalParameters: [],
-      returnType: NamedTypeAnnotationImpl(
-          id: RemoteInstance.uniqueId,
-          isNullable: false,
-          identifier: listIdentifier,
-          typeArguments: [stringType]),
-      typeParameters: [],
-      definingType: myExtensionType.identifier,
-      // TODO: This is a bit weird, the method is actually static, but doesn't
-      // have the keyword because it is implicit.
-      hasStatic: false);
-
-  static final testDeclarationPhaseIntrospector =
-      TestDeclarationPhaseIntrospector(constructors: {
-    myClass: [myConstructor],
-    myEnum: [myEnumConstructor],
-    myMixin: [],
-  }, enumValues: {
-    myEnum: myEnumValues,
-  }, fields: {
-    myClass: [myField],
-    myMixin: [],
-    myEnum: [],
-  }, methods: {
-    myClass: [myMethod],
-    myMixin: [myMixinMethod],
-    myEnum: [],
-    myExtension: [myGeneratedExtensionMethod],
-    myExtensionType: [myGeneratedExtensionTypeMethod],
-  }, libraryTypes: {
-    Fixtures.library: [
-      myClass,
-      myEnum,
-      myExtension,
-      myMixin,
-    ],
-  }, staticTypes: {
-    stringType.identifier:
-        TestNamedStaticType(stringType.identifier, 'dart:core', []),
-    myClass.identifier: myClassStaticType,
-  }, identifierDeclarations: {
-    myClass.identifier: myClass,
-    myEnum.identifier: myEnum,
-    myExtension.identifier: myExtension,
-    mySuperclass.identifier: mySuperclass,
-    myInterface.identifier: myInterface,
-    myMixin.identifier: myMixin,
-    myConstructor.identifier: myConstructor,
-    myEnumConstructor.identifier: myEnumConstructor,
-    for (EnumValueDeclaration value in myEnumValues) value.identifier: value,
-    myField.identifier: myField,
-    myMixinMethod.identifier: myMixinMethod,
-    myMethod.identifier: myMethod,
-  });
-
-  static final testDefinitionPhaseIntrospector =
-      TestDefinitionsPhaseIntrospector(
-          constructors: testDeclarationPhaseIntrospector.constructors,
-          enumValues: testDeclarationPhaseIntrospector.enumValues,
-          fields: testDeclarationPhaseIntrospector.fields,
-          methods: testDeclarationPhaseIntrospector.methods,
-          libraryDeclarations: {
-            Fixtures.library: [
-              myClass,
-              myEnum,
-              myMixin,
-              myFunction,
-              myVariable,
-              libraryVariable,
-            ],
-          },
-          libraryTypes: testDeclarationPhaseIntrospector.libraryTypes,
-          staticTypes: testDeclarationPhaseIntrospector.staticTypes,
-          identifierDeclarations:
-              testDeclarationPhaseIntrospector.identifierDeclarations);
-}
diff --git a/pkg/json/lib/.dart_tool/macros/CHANGELOG.md b/pkg/json/lib/.dart_tool/macros/CHANGELOG.md
deleted file mode 100644
index 5553ad8..0000000
--- a/pkg/json/lib/.dart_tool/macros/CHANGELOG.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## 0.1.0-main.5
-
-- Handle ParallelWaitError with DiagnosticException errors nicely.
-- Fix a bug where we weren't reporting diagnostics for nested builders.
-
-## 0.1.0-main.4
-
-- Improve formatting of constructor initializer augmentations.
-
-## 0.1.0-main.3
-
-- Validate parts in `Code.fromParts()`.
-
-## 0.1.0-main.2
-
-- Add caching for `typeDeclarationOf` results.
-
-## 0.1.0-main.1
-
-- Add caching for `TypeDeclaration` related introspection results.
-
-## 0.1.0-main.0
-
-Initial release, highly experimental at this time.
diff --git a/pkg/json/lib/.dart_tool/macros/CONTRIBUTING.md b/pkg/json/lib/.dart_tool/macros/CONTRIBUTING.md
deleted file mode 100644
index a0649db..0000000
--- a/pkg/json/lib/.dart_tool/macros/CONTRIBUTING.md
+++ /dev/null
@@ -1 +0,0 @@
-See `pkg/_macros/CONTRIBUTING.md`.
diff --git a/pkg/json/lib/.dart_tool/macros/LICENSE b/pkg/json/lib/.dart_tool/macros/LICENSE
deleted file mode 100644
index b03a788..0000000
--- a/pkg/json/lib/.dart_tool/macros/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright 2024, the Dart project authors.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-    * Neither the name of Google LLC nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/pkg/json/lib/.dart_tool/macros/OWNERS b/pkg/json/lib/.dart_tool/macros/OWNERS
deleted file mode 100644
index 876a884..0000000
--- a/pkg/json/lib/.dart_tool/macros/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-file:/tools/OWNERS_FOUNDATION
diff --git a/pkg/json/lib/.dart_tool/macros/README.md b/pkg/json/lib/.dart_tool/macros/README.md
deleted file mode 100644
index b9270b3..0000000
--- a/pkg/json/lib/.dart_tool/macros/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-☠☠ **Warning: This package is experimental and may not be available in a future
-version of Dart.** ☠☠
-
-This package is for macro authors, and exposes the APIs necessary to write
-a macro. Specifically, it exports the private `_macros` SDK vendored package.
-
-## Macro authors
-
-Macro authors can use normal constraints on this package, and should only import
-the `package:macros/macros.dart` file.
-
-Note that the versions of this package are tied directly to your SDK version, so
-you won't be able to get new feature releases without updating your SDK.
-
-## Compilers and tools
-
-This package also exposes some "private" sources (under lib/src), intended only
-for use by compilers and tools, in order to bootstrap and execute macros.
-
-When depending on these "private" sources, a more narrow constraint should be
-used, which constraints to feature releases (which means patch versions until
-such time as this package goes to 1.0.0). For example,
-`macros: ">=0.1.1 <0.1.2"`.
diff --git a/pkg/json/lib/.dart_tool/macros/analysis_options.yaml b/pkg/json/lib/.dart_tool/macros/analysis_options.yaml
deleted file mode 100644
index 055ac10..0000000
--- a/pkg/json/lib/.dart_tool/macros/analysis_options.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-include: package:lints/recommended.yaml
-
-analyzer:
-  language:
-    strict-casts: true
diff --git a/pkg/json/lib/.dart_tool/macros/lib/macros.dart b/pkg/json/lib/.dart_tool/macros/lib/macros.dart
deleted file mode 100644
index a1ce0d4..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/macros.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/api.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/bootstrap.dart b/pkg/json/lib/.dart_tool/macros/lib/src/bootstrap.dart
deleted file mode 100644
index 5340706..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/bootstrap.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/bootstrap.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/client.dart b/pkg/json/lib/.dart_tool/macros/lib/src/client.dart
deleted file mode 100644
index b2b204b..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/client.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/client.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/executor.dart b/pkg/json/lib/.dart_tool/macros/lib/src/executor.dart
deleted file mode 100644
index 550662e..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/executor.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/executor.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/executor/exception_impls.dart b/pkg/json/lib/.dart_tool/macros/lib/src/executor/exception_impls.dart
deleted file mode 100644
index e5a1320..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/executor/exception_impls.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/executor/exception_impls.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/executor/introspection_impls.dart b/pkg/json/lib/.dart_tool/macros/lib/src/executor/introspection_impls.dart
deleted file mode 100644
index b0bef52..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/executor/introspection_impls.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/executor/introspection_impls.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/executor/isolated_executor.dart b/pkg/json/lib/.dart_tool/macros/lib/src/executor/isolated_executor.dart
deleted file mode 100644
index 4bccf2b..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/executor/isolated_executor.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/executor/isolated_executor.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/executor/kernel_executor.dart b/pkg/json/lib/.dart_tool/macros/lib/src/executor/kernel_executor.dart
deleted file mode 100644
index de50e19..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/executor/kernel_executor.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/executor/kernel_executor.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/executor/multi_executor.dart b/pkg/json/lib/.dart_tool/macros/lib/src/executor/multi_executor.dart
deleted file mode 100644
index c97b171..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/executor/multi_executor.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/executor/multi_executor.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/executor/process_executor.dart b/pkg/json/lib/.dart_tool/macros/lib/src/executor/process_executor.dart
deleted file mode 100644
index 3001cdd..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/executor/process_executor.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/executor/process_executor.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/executor/remote_instance.dart b/pkg/json/lib/.dart_tool/macros/lib/src/executor/remote_instance.dart
deleted file mode 100644
index 8ffe9ea..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/executor/remote_instance.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/executor/remote_instance.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/executor/serialization.dart b/pkg/json/lib/.dart_tool/macros/lib/src/executor/serialization.dart
deleted file mode 100644
index 5021bed..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/executor/serialization.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/executor/serialization.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/lib/src/executor/span.dart b/pkg/json/lib/.dart_tool/macros/lib/src/executor/span.dart
deleted file mode 100644
index cc42dda..0000000
--- a/pkg/json/lib/.dart_tool/macros/lib/src/executor/span.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-export 'package:_macros/src/executor/span.dart';
diff --git a/pkg/json/lib/.dart_tool/macros/pubspec.yaml b/pkg/json/lib/.dart_tool/macros/pubspec.yaml
deleted file mode 100644
index 6fdea15..0000000
--- a/pkg/json/lib/.dart_tool/macros/pubspec.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-name: macros
-version: 0.1.0-main.5
-description: >-
-  This package is for macro authors, and exposes the APIs necessary to write
-  a macro. It exports the APIs from the private `_macros` SDK vendored package.
-repository: https://github.com/dart-lang/sdk/tree/main/pkg/macros
-
-environment:
-  sdk: ^3.4.0-256.0.dev
-
-dependencies:
-  _macros:
-    sdk: dart
-    version: 0.1.5
diff --git a/pkg/json/lib/.dart_tool/package_config.json b/pkg/json/lib/.dart_tool/package_config.json
deleted file mode 100644
index 95b8f55..0000000
--- a/pkg/json/lib/.dart_tool/package_config.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "configVersion": 2,
-  "packages": [
-    {
-      "name": "_macros",
-      "rootUri": "_macros",
-      "packageUri": "lib/",
-      "languageVersion": "3.4"
-    },
-    {
-      "name": "json",
-      "rootUri": "../..",
-      "packageUri": "lib/",
-      "languageVersion": "3.5"
-    },
-    {
-      "name": "macros",
-      "rootUri": "macros",
-      "packageUri": "lib/",
-      "languageVersion": "3.4"
-    }
-  ],
-  "generated": "2024-05-14T09:58:50.920677Z",
-  "generator": "pub",
-  "generatorVersion": "3.5.0-152.0.dev"
-}
diff --git a/pkg/json/pubspec.yaml b/pkg/json/pubspec.yaml
index 167b8e5..2ed53d2 100644
--- a/pkg/json/pubspec.yaml
+++ b/pkg/json/pubspec.yaml
@@ -5,11 +5,11 @@
   `toJson` encoding method.
 
 repository: https://github.com/dart-lang/sdk/tree/main/pkg/json
-version: 0.20.2-wip
+version: 0.20.2
 environment:
-  sdk: ^3.5.0-0
+  sdk: ^3.5.0-154
 dependencies:
-  macros: 0.1.0-main.5
+  macros: ^0.1.0-main.5
 dev_dependencies:
   lints: any
   test: any
diff --git a/pkg/linter/lib/src/rules/use_build_context_synchronously.dart b/pkg/linter/lib/src/rules/use_build_context_synchronously.dart
index 3f9e3f7..6d5f08b 100644
--- a/pkg/linter/lib/src/rules/use_build_context_synchronously.dart
+++ b/pkg/linter/lib/src/rules/use_build_context_synchronously.dart
@@ -1061,9 +1061,12 @@
     ProtectedFunction('dart.async', 'Stream', 'where', positional: [0]),
 
     // StreamSubscription instance methods.
-    ProtectedFunction('dart.async', 'Stream', 'onData', positional: [0]),
-    ProtectedFunction('dart.async', 'Stream', 'onDone', positional: [0]),
-    ProtectedFunction('dart.async', 'Stream', 'onError', positional: [0]),
+    ProtectedFunction('dart.async', 'StreamSubscription', 'onData',
+        positional: [0]),
+    ProtectedFunction('dart.async', 'StreamSubscription', 'onDone',
+        positional: [0]),
+    ProtectedFunction('dart.async', 'StreamSubscription', 'onError',
+        positional: [0]),
   ];
 
   static const protectedStaticMethods = [
diff --git a/pkg/linter/test/rules/use_build_context_synchronously_test.dart b/pkg/linter/test/rules/use_build_context_synchronously_test.dart
index 7bc222d..accd7a1 100644
--- a/pkg/linter/test/rules/use_build_context_synchronously_test.dart
+++ b/pkg/linter/test/rules/use_build_context_synchronously_test.dart
@@ -2678,6 +2678,22 @@
       lint(113, 7),
     ]);
   }
+
+  test_streamSubscription_onData_referenceToContextInCallback() async {
+    // `StreamSubscription.onData` call, with use of BuildContext inside, is
+    // REPORTED.
+    await assertDiagnostics(r'''
+import 'package:flutter/widgets.dart';
+import 'dart:async';
+void foo(BuildContext context, StreamSubscription<void> s) async {
+  s.onData((_) {
+    Navigator.of(context);
+  });
+}
+''', [
+      lint(161, 7),
+    ]);
+  }
 }
 
 extension on AstNode {
diff --git a/tools/VERSION b/tools/VERSION
index 73787dd..db314cd 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 3
 MINOR 5
 PATCH 0
-PRERELEASE 190
+PRERELEASE 191
 PRERELEASE_PATCH 0