# Pass 04 — Project, Area and Dataset API ## Goal Implement first real API slice. ## Implement - Project create/list/read. - Area create/list/read for a project. - Dataset registration endpoint and metadata placeholder contract. - Validation for GeoJSON polygon areas. - Contract tests with fixtures. ## Constraints - No frontend-only fake data assumptions. - Invalid geometry must produce structured error. - Dataset upload may be scaffolded, but response contracts must be stable. ## Validation - API tests. - Contract fixture comparison where possible. - Backend import. ## Acceptance - A client can create a project, add an area, register a dataset and retrieve them. - Responses follow the documented envelope. - Execution log updated.