I think that’s basically it.
Ruby’s an OOP language, so everything has to live in some kind of object. If you started in a tabula rasa, what would it mean to define a variable or method? Where would it live? What methods can you call?
So the ‘main’ context provides a ‘self’ into which you can put definitions and access basic methods, like
=> [Object, Kernel, BasicObject]
[:!, :!=, :!~, :<, :<=, :<=>,
And you can check up on local variables:
> x = 3
=> [:x, :_]