code: func Fuzz(ctx Context, setup, teardown ActionID, actionMap ActionMap, data []byte) int {
  	reader := bytes.NewReader(data)
  	err := runReader(ctx, setup, teardown, actionMap, reader, nil)
  	if err != nil {
  		panic(err)
  	}
  	return 1
  }
docs: // Fuzz runs the fuzzing state machine with the provided context
  // first, the setup action is executed unconditionally
  // the start state is determined by this action
  // actionMap is a lookup table for all actions
  // the data byte slice determines all future state transitions
  // finally, the teardown action is executed unconditionally for cleanup