Philosophy: "All properties apply, we need only define the order of precedence."
Note: this algorithm is executed before doing interpretation and vocalization of intent expressions.
It linearizes a list of properties for each node in the MathML tree, as well as each term of compound intent expressions.
Legend:
self-property - attached to the node itself (intent=":matrix")
ref-property - attached to a reference (intent = "$ref:equation-label")
fragment-property - attached to a non-reference head in a compound expression
intent="factorial:function(2:literal)"