# `MontyCad.Gen.Transform`
[🔗](https://github.com/d-led/ex.monty.cad/blob/main/lib/monty_cad/gen/transform.ex#L1)

The source of a sensor transform: one stage of a sensor module's pipeline.

A transform is handed the observation and the payload, and answers both the
payload it changed and itself as it now stands — an Elixir struct cannot be
mutated, so a stage that remembers something answers the stage that remembers
it. What this generator writes is that shape; what it cannot write is what the
stage does with the surface, which is the reason the stage exists.

# `source`

```elixir
@spec source(module()) :: String.t()
```

The module's source.

# `test_source`

```elixir
@spec test_source(module()) :: String.t()
```

The test that holds the contract.

---

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