>We still need to access it internally - just not expose it via a method. The assumption here is that it won't conflict with a `@_current_rspec_example` instance var in your app's examples :)

Random idea: what if we stored the current example in a thread local?  That would remove the need for the ivar.  If/when we ever wanted to make a multi-threaded runner, that would be automatically thread safe in a way that instance variables aren't.  We could then expose it from `RSpec.current_example` (which I think was [one of your earlier ideas](https://github.com/rspec/rspec-core/pull/666#issuecomment-8052352)), which can be handy for when a helper method needs to access the example metadata, and we could remove the `example=` method in this class.  I don't know how likely it is that users would have an `example=` helper method, but it's not outside the realm of possibility.

> re: 2.14 v 2.99 v 3.0. We can definitely do 2.99 (w/ deprecations) and 3.0 (with removal), but it feels odd to add a new feature to 2.99 and only give people 2.99 on to use it. WDYT?

I don't consider this a new feature.  I consider it an API change.  The current example has always been available; this just changes the means users use to access it.