Adding the capability to mark properties as required, and to have them be arrays