@NormalScope(passivating=true) @Inherited @Documented @Target(value=TYPE) @Retention(value=RUNTIME) public @interface FlowScoped
  FlowScoped is a CDI scope that causes the runtime to consider classes
 with this annotation to be in the scope of the specified Flow. The implementation must provide an
 implementation of jakarta.enterprise.inject.spi.Extension that implements the semantics such that beans with
 this annotation are created lazily, when referenced, after the user enters
 into the specified Flow, and made available for garbage collection
 when the user exits the specified Flow. See FlowHandler.transition(jakarta.faces.context.FacesContext, jakarta.faces.flow.Flow, jakarta.faces.flow.Flow, jakarta.faces.flow.FlowCallNode, java.lang.String) for the specification of flow
 entry and exit.
 
 When replacing (rather than decorating) the flow implementation with a custom FlowHandler implementation, it
 is necessary to also replace the CDI extension that implements the specified behavior regarding
 FlowScoped beans.
 
| Modifier and Type | Required Element and Description | 
|---|---|
java.lang.String | 
value
 Must be equivalent to the   | 
| Modifier and Type | Optional Element and Description | 
|---|---|
java.lang.String | 
definingDocumentId
 | 
public abstract java.lang.String value
 Must be equivalent to the Flow.getId() of a defined flow for this application.
 
public abstract java.lang.String definingDocumentId
 If not empty, declare the defining document id within which the Flow referenced by value() is unique.
 If empty the, the runtime assumes that all flow ids are unique within the scope of the application.