diff --git a/core/lib/Drupal/Core/Condition/Annotation/Condition.php b/core/lib/Drupal/Core/Condition/Annotation/Condition.php
new file mode 100644
index 0000000..64b4946
--- /dev/null
+++ b/core/lib/Drupal/Core/Condition/Annotation/Condition.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * @file
+ * Contains \Drupal\Core\Condition\Annotation\Condition.
+ */
+
+namespace Drupal\Core\Condition\Annotation;
+
+use Drupal\Component\Annotation\Plugin;
+
+/**
+ * Defines a condition annotation object.
+ *
+ * @Annotation
+ */
+class Condition extends Plugin {
+
+  /**
+   * The condition plugin ID.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * The human-readable name of the condition.
+   *
+   * @ingroup plugin_translatable
+   *
+   * @var \Drupal\Core\Annotation\Translation
+   */
+  public $label;
+
+  /**
+   * The name of the module providing the type.
+   *
+   * @var string
+   */
+  public $module;
+
+  /**
+   * An array of contextual data.
+   *
+   * @var array
+   */
+  public $condition = array();
+
+}
diff --git a/core/lib/Drupal/Core/Condition/ConditionManager.php b/core/lib/Drupal/Core/Condition/ConditionManager.php
index b73c808..2897743 100644
--- a/core/lib/Drupal/Core/Condition/ConditionManager.php
+++ b/core/lib/Drupal/Core/Condition/ConditionManager.php
@@ -33,9 +33,13 @@ class ConditionManager extends DefaultPluginManager implements ExecutableManager
    *   The module handler to invoke the alter hook with.
    */
   public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, LanguageManager $language_manager, ModuleHandlerInterface $module_handler) {
-    parent::__construct('Condition', $namespaces);
     $this->alterInfo($module_handler, 'condition_info');
     $this->setCacheBackend($cache_backend, $language_manager, 'condition');
+
+    $annotation_namespaces = array(
+      'Drupal\Core\Condition\Annotation' => DRUPAL_ROOT . '/core/lib',
+    );
+    parent::__construct('Condition', $namespaces, $annotation_namespaces, 'Drupal\Core\Condition\Annotation\Condition');
   }
 
   /**
diff --git a/core/modules/language/lib/Drupal/language/Plugin/Condition/Language.php b/core/modules/language/lib/Drupal/language/Plugin/Condition/Language.php
index 0cb5370..7f7ef4d 100644
--- a/core/modules/language/lib/Drupal/language/Plugin/Condition/Language.php
+++ b/core/modules/language/lib/Drupal/language/Plugin/Condition/Language.php
@@ -8,17 +8,16 @@
 namespace Drupal\language\Plugin\Condition;
 
 use Drupal\Core\Condition\ConditionPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\Core\Condition\Annotation\Condition;
 use Drupal\Core\Annotation\Translation;
 use Drupal\Core\Language\Language as Lang;
 
 /**
  * Provides a 'Language' condition.
  *
- * @Plugin(
+ * @Condition(
  *   id = "language",
  *   label = @Translation("Language"),
- *   module = "language",
  *   context = {
  *     "language" = {
  *       "type" = "language"
@@ -26,7 +25,7 @@
  *   }
  * )
  */
-class Language extends ConditionPluginBase {
+classLanguage extends ConditionPluginBase {
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/node/lib/Drupal/node/Plugin/Condition/NodeType.php b/core/modules/node/lib/Drupal/node/Plugin/Condition/NodeType.php
index 71d2266..4f30bb7 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/Condition/NodeType.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/Condition/NodeType.php
@@ -8,16 +8,15 @@
 namespace Drupal\node\Plugin\Condition;
 
 use Drupal\Core\Condition\ConditionPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\Core\Condition\Annotation\Condition;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Provides a 'Node Type' condition.
  *
- * @Plugin(
+ * @Condition(
  *   id = "node_type",
  *   label = @Translation("Node Bundle"),
- *   module = "node",
  *   context = {
  *     "node" = {
  *       "type" = "entity",
diff --git a/core/modules/php/lib/Drupal/php/Plugin/Condition/Php.php b/core/modules/php/lib/Drupal/php/Plugin/Condition/Php.php
index 9d332c2..ca097e5 100644
--- a/core/modules/php/lib/Drupal/php/Plugin/Condition/Php.php
+++ b/core/modules/php/lib/Drupal/php/Plugin/Condition/Php.php
@@ -8,16 +8,15 @@
 namespace Drupal\php\Plugin\Condition;
 
 use Drupal\Core\Condition\ConditionPluginBase;
-use Drupal\Component\Annotation\Plugin;
+use Drupal\Core\Condition\Annotation\Condition;
 use Drupal\Core\Annotation\Translation;
 
 /**
  * Provides a 'Php' condition.
  *
- * @Plugin(
+ * @Condition(
  *   id = "php",
- *   label = @Translation("PHP"),
- *   module = "php"
+ *   label = @Translation("PHP")
  * )
  */
 class Php extends ConditionPluginBase {
