diff --git a/core/modules/field/src/Plugin/migrate/field/Email.php b/core/modules/field/src/Plugin/migrate/field/Email.php
index d68e7593bd1fd5847713466eef9466a3c41cd9fa..2c6ab50aac5f8d399776623b56adffad99519ed8 100644
--- a/core/modules/field/src/Plugin/migrate/field/Email.php
+++ b/core/modules/field/src/Plugin/migrate/field/Email.php
@@ -3,23 +3,22 @@
 namespace Drupal\field\Plugin\migrate\field;
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspell:ignore spamspan
-
 /**
  * MigrateField Plugin for Drupal 6 and 7 email fields.
- *
- * @MigrateField(
- *   id = "email",
- *   core = {6,7},
- *   type_map = {
- *     "email" = "email"
- *   },
- *   source_module = "email",
- *   destination_module = "core"
- * )
  */
+#[MigrateField(
+  id: 'email',
+  core: [6, 7],
+  type_map: [
+    'email' => 'email',
+  ],
+  source_module: 'email',
+  destination_module: 'core',
+)]
 class Email extends FieldPluginBase {
 
   /**
diff --git a/core/modules/field/src/Plugin/migrate/field/d7/EntityReference.php b/core/modules/field/src/Plugin/migrate/field/d7/EntityReference.php
index bebb360d636682b01287eeebcb2cab375e91f331..3878265f244e9bd9702a5d207499559a2a446feb 100644
--- a/core/modules/field/src/Plugin/migrate/field/d7/EntityReference.php
+++ b/core/modules/field/src/Plugin/migrate/field/d7/EntityReference.php
@@ -2,23 +2,23 @@
 
 namespace Drupal\field\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspell:ignore entityreference
 
 /**
  * MigrateField plugin for Drupal 7 entity_reference fields.
- *
- * @MigrateField(
- *   id = "entityreference",
- *   type_map = {
- *     "entityreference" = "entity_reference",
- *   },
- *   core = {7},
- *   source_module = "entityreference",
- *   destination_module = "core"
- * )
  */
+#[MigrateField(
+  id: 'entityreference',
+  core: [7],
+  type_map: [
+    'entityreference' => 'entity_reference',
+  ],
+  source_module: 'entityreference',
+  destination_module: 'core',
+)]
 class EntityReference extends FieldPluginBase {
 
   /**
diff --git a/core/modules/field/src/Plugin/migrate/field/d7/NumberField.php b/core/modules/field/src/Plugin/migrate/field/d7/NumberField.php
index 98959b08077c491f471a82a32306df4540a5fab6..37c9eabceee3f456070565f7443dc16bc9afd672 100644
--- a/core/modules/field/src/Plugin/migrate/field/d7/NumberField.php
+++ b/core/modules/field/src/Plugin/migrate/field/d7/NumberField.php
@@ -2,21 +2,21 @@
 
 namespace Drupal\field\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 /**
  * MigrateField plugin for Drupal 7 number fields.
- *
- * @MigrateField(
- *   id = "number_default",
- *   type_map = {
- *     "number_integer" = "integer",
- *     "number_decimal" = "decimal",
- *     "number_float" = "float",
- *   },
- *   core = {7},
- *   source_module = "number",
- *   destination_module = "core"
- * )
  */
+#[MigrateField(
+  id: 'number_default',
+  core: [7],
+  type_map: [
+    'number_integer' => 'integer',
+    'number_decimal' => 'decimal',
+    'number_float' => 'float',
+  ],
+  source_module: 'number',
+  destination_module: 'core',
+)]
 class NumberField extends FieldPluginBase {}
diff --git a/core/modules/file/src/Plugin/migrate/field/d6/FileField.php b/core/modules/file/src/Plugin/migrate/field/d6/FileField.php
index 804e34a65585d3aef72730e8feeba8d8dda576b6..7a93144180f643514b19f2ea1f398df001a8bf69 100644
--- a/core/modules/file/src/Plugin/migrate/field/d6/FileField.php
+++ b/core/modules/file/src/Plugin/migrate/field/d6/FileField.php
@@ -4,18 +4,19 @@
 
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Row;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspell:ignore filefield imagefield imagelink nodelink
-
 /**
- * @MigrateField(
- *   id = "filefield",
- *   core = {6},
- *   source_module = "filefield",
- *   destination_module = "file"
- * )
+ * MigrateField Plugin for Drupal 6 file fields.
  */
+#[MigrateField(
+  id: 'filefield',
+  core: [6],
+  source_module: 'filefield',
+  destination_module: 'file',
+)]
 class FileField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/file/src/Plugin/migrate/field/d7/FileField.php b/core/modules/file/src/Plugin/migrate/field/d7/FileField.php
index 528f789979af5200fc297410449683fc4f61aab0..3d5ff690cf2d2451197df8f96c1169e0141b2a56 100644
--- a/core/modules/file/src/Plugin/migrate/field/d7/FileField.php
+++ b/core/modules/file/src/Plugin/migrate/field/d7/FileField.php
@@ -4,17 +4,18 @@
 
 use Drupal\file\Plugin\migrate\field\d6\FileField as D6FileField;
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 
 // cspell:ignore filefield
-
 /**
- * @MigrateField(
- *   id = "file",
- *   core = {7},
- *   source_module = "file",
- *   destination_module = "file"
- * )
+ * MigrateField Plugin for Drupal 7 file fields.
  */
+#[MigrateField(
+  id: 'file',
+  core: [7],
+  source_module: 'file',
+  destination_module: 'file',
+)]
 class FileField extends D6FileField {
 
   /**
diff --git a/core/modules/image/src/Plugin/migrate/field/d6/ImageField.php b/core/modules/image/src/Plugin/migrate/field/d6/ImageField.php
index bfa6b1ee4a67c5b206aa8feca1b94d9b5ad284ed..a0a2ca040ca25b8c66aad1a0ad66c87b6113ba0e 100644
--- a/core/modules/image/src/Plugin/migrate/field/d6/ImageField.php
+++ b/core/modules/image/src/Plugin/migrate/field/d6/ImageField.php
@@ -3,15 +3,16 @@
 namespace Drupal\image\Plugin\migrate\field\d6;
 
 use Drupal\file\Plugin\migrate\field\d6\FileField;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 
 // cspell:ignore imagefield
-
 /**
- * @MigrateField(
- *   id = "imagefield",
- *   core = {6},
- *   source_module = "imagefield",
- *   destination_module = "image"
- * )
+ * MigrateField Plugin for Drupal 6 image fields.
  */
+#[MigrateField(
+  id: 'imagefield',
+  core: [6],
+  source_module: 'imagefield',
+  destination_module: 'image',
+)]
 class ImageField extends FileField {}
diff --git a/core/modules/image/src/Plugin/migrate/field/d7/ImageField.php b/core/modules/image/src/Plugin/migrate/field/d7/ImageField.php
index afbe50391442f62d50aab44da81736ae7f672561..4e81630e675cf758e1bfabf319d42510a1cc2838 100644
--- a/core/modules/image/src/Plugin/migrate/field/d7/ImageField.php
+++ b/core/modules/image/src/Plugin/migrate/field/d7/ImageField.php
@@ -3,16 +3,15 @@
 namespace Drupal\image\Plugin\migrate\field\d7;
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "image",
- *   core = {7},
- *   source_module = "image",
- *   destination_module = "image"
- * )
- */
+#[MigrateField(
+  id: 'image',
+  core: [7],
+  source_module: 'image',
+  destination_module: 'image',
+)]
 class ImageField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/link/src/Plugin/migrate/field/d6/LinkField.php b/core/modules/link/src/Plugin/migrate/field/d6/LinkField.php
index e890ec1edccfd96ee60494cc2966cc84efb98ca3..7768658940e39ade3a8fb02e5c5db99a067709b2 100644
--- a/core/modules/link/src/Plugin/migrate/field/d6/LinkField.php
+++ b/core/modules/link/src/Plugin/migrate/field/d6/LinkField.php
@@ -3,19 +3,18 @@
 namespace Drupal\link\Plugin\migrate\field\d6;
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "link",
- *   core = {6},
- *   type_map = {
- *     "link" = "link",
- *   },
- *   source_module = "link",
- *   destination_module = "link"
- * )
- */
+#[MigrateField(
+  id: 'link',
+  core: [6],
+  type_map: [
+    'link' => 'link',
+  ],
+  source_module: 'link',
+  destination_module: 'link',
+)]
 class LinkField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/link/src/Plugin/migrate/field/d7/LinkField.php b/core/modules/link/src/Plugin/migrate/field/d7/LinkField.php
index 79eda71687a8acfc2a11318f31136c69c3c4f3da..6bc6cf3e224120580c130ab98178d62b2a104d06 100644
--- a/core/modules/link/src/Plugin/migrate/field/d7/LinkField.php
+++ b/core/modules/link/src/Plugin/migrate/field/d7/LinkField.php
@@ -4,22 +4,24 @@
 
 use Drupal\link\Plugin\migrate\field\d6\LinkField as D6LinkField;
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 
 /**
- * @MigrateField(
- *   id = "link_field",
- *   core = {7},
- *   type_map = {
- *     "link_field" = "link"
- *   },
- *   source_module = "link",
- *   destination_module = "link"
- * )
+ * MigrateField Plugin for Drupal 7 link fields.
  *
  * This plugin provides the exact same functionality as the Drupal 6 "link"
  * plugin with the exception that the plugin ID "link_field" is used in the
  * field type map.
  */
+#[MigrateField(
+  id: 'link_field',
+  core: [7],
+  type_map: [
+    'link_field' => 'link',
+  ],
+  source_module: 'link',
+  destination_module: 'link',
+)]
 class LinkField extends D6LinkField {
 
   /**
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/NodeReference.php b/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/NodeReference.php
index eebad2b98c4f098483428892b300c8b534b2ad74..959bf68a0b45b976db2fe386f72a9adf365d4567 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/NodeReference.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/NodeReference.php
@@ -4,23 +4,23 @@
 
 // cspell:ignore nodereference
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase;
 
 /**
  * MigrateField Plugin for Drupal 6 node reference fields.
  *
- * @MigrateField(
- *   id = "nodereference",
- *   core = {6},
- *   type_map = {
- *     "nodereference" = "entity_reference",
- *   },
- *   source_module = "nodereference",
- *   destination_module = "core",
- * )
- *
  * @internal
  */
+#[MigrateField(
+  id: 'nodereference',
+  core: [6],
+  type_map: [
+    'nodereference' => 'entity_reference',
+  ],
+  source_module: 'nodereference',
+  destination_module: 'core',
+)]
 class NodeReference extends ReferenceBase {
 
   /**
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/UserReference.php b/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/UserReference.php
index 75ffcfe6a350f6449409c707b8bd0bd1478223fa..82366a34439b97271b0c2fc03506353ed28bc85f 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/UserReference.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/field/d6/UserReference.php
@@ -5,23 +5,22 @@
 // cspell:ignore userreference
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase;
 
 /**
  * MigrateField Plugin for Drupal 6 user reference fields.
- *
- * @MigrateField(
- *   id = "userreference",
- *   core = {6},
- *   type_map = {
- *     "userreference" = "entity_reference",
- *   },
- *   source_module = "userreference",
- *   destination_module = "core",
- * )
- *
  * @internal
  */
+#[MigrateField(
+  id: 'userreference',
+  core: [6],
+  type_map: [
+    'userreference' => 'entity_reference',
+  ],
+  source_module: 'userreference',
+  destination_module: 'core',
+)]
 class UserReference extends ReferenceBase {
 
   /**
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/NodeReference.php b/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/NodeReference.php
index 91d3e219d3ab323d82ef0fc8be51c4fff623eb20..05515600513f4d66576bfdb9e378e765e16baae7 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/NodeReference.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/NodeReference.php
@@ -2,21 +2,21 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase;
 
 /**
  * MigrateField plugin for Drupal 7 node_reference fields.
- *
- * @MigrateField(
- *   id = "node_reference",
- *   type_map = {
- *     "node_reference" = "entity_reference",
- *   },
- *   core = {7},
- *   source_module = "node_reference",
- *   destination_module = "core"
- * )
  */
+#[MigrateField(
+  id: 'node_reference',
+  core: [7],
+  type_map: [
+    'node_reference' => 'entity_reference',
+  ],
+  source_module: 'node_reference',
+  destination_module: 'core',
+)]
 class NodeReference extends ReferenceBase {
 
   /**
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/UserReference.php b/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/UserReference.php
index 01bf09cec7f193ac4a2e93b2d112768508d285b9..ea3ed54e24880e4b4f109d8d96c335962654f61a 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/UserReference.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/field/d7/UserReference.php
@@ -3,21 +3,21 @@
 namespace Drupal\migrate_drupal\Plugin\migrate\field\d7;
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\ReferenceBase;
 
 /**
  * MigrateField plugin for Drupal 7 user_reference fields.
- *
- * @MigrateField(
- *   id = "user_reference",
- *   type_map = {
- *     "user_reference" = "entity_reference",
- *   },
- *   core = {7},
- *   source_module = "user_reference",
- *   destination_module = "core"
- * )
  */
+#[MigrateField(
+  id: 'user_reference',
+  core: [7],
+  type_map: [
+    'user_reference' => 'entity_reference',
+  ],
+  source_module: 'user_reference',
+  destination_module: 'core',
+)]
 class UserReference extends ReferenceBase {
 
   /**
diff --git a/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6FileField.php b/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6FileField.php
index de55e1337a5146f2c5dfdebe3e0b8366093fe457..5d4535f591482c6d35f1a2523cc3ac32033d5756 100644
--- a/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6FileField.php
+++ b/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6FileField.php
@@ -2,17 +2,19 @@
 
 namespace Drupal\migrate_field_plugin_manager_test\Plugin\migrate\field;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 /**
- * @MigrateField(
- *   id = "d6_file",
- *   core = {6},
- *   type_map = {
- *     "file" = "file"
- *   },
- *   source_module = "foo",
- *   destination_module = "bar"
- * )
+ * MigrateField Plugin for Drupal 6 file fields.
  */
+#[MigrateField(
+  id: 'd6_file',
+  core: [6],
+  type_map: [
+    'file' => 'file',
+  ],
+  source_module: 'foo',
+  destination_module: 'bar',
+)]
 class D6FileField extends FieldPluginBase {}
diff --git a/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6NoCoreVersionSpecified.php b/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6NoCoreVersionSpecified.php
index e7647a1562a2de0fe75a8b8790455f0cebc85206..47d68fd1e34da0859e9a91a15efad6866bd361f9 100644
--- a/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6NoCoreVersionSpecified.php
+++ b/core/modules/migrate_drupal/tests/modules/migrate_field_plugin_manager_test/src/Plugin/migrate/field/D6NoCoreVersionSpecified.php
@@ -2,13 +2,12 @@
 
 namespace Drupal\migrate_field_plugin_manager_test\Plugin\migrate\field;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "d6_no_core_version_specified",
- *   source_module = "foo",
- *   destination_module = "bar",
- * )
- */
+#[MigrateField(
+  id: 'd6_no_core_version_specified',
+  source_module: 'foo',
+  destination_module: 'bar',
+)]
 class D6NoCoreVersionSpecified extends FieldPluginBase {}
diff --git a/core/modules/options/src/Plugin/migrate/field/d6/OptionWidgetsField.php b/core/modules/options/src/Plugin/migrate/field/d6/OptionWidgetsField.php
index 9cbd412e432ad5b6a07952f05a60d88315a586ba..ca79d165abb5643b185ae3a8754693fc39193c8a 100644
--- a/core/modules/options/src/Plugin/migrate/field/d6/OptionWidgetsField.php
+++ b/core/modules/options/src/Plugin/migrate/field/d6/OptionWidgetsField.php
@@ -2,16 +2,17 @@
 
 namespace Drupal\options\Plugin\migrate\field\d6;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspell:ignore optionwidgets
-
 /**
- * @MigrateField(
- *   id = "optionwidgets",
- *   core = {6},
- *   source_module = "optionwidgets",
- *   destination_module = "options"
- * )
+ * MigrateField Plugin for Drupal 6 options fields.
  */
+#[MigrateField(
+  id: 'optionwidgets',
+  core: [6],
+  source_module: 'optionwidgets',
+  destination_module: 'options',
+)]
 class OptionWidgetsField extends FieldPluginBase {}
diff --git a/core/modules/options/src/Plugin/migrate/field/d7/ListField.php b/core/modules/options/src/Plugin/migrate/field/d7/ListField.php
index d982586a4a89bbdcf75e5b1ba0f439556becd699..4f6253843eb098f10eb9d206db65c549dec23b55 100644
--- a/core/modules/options/src/Plugin/migrate/field/d7/ListField.php
+++ b/core/modules/options/src/Plugin/migrate/field/d7/ListField.php
@@ -2,20 +2,19 @@
 
 namespace Drupal\options\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "list",
- *   type_map = {
- *     "list_boolean" = "boolean",
- *     "list_integer" = "list_integer",
- *     "list_text" = "list_string",
- *     "list_float" = "list_float",
- *   },
- *   core = {7},
- *   source_module = "list",
- *   destination_module = "options"
- * )
- */
+#[MigrateField(
+  id: 'list',
+  core: [7],
+  type_map: [
+    'list_boolean' => 'boolean',
+    'list_integer' => 'list_integer',
+    'list_text' => 'list_string',
+    'list_float' => 'list_float',
+  ],
+  source_module: 'list',
+  destination_module: 'options',
+)]
 class ListField extends FieldPluginBase {}
diff --git a/core/modules/options/src/Plugin/migrate/field/d7/OptionsField.php b/core/modules/options/src/Plugin/migrate/field/d7/OptionsField.php
index e54ccb3e37940ff77e7082c63d4d54c0c27ddcdb..58317a7cdcb0035057df93b93d3410086f824df5 100644
--- a/core/modules/options/src/Plugin/migrate/field/d7/OptionsField.php
+++ b/core/modules/options/src/Plugin/migrate/field/d7/OptionsField.php
@@ -2,14 +2,13 @@
 
 namespace Drupal\options\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "options",
- *   core = {7},
- *   source_module = "options",
- *   destination_module = "options"
- * )
- */
+#[MigrateField(
+  id: 'options',
+  core: [7],
+  source_module: 'options',
+  destination_module: 'options',
+)]
 class OptionsField extends FieldPluginBase {}
diff --git a/core/modules/taxonomy/src/Plugin/migrate/field/TaxonomyTermReference.php b/core/modules/taxonomy/src/Plugin/migrate/field/TaxonomyTermReference.php
index 7e3ca7df07d97b8cf26cc332638fe405f1777119..6f5ea63e42c166e06b1c730ec0a80457bb01b548 100644
--- a/core/modules/taxonomy/src/Plugin/migrate/field/TaxonomyTermReference.php
+++ b/core/modules/taxonomy/src/Plugin/migrate/field/TaxonomyTermReference.php
@@ -3,21 +3,22 @@
 namespace Drupal\taxonomy\Plugin\migrate\field;
 
 use Drupal\migrate\Plugin\MigrationInterface;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspeLL:ignore entityreference
-
 /**
- * @MigrateField(
- *   id = "taxonomy_term_reference",
- *   type_map = {
- *     "taxonomy_term_reference" = "entity_reference"
- *   },
- *   core = {6,7},
- *   source_module = "taxonomy",
- *   destination_module = "core",
- * )
+ * MigrateField Plugin for Drupal 6 & Drupal 7 taxonomy term reference fields.
  */
+#[MigrateField(
+  id: 'taxonomy_term_reference',
+  core: [6, 7],
+  type_map: [
+    'taxonomy_term_reference' => 'entity_reference',
+  ],
+  source_module: 'taxonomy',
+  destination_module: 'core',
+)]
 class TaxonomyTermReference extends FieldPluginBase {
 
   /**
diff --git a/core/modules/telephone/src/Plugin/migrate/field/d7/PhoneField.php b/core/modules/telephone/src/Plugin/migrate/field/d7/PhoneField.php
index 4a9d8cd4e005edc1b448572e8f08f5f6f4f4cb42..1cc9b7f7ae9d9d3ccbef1b2eca267149a9696639 100644
--- a/core/modules/telephone/src/Plugin/migrate/field/d7/PhoneField.php
+++ b/core/modules/telephone/src/Plugin/migrate/field/d7/PhoneField.php
@@ -2,19 +2,18 @@
 
 namespace Drupal\telephone\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "phone",
- *   type_map = {
- *     "phone" = "telephone",
- *   },
- *   core = {7},
- *   source_module = "phone",
- *   destination_module = "telephone"
- * )
- */
+#[MigrateField(
+  id: 'phone',
+  core: [7],
+  type_map: [
+    'phone' => 'telephone',
+  ],
+  source_module: 'phone',
+  destination_module: 'telephone',
+)]
 class PhoneField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/telephone/src/Plugin/migrate/field/d7/TelephoneField.php b/core/modules/telephone/src/Plugin/migrate/field/d7/TelephoneField.php
index e11d93b13d41ad09504e5cf74e973f6945cfa6dd..88410513f2952fefe8d133fee66e573978815ef1 100644
--- a/core/modules/telephone/src/Plugin/migrate/field/d7/TelephoneField.php
+++ b/core/modules/telephone/src/Plugin/migrate/field/d7/TelephoneField.php
@@ -2,16 +2,15 @@
 
 namespace Drupal\telephone\Plugin\migrate\field\d7;
 
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "telephone",
- *   core = {7},
- *   source_module = "telephone",
- *   destination_module = "telephone"
- * )
- */
+#[MigrateField(
+  id: 'telephone',
+  core: [7],
+  source_module: 'telephone',
+  destination_module: 'telephone',
+)]
 class TelephoneField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/text/src/Plugin/migrate/field/d6/TextField.php b/core/modules/text/src/Plugin/migrate/field/d6/TextField.php
index b1e3ae7b4fa6f9beb082916223cd1bbff7c096e1..b507fad9dd41eb870e2081c685378118d6dfc3c7 100644
--- a/core/modules/text/src/Plugin/migrate/field/d6/TextField.php
+++ b/core/modules/text/src/Plugin/migrate/field/d6/TextField.php
@@ -4,23 +4,24 @@
 
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Row;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 // cspell:ignore optionwidgets
-
 /**
- * @MigrateField(
- *   id = "d6_text",
- *   type_map = {
- *     "text" = "text",
- *     "text_long" = "text_long",
- *     "text_with_summary" = "text_with_summary"
- *   },
- *   core = {6},
- *   source_module = "text",
- *   destination_module = "text",
- * )
+ * MigrateField Plugin for Drupal 6 text fields.
  */
+#[MigrateField(
+  id: 'd6_text',
+  core: [6],
+  type_map: [
+    'text' => 'text',
+    'text_long' => 'text_long',
+    'text_with_summary' => 'text_with_summary',
+  ],
+  source_module: 'text',
+  destination_module: 'text',
+)]
 class TextField extends FieldPluginBase {
 
   /**
diff --git a/core/modules/text/src/Plugin/migrate/field/d7/TextField.php b/core/modules/text/src/Plugin/migrate/field/d7/TextField.php
index 21bcd74d8710eb7af5dcd8650bd39f753252a182..54e9db27d0f5b72b8513cd4890334ca497f4457d 100644
--- a/core/modules/text/src/Plugin/migrate/field/d7/TextField.php
+++ b/core/modules/text/src/Plugin/migrate/field/d7/TextField.php
@@ -4,21 +4,20 @@
 
 use Drupal\migrate\Row;
 use Drupal\migrate\MigrateSkipRowException;
+use Drupal\migrate_drupal\Attribute\MigrateField;
 use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
-/**
- * @MigrateField(
- *   id = "d7_text",
- *   type_map = {
- *     "text" = "text",
- *     "text_long" = "text_long",
- *     "text_with_summary" = "text_with_summary"
- *   },
- *   core = {7},
- *   source_module = "text",
- *   destination_module = "text",
- * )
- */
+#[MigrateField(
+  id: 'd7_text',
+  core: [7],
+  type_map: [
+    'text' => 'text',
+    'text_long' => 'text_long',
+    'text_with_summary' => 'text_with_summary',
+  ],
+  source_module: 'text',
+  destination_module: 'text',
+)]
 class TextField extends FieldPluginBase {
 
   /**