This example creates an extender that allows an observable to be marked as required.
Instead of returning a new object, this extender simply adds additional sub-observables to the existing observable.
Since observables are functions, they can actually have their own properties.
However, when the view model is converted to JSON, the sub-observables will be dropped and we will simply be left with the value of our actual observable.
This is a nice way to add additional functionality that is only relevant for the UI and does not need to be sent back to the server.

Details (Fields Must Contain Data)