pub trait Step:
    Any
    + Send
    + Sync
    + Debug
    + 'static {
    // Required methods
    fn name(&self) -> String;
    fn apply(
        &self,
        dart: &mut Tree,
        schema: Arc<Schema>,
    ) -> TransformResult<StepResult>;
    fn serialize(&self) -> Option<Vec<u8>>;
    fn invert(&self, dart: &Arc<Tree>) -> Option<Arc<dyn Step>>;
}