Looking at more and more examples of JACAL policies, I think 'Argument' would be more natural / intuitive than 'Expression' in Apply objects as well as PolicyRefences and SharedVariableReferences. (The property type remains the same - 'ExpressionType').
{
"Apply": {
"FunctionId": "f",
"Argument": [ ... the args passed to function f... ]
}
}
So the change to ACAL:
class ApplyType extends NonLiteralExpressionType {
+ Description: String [0..1]
+ FunctionId: IdentifierType [1]
+ ExpressionArgument: ExpressionType [*] {ordered, nonunique}
}
...
class PolicyReferenceType extends PatternMatchIdReferenceType {
+ ExpressionArgument: ExpressionType [*] {ordered, nonunique}
}
Then rename the property in JACAL schema accordingly.