Calculate hasMoved boolean from moves list instead of storing it in Piece
Store date in Move
Clean Move class
Calculate Piece type using moves list instead of storing it in Piece