public static TypeBuilder<Schema> builder() {
    return new TypeBuilder<>(new SchemaCompletion(), new NameContext());
  }
@Test
  void arrayObjectProp() {
    List<Object> values = new ArrayList<>();
    values.add(true);
    values.add(Integer.MAX_VALUE);
    values.add(Long.MAX_VALUE);
    values.add(1.0f);
    values.add(Double.MAX_VALUE);
    values.add(new byte[] { 0x41, 0x42, 0x43 });
    values.add("abc");

    Schema s = SchemaBuilder.builder().intBuilder().prop("arrayProp", values).endInt();

    // object properties
    assertEquals(1, s.getObjectProps().size());

    assertTrue(s.getObjectProp("arrayProp") instanceof Collection);
    @SuppressWarnings("unchecked")
    Collection<Object> valueCollection = (Collection<Object>) s.getObjectProp("arrayProp");
    Iterator<Object> iter = valueCollection.iterator();
    assertEquals(7, valueCollection.size());
    assertEquals(true, iter.next());
    assertEquals(Integer.MAX_VALUE, iter.next());
    assertEquals(Long.MAX_VALUE, iter.next());

    assertEquals(1.0f, iter.next());
    assertEquals(Double.MAX_VALUE, iter.next());

    assertArrayEquals(new byte[] { 0x41, 0x42, 0x43 }, (byte[]) iter.next());
    assertEquals("abc", iter.next());
  }