use arrays instead of objects

* enable handling of unusual property names
* fix endless recursion when adding a schema with referenced sub schemas