Design a Parking Lot system using object-oriented principles. Explain your choice of classes, attributes, and relationships.