pub fn add_layer<T: WiringLayer>(&mut self, layer: T) -> &mut Self {
        let name = layer.layer_name();
        if !self
            .layers
            .iter()
            .any(|(existing_name, _)| name == *existing_name)
        {
            self.layers.push((name, layer.into_wire_fn()));
        }
        self
    }
Adds a wiring layer.

During the [`run`](ZkStackService::run) call the service will invoke
`wire` method of every layer in the order they were added.

This method may be invoked multiple times with the same layer type, but the
layer will only be stored once (meaning that 2nd attempt to add the same layer will be ignored).
This may be useful if the same layer is a prerequisite for multiple other layers: it is safe
to add it multiple times, and it will only be wired once.
core/lib/node_framework/src/service/mod.rs