title: Combine schema property types when defining a component
body: <p>I'm writing a component which can accept and array of vec3 as a schema property:</p>
  
  <pre><code>AFRAME.registerComponent('control-arrows', {
      schema: {
          'directions': {
              'type': 'array',
              'default': [
                  {'x':  1, 'y': 0, 'z':  0},
                  {'x': -1, 'y': 0, 'z':  0},
                  {'x':  0, 'y': 0, 'z':  1},
                  {'x':  0, 'y': 0, 'z': -1}
              ]
          }
      },
      /* init and stuff */
  }
  </code></pre>
  
  <p>As shown in the example, I used the type <code>array</code>. However, this type is not restrictive enough, as it should be an <code>array</code> of <code>vec3</code>. Note that the number of <code>vec3</code> can vary, and therefore I cannot use 4 properties with the <code>vec3</code> type.</p>
  
  <p>How to enforce such a restriction? And more especially, how to correctly parse the HTML part which could be:</p>
  
  <pre><code>&lt;a-entity
      control-arrows: "positions: 1 0 1, -1 0 -1"&gt;
  &lt;/a-entity&gt;
  </code></pre>