If your `setup()` function returns a plain object, for example `{ spec: { name: 'BLAH' }`, Vue dutifully applies it to your template as expected. No rocket science there.

However, if your `setup()` function returns an object created by `Object.defineProperty({}, 'spec', { value: { name: 'BLAH' }})`, Vue ignores `spec` completely. (The specific error message is `Property or method "spec" is not defined on the instance but referenced during render.`).

Why is this, and how does one change the `Object.defineProperty` call to fix this?