@Target(value={METHOD,ANNOTATION_TYPE})
@Retention(value=RUNTIME)
@Documented
public static @interface MatsClassMapping.Stage
@Stage
annotation. An ordinal
must be assigned to each stage, so that Mats knows
which order the stages are in  read more about the ordinal number at ordinal()
. The initial stage must
have the ordinal zero, which also shall be the first stage in the resulting sorted list of Stages (i.e. negative
values are not allowed)  this is the Stage which gets incoming messages targeted at the
endpointId
of this endpoint.Modifier and Type  Fields and Description 

static int 
INITIAL
Constant for 0 (zero), the initial Stage's ordinal.

Modifier and Type  Optional Element and Description 

int 
ordinal
The ordinal of this Stage in the sequence of stages of this endpoint  that is, an integer that expresses the
relative position of this Stage wrt.

int 
value
Alias for "ordinal", so that if you only need to set the ordinal (which relative position in the sequence of
stages this Stage is), you can do so directly:
@Stage(15) . 
public static final int INITIAL
@AliasFor(value="value") public abstract int ordinal
INITIAL
. The magnitude of the number does not matter, only the "sort order", so
0, 1, 2 is just as good as 0, 3, 5, which is just as good as 0, 4527890, 4527990  although one can
definitely discuss the relative merits between each approach. An idea is the cool'n'retro Commodore
BASICstyle of line numbers, which commonly was to use values in multiple of 10, i.e. 0 (for the Initial),
then 10, 20, 30. The rationale is that you then quickly can add a line between 10 and 20 by sticking in a 15
there.@AliasFor(value="ordinal") public abstract int value
@Stage(15)
.ordinal()