case classAppend[+Item](item: Item) extends CollectionCommand[Item] with Product with Serializable
case classInsert[+Item](item: Item, atIndex: Int) extends CollectionCommand[Item] with Product with Serializable
case classMove[+Item](item: Item, toIndex: Int) extends CollectionCommand[Item] with Product with Serializable
toIndex
the index at which the item would end up IF it hadn't been removed from its current position.
basically, this is the CURRENT index of an item in front of which the item will be moved to.
case classPrepend[+Item](item: Item) extends CollectionCommand[Item] with Product with Serializable
case classRemove[+Item](item: Item) extends CollectionCommand[Item] with Product with Serializable
case classReplace[+Item](oldItem: Item, newItem: Item) extends CollectionCommand[Item] with Product with Serializable
case classReplaceAll[+Item](newItems: Iterable[Item]) extends CollectionCommand[Item] with Product with Serializable