Agent initialization

Good morning, everyone. I have a model in which the @agent struct statement contains about 25 parameters for the agent. I would like to set this up such that I can specify default values and then overwrite one or two of them later with add_agent, without having to specify the entire list of parameters in add_agent. Is this possible?

Secondly, when I am initializing an agent with parameters that are all non-default values, I end up with a long string of values that are challenging to track/validate:

add_agent!(Sheep, model, 1,0,1,0,0,0,0,false,true,0,1)

Is there a way to make this into key/value pairs?

add_agent!(Sheep, model, :energy=>2, :hair_color=>blue, :height=>27 etc)

Thanks!