# Structural Snapshot — 2026-06-25 (post-cycle 10, REST error sanitizer) Cycle 10 delta against `structure_2026-06-25_cycle9.md`. Source: `_docs/02_document/module-layout.md` + on-disk `*.csproj` graph. ## Projects | Layer | csproj | Cycle 10 delta | |-------|--------|----------------| | 4 (API) | `SatelliteProvider.Api` | `GlobalExceptionHandler`, `UavUploadValidationFilter` — string-only changes | | 3 (Application) | `SatelliteProvider.Services.TileDownloader` | `UavTileUploadHandler` — string-only change | | 6 (Tests) | `SatelliteProvider.Tests`, `SatelliteProvider.IntegrationTests` | assertion updates | **Project count**: **10** (unchanged vs cycle 9). ## Cross-Project Import Edges **Total ProjectReference edges**: **23** (unchanged). **Import cycles**: 0. ## New infra (non-code) | Artifact | Purpose | |----------|---------| | `docker-compose.perf.yml` | Unsets postgres host port for perf/tests when 5433 occupied | ## Contract coverage | Surface | Contract | Cycle 10 delta | |---------|----------|----------------| | REST error envelope | `error-shape.md` v1.0.1 | patch — Information Disclosure section | | gRPC `DeliverRouteTiles` | `tile_provision.proto` | unchanged | **gRPC perf coverage**: Unverified — PT-10 still absent (carry-over from cycle 9).