## How it works

Rust integrations should use explicit request structures and preserve optional response fields without losing unknown data.

## Implementation

Serialize amounts as integer minor units and configure required fields before sending. Use Option for optional values, a bounded JSON map for metadata and typed enums only where unknown future values can be handled. Inspect HTTP status separately from payment status. Keep request logs redacted and avoid serializing secrets into debug output.

## In this area

- Typed request builders
- The `extra` map on requests
- The `extra` map on responses
