what to fill in after $items in hook_field_is_empty I'm trying to build a module that constructs a field that needs to show in Manage Fields. I'm trying to understand what it is function by function. Looking at the example field module the code says 

function field_example_field_is_empty($item, $field) {
  return empty($item['rgb']);
}


Where does this 'rgb' come from? What is $item? How do I know what to put there in another field? My guess is that it just represents whatever is filled into the field, the actual value. Becuase the value of my field is going to be an HTML link, my guess is, for now at least, to type $item['link']. But I can't really verify it.
rgb is one of the column names defined by the field_example module's implementation of hook_field_schema():

function field_example_field_schema($field) {
  $columns = array(
    'rgb' =&gt; array('type' =&gt; 'varchar', 'length' =&gt; 7, 'not null' =&gt; FALSE),
  );
  $indexes = array(
    'rgb' =&gt; array('rgb'),
  );
  return array(
    'columns' =&gt; $columns,
    'indexes' =&gt; $indexes,
  );
}


These columns are the actual storage for your field's various values, and represent the columns you'll find in the field_data_* and field_revision_* tables in a normal Drupal installation. 

In the case of the rgb field there's only one column, but for many fields there are multiple columns (for example the image field which besides a 'fid' (file id) column has 'alt' and others).

The $item passed to hook_field_is_empty() is the representation of an instance of your field attached to an entity...essentially it contains the values filled in (or not as the case may be) by the user.

All of the columns you define in hook_field_schema() will be available in $item in hook_field_is_empty()...you then use whatever custom logic you need to decide whether the field has been sufficiently completed for storage, and return a TRUE or FALSE to represent that.