Projection
One cell in a View's shape — it MAPS a value computed from the input instance onto a property of the output. `value` is any `tx.Expression` evaluated against the `bind` instance (available as the `input` environment binding, the same convention `tx.Transformation` uses); `as` names the property of the View's `produces` class the result is stored under. The common `value` case — reading a property or walking a path — is a `tx.PropertyRead` or `tx.Traverse`; aggregation is a `tx.Count` / `tx.Sum` / `tx.Average` over a list-valued expression; text shaping is a `tx.Normalize` or `tx.DisplayLabel`. The two ends are validated independently at `kanonak validate` time: every path step in `value` against `bind`, and `as` against `produces`. So a projection is a typed bridge from input-space to output-space, with both ends resolved through the object model — never a free-text column name.