Inicializador de extensión de protocolo

Me gustaría saber cuál es el equivalente de protocolo para un inicializador en una clase simple que solo contiene funcionalidad de inicialización y solo está destinado a extenderse en una clase concreta.

Entonces, probablemente lo más fácil es mostrar el código: estoy buscando la extensión de protocolo equivalente a la siguiente:

import UIKit

class Thing {
    var color:UIColor
    init(color:UIColor) {
        self.color = color
    }
}
class NamedThing:Thing {
    var name:String
    init(name:String,color:UIColor) {
        self.name = name
        super.init(color:color)
    }
}
var namedThing = NamedThing(name: "thing", color: UIColor.blueColor())

Esperaba que el código se viera así:

protocol Thing {
    var color:UIColor {get set}
}
extension Thing {
    init(color:UIColor) {
        self.color = color
    }
}
class NamedThing:Thing {
    var name:String
    var color:UIColor
    init(name:String,color:UIColor) {
        self.name = name
        self.init(color:color)
    }
}

He visto soluciones sugeridas en otras preguntas de StackOverflow (p. Ej.¿Cómo definir inicializadores en una extensión de protocolo?) pero no estoy seguro de que funcionen ni aborden específicamente este problema de parámetros adicionales en el inicializador de clase.

Respuestas a la pregunta(4)

Su respuesta a la pregunta