All shapes take a single dict of args with defaults (fix #128)