actor id "Name" [group=G] [color=#hex]
channel id "Label" member member ... (* = public)
gen who: a.pub a.priv [from x y]
encrypt who: data with key as out
decrypt who: cipher with key
publish who: item -> channel
fetch who: item <- channel
send who -> to: item via channel
forget who: item item
assert who has|lacks item
note text
!step must fail (an attack that should be blocked)
; text caption shown while the step plays
names: x.pub + x.priv are a pair, x.key is symmetric, x.seed