I'd say this:
struct Circle {
var x, y: Double
var radius: Double = 1
init(x, y, radius) // the "member-wise" init we know and love
init(y, x, radius) // with parameters reordered
init(x, y) // omitting default parameters
init(x, y = 2, radius = 3) // with new defaults added
init(a x, b y, radius) // with parameters renamed
init(_ x, _ y, radius) // with parameters renamed
init(x, y, radius) { // with added logic when needed
self.radius = radius * 2
}
init(x, y, radius: Int, somethingElse: T) { // with added logic when needed
self.radius = Double(radius)
...
}
}