traits
traits copied to clipboard
observe mini-language: consider allowing '*' in a non-terminal position
#1496 introduced "*"
to mean "any trait" into the observe mini-language; #1525 disallowed use of "*"
in a non-terminal position, since with current meanings and semantics it's very hard to make it useful; see the discussion in the #1525 description, and the related issue #1503.
At some point, we may want to re-introduce a more useful meaning for an expression like "*:updated" - one that's more permissive of traits on the target object that don't have an updated
trait. There's already partial machinery for this in the expression language, in the form of the optional
argument to expression-producing functions like trait
, list_items
, etc.
xref: #1496, #1503, #1505, #1525
If combined with the suggestion in #1535, it may then make sense to re-allow *
with the exact same meaning as before. We could then use an expression of *:updated?
to listen to all existing updated
traits, without raising for traits that don't support updated
.