The Upshot? It's a Knockout: Listing 2.

Metadata for Customer object

 NorthwindManagement.
upshot.metadata(
{
  "Customer:#NorthwindManagement":
  {
    "key":["CustomerID"],
    "fields":
    {
      "CompanyName":{"type":"String:#System"},
      "ContactName":{"type":"String:#System"},
      "CustomerID":{"type":"String:#System"},
    },
    "rules":
    {
      "CompanyName":{"required":true,"maxlength":40},
      "ContactName":{"maxlength":30},
      "CustomerID":{"required":true,"maxlength":5},
    },
    "messages":
    {
    }
  }
});

About the Author

Peter Vogel is a system architect and principal in PH&V Information Services. PH&V provides full-stack consulting from UX design through object modeling to database design. Peter tweets about his VSM columns with the hashtag #vogelarticles. His blog posts on user experience design can be found at http://blog.learningtree.com/tag/ui/.