Made most fields optional and removed Null objects and replaced with Option.None - JSON parsing now more robust to handle optional elements in the nested hierarchy. Added scalatest.