1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package Torello.Browser.JsonAST;

/**
 * Enumerates the JSON property names that may appear within their JSON protocol definitions.
 * These files
 * 
 * <B><CODE><A HREF='../doc-files/protocol_as_json/browser_protocol.json'>
 * browser_protocol.json</A></CODE></B>
 * and 
 * <B><CODE><A HREF='../doc-files/protocol_as_json/js_protocol.json'>
 * js_protocol.json</A></CODE></B>
 * 
 * contain the full specs for each of these APIs.
 * 
 * <BR /><BR />
 * Each constant represents a field that could be present when describing a domain, type, command,
 * event, property, parameter or return-value.  Instances of this enum are recorded in AST nodes to
 * keep track of which properties were included.  This enum, effectively, enables writing 
 * statistics &amp; diagnostics about these two {@code'.json'}-Files about the protocol as a whole.
 * 
 * <EMBED CLASS='external-html' DATA-FILE-ID=ENUM_PROP_NAME>
 * <EMBED CLASS='external-html' DATA-FILE-ID=ENUM_PROP_NAME_CGPT>
 */
public enum PropName
{
    /**
     * Protocol property {@code "type"}, indicating the schema type of the value.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_01_TYPE>
     */
    TYPE,

    /**
     * Protocol property {@code "name"}, the identifier of a {@link PPR} or a "command" or "event".
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_02_NAME>
     */
    NAME,

    /**
     * Protocol property {@code "id"}, the unique identifier for a "type" definition.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_03_ID>
     */
    ID,

    /**
     * Protocol property {@code "domain"}, the name of the domain that owns this definition.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_04_DOMAIN>
     */
    DOMAIN,

    /**
     * Protocol array {@code "types"}, containing schema type definitions for a domain.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_05_TYPES>
     */
    TYPES,

    /**
     * Protocol array {@code "commands"}, listing all commands defined by a domain.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_06_COMMANDS>
     */
    COMMANDS,

    /**
     * Protocol array {@code "events"}, listing all events defined by a domain.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_07_EVENTS>
     */
    EVENTS,

    /**
     * Protocol array {@code "properties"}, defining the fields of an object type.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_08_PROPERTIES>
     */
    PROPERTIES,

    /**
     * Protocol array {@code "parameters"}, defining the inputs accepted by a command.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_09_PARAMETERS>
     */
    PARAMETERS,

    /**
     * Protocol array {@code "returns"}, defining the return values of a command.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_10_RETURNS>
     */
    RETURNS,

    /**
     * Protocol flag {@code "optional"}, a boolean marker for nullable parameters or properties.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_11_OPTIONAL>
     */
    OPTIONAL,

    /**
     * Protocol flag {@code "experimental"}, a boolean marker for unstable or evolving features.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_12_EXPERIMENTAL>
     */
    EXPERIMENTAL,

    /**
     * Protocol flag {@code "deprecated"}, a boolean marker for obsolete definitions.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_13_DEPRECATED>
     */
    DEPRECATED,

    /**
     * Protocol property {@code "description"}, free-form text documenting the definition.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_14_DESCRIPTION>
     */
    DESCRIPTION,

    /**
     * Protocol array {@code "dependencies"}, listing domains or types this one relies on.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_15_DEPENDENCIES>
     */
    DEPENDENCIES,

    /**
     * Protocol property {@code "enum"}, enumerating the fixed literal values allowed.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_16_ENUM>
     */
    ENUM,

    /**
     * Protocol property {@code "items"}, defining the element type of an array schema.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_17_ITEMS>
     */
    ITEMS,

    /**
     * Protocol property {@code "redirect"}, marking this type as an alias of another.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_18_REDIRECT>
     */
    REDIRECT,

    /**
     * Protocol property {@code "$ref"}, referencing another type definition by name.
     * <EMBED CLASS='external-html' DATA-FILE-ID=PN_19_REF>
     */
    $REF;
}