You will sketch classes and method signatures. Real code is a bonus.
The garage has several floors and entrances.
Single responsibility
A class should have one reason to change.
Strategy pattern
Put interchangeable algorithms (fee rules) behind one interface and pick one at runtime.
Open/closed
Open for extension, closed for modification: add a new class instead of editing old code.
Race condition
Two actions interleave badly, such as two cars both seeing a spot as free.
Atomic operation
Happens fully or not at all, with nothing else able to slip in between.
Decisions you confirm will collect here as you go.