Step - property

property(key, value) sets a property on the incoming vertex or edge; the value can be a constant or a child traversal (its first result; no result leaves the property untouched). The key can be a jpath(..) (Path Keys), and property(Cardinality, key, value) and property(map) exist as well.

property(traversal, value)

The key is the first result of a child traversal run on the incoming traverser (TinkerPop's AddPropertyStep with a key traversal):

g.withSideEffect("a", "name").addV().property(__.select("a"), "marko").values("name")   // "marko"

The key must be a string; no result or another value is a cast error. The value may be a traversal too (property(__.select("k"), __.values("age"))).

Rust: property_key_by(key_traversal, value), property_key_by_traversal(key_traversal, value_traversal).