Copybara ❤️: Add capability of marking nodes as being fully specified. Default all to light.

CL: cl/580569792
PiperOrigin-RevId: 580569792
Change-Id: I890d8a15bb996ff1962032a6ab9de48131a7dc9c
diff --git a/src/com/android/onboarding/contracts/annotations/OnboardingNode.kt b/src/com/android/onboarding/contracts/annotations/OnboardingNode.kt
index 3ea43f6..17c9645 100644
--- a/src/com/android/onboarding/contracts/annotations/OnboardingNode.kt
+++ b/src/com/android/onboarding/contracts/annotations/OnboardingNode.kt
@@ -14,13 +14,32 @@
   val name: String,
 
   /** True if this is a node which presents a UI to the user. */
-  val hasUi: HasUi
+  val hasUi: HasUi,
+
+  /** The type of specification given for this node. */
+  val specificationType: SpecificationType = SpecificationType.LIGHT
 ) {
   enum class HasUi {
     NO,
     YES,
     YES_TEMPORARILY
   }
+
+  enum class SpecificationType {
+    /**
+     * This means that full Javadoc is provided, all arguments are fully defined, documented and
+     * typed (no undefined Bundles or Intents), and return values are properly defined and typed.
+     */
+    V1,
+
+    /**
+     * No requirements.
+     *
+     * Most "Light" nodes will be lacking Javadoc, and using Intents and Bundles as arguments and
+     * return values.
+     */
+    LIGHT
+  }
 }
 
 const val MAX_NODE_NAME_LENGTH: Int = 40