I see, so items in the msg resource need to have a unique [noun, verb, case] tuple.
So looking in the cliffygoeswith.sc of SQ5, I see
(send gTestMessager:say(22 0 43 0 self))
22 is the noun, 0 is the verb, 43 is the condition. Following the code, that looks like it turns into:
Message(msgGET roomNumber 22 0 43 0))
which will return the talker, in this case 19 for both sequences of this thing.
main.sc has a big case statement for resolving the talker based on this number. For 19, looks like it uses export 15 of script 240, which is tkrRoger.
As for the flags thing, yeah, I just noticed that 0, 1, 2 and 4 were often all that were used in a msg resource. But there are other numbers too, so I guess it's just a coincidence.
_approachVerbs does look like flags though. Looks like they have a hard-coded subset of verbs that get turned into flags, in order to be able to "store" multiple verbs in that property.
(method (doit param1)
(switch (param1)
(case 1
1
)
(case 2
2
)
(case 3
4
)
(case 4
8
)
(case 31
16
)
(case 24
32
)
(case 29
64
)
(case 25
128
)
(default
-32768
)
)
)