Follow-up to PR #528 review-bot Medium findings:
- /placement-history endpoint typed via new PlacementHistoryEntry schema
(OpenAPI + Pydantic validation, consistent with other endpoints)
- Replace truthy 'if target.lat and target.lon' with 'is not None'
(defensive against lat=0.0 in future region expansion)