| PUT vs PATCH, partial update, field masks | standard-update.md | AIP-134 |
| Race conditions, lost updates, concurrent edits, ETags | etags-and-freshness.md | AIP-154 |
| Retry safety, duplicate requests, request IDs | idempotency.md | AIP-155 |
| Page tokens, cursor pagination, filtering, ordering | pagination-and-filtering.md | AIP-158, 160 |
| Breaking changes, backward compatibility | compatibility.md | AIP-192 |
| Alpha/beta/stable, API versioning | versioning-and-stability.md | AIP-180, 181 |
| Error codes, error responses, status details | errors.md | AIP-193 |
| Auth checks, permission denied vs not found | authorization.md | AIP-211 |
| BFF anti-patterns, layer boundaries, orchestration | bff-architecture.md | -- |
| Secrets, passwords, write-only fields | sensitive-fields.md | AIP-147 |
| Soft delete, undelete, resource expiry | resource-lifecycle.md | AIP-164, 216 |
| Async tasks, long-running operations | long-running-operations.md | AIP-151 |
| Recurring tasks, scheduled execution | jobs.md | AIP-152 |
| Bulk operations, batch requests | batch-methods.md | AIP-235 |
| Bulk data import/export, data portability | import-and-export.md | AIP-153 |
| Dry run, preview, validate-only | change-validation.md | AIP-163 |
| Many-to-many, multi-parent resources | resource-association.md | AIP-124 |
| Field defaults, server-modified values | server-modified-values.md | AIP-129 |
| Timestamps, durations, date fields | time-and-duration.md | AIP-142 |
| Unset vs zero, optional primitives | unset-field-values.md | AIP-149 |
| Naming conventions, enums, standard fields | naming-and-fields.md | AIP-140, 148 |
| Required/optional/immutable annotations | field-behavior.md | AIP-203 |
| Wildcard parent, cross-collection queries | cross-collection-reads.md | AIP-159 |
| Singleton resources, config objects | singletons.md | AIP-156 |
| Management vs data plane | planes.md | AIP-111 |
| Desired-state, reconciliation, declarative | declarative-interfaces.md | AIP-128 |