My objective is to have a module which gives me the option to create a entity field that can have multiple field values.
For example, the location module. It creates an entity field of type 'location' which can have a set of field values (country, province, city, address, etc.). In the database this module creates a table 'location' which stores all these values with a key 'lid'. The main entity field has a 'lid' value to connect with the set of values. And we are able to used tokens for all these field values.