help with hashes inside hiera

I'm trying to build a generic "packages" module that I can wrap around package, files and services resources. I want to do this so that I can virtualize the packages and realize them where I want to. Some things I'm trying to take into consideration are:

1) some packages may have an associated service
2) services can have multiple config files
3) users need to exist before the packages are installed (so that UIDs and GIDs can stay in sync across nodes.)

I don't care so much about 3 right now. I have accounts defined in another defined type which is working. I'll need to link this to that later, but I want to focus on the config files for now.

I'm having trouble in config.pp. I want to take service_files and create file resources with the data available in hiera (I also want to be able to subscribe / notify files / services if necessary.) I don't know how to extract that and "iterate" over it (I know iterate is a bad word in puppet-speak, but I don't know how else to put it.)

I guess more succinctly:

How do I get to the owner, group, mode etc... entries for each service_files?
My module structure looks like this: