# `Artefact.Cypher`
[🔗](https://github.com/diffo-dev/artefactory/blob/v0.2.0/lib/artefact/cypher.ex#L4)

Derives Cypher from an `%Artefact{}`.

Lossy: position and style are not represented in Cypher.

# `capitalize_first`

# `create`

Emit a Cypher CREATE statement — always creates new nodes.

Nodes are emitted first with their Arrows id as a Cypher variable,
ensuring nodes shared across multiple relationships are created once.
Relationships follow, referencing those variables.

# `create_params`

Emit a parameterised Cypher CREATE — returns `{cypher, params}` for driver use (e.g. Bolty).

# `merge`

Emit an inline Cypher MERGE string — upserts without twins, pasteable into Neo4j Browser.

Each node is merged on its uuid; labels and properties are SET afterwards.

# `merge_params`

Emit parameterised Cypher MERGE — returns `{cypher, params}` for driver use (e.g. Bolty).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
