Iterating through the model consists of retrieving a new
<clutter-model-iter> pointing to the starting row, and calling
clutter-model-iter-next or clutter-model-iter-prev to move
forward or backwards, repectively.

A valid <clutter-model-iter> represents the position between two
rows in the model. For example, the "first" iterator represents the gap
immediately before the first row, and the "last" iterator represents the
gap immediately after the last row. In an empty sequence, the first and
last iterators are the same.

<clutter-model> is an abstract class. Clutter provides a list
model implementation called <clutter-list-model> which has been
optimised for insertion and look up in sorted lists.

47.2 ClutterModel custom properties for <clutter-script>

<clutter-model> defines a custom property "columns" for
<clutter-script> which allows defining the column names and
types. It also defines a custom "rows" property which allows filling the
<clutter-model> with some data.

The definition below will create a <clutter-list-model> with
three columns: the first one with name "Name" and containing strings;
the second one with name "Score" and containing integers; the third one
with name "Icon" and containing <clutter-texture>s. The model is
filled with three rows. A row can be defined either with an array that
holds all columns of a row, or an object that holds "column-name" :
"column-value" pairs.