Vala's owned and unowned keywords: letting the compiler write your refcount calls
Vala's owned and unowned annotations turn GObject reference counting into a compile-time contract. Here's how ownership transfer works, how to inspect the generated C, and where the model breaks down.