When did it become allowed to witness a public protocol requirement with an `@_spi` declaration?

SwiftUI has been hiding the body property of various built-in views for years, and I’ve assumed it was by using _spi on them.