`per_axis` on `PlaceDesc` and `Declared` builds a pair by asking for each axis. `from_axis` beside it already names the three-argument form, so the plural is the one that takes a function, and both follow Rust's convention for a constructor rather than an invented word. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>