code: private Obj compileObject(T m, DataViewDef viewDef) {
  		Obj res = Obj.make();
  		for(String k : pReader.readableProps(m)) {
  			if(! (viewDef.isTraversable(k) || wildcardProps.contains(k))) {
  				continue;
  			}
  			Object v = pReader.read(m, k);
  			if(v == null) {
  				continue;
  			} else if(v instanceof Collection<?>) {
  				if(viewDef.isTraversable(k)) {
  					Arr arr = res.arr(k);
  					for(Object o : (Collection<?>)v) {
  						Object x = evalScalarOrObject(k, o, viewDef);
  						arr.add(x);
  					}
  				}
  			} else {
  				Object x = evalScalarOrObject(k, v, viewDef);
  				if(x != null) {
  					res.put(k, x);
  				}
  			}
  		}
  		return res;
  	}
docs: TODO array of array not supported