anchor.diff:  <% data = JSON.parse @simulation.state %>
   
   var simulation = {
  -  rate: 0,                      // in ms
  -  clock: {
  -    time: new Date(<%= @simulation.start_on.strftime("%Y, %-m, %-d")%>).getTime(),
  -    elapsed_time: 0,           // in minutes
  -  },
  -  weather: {},
  -  soil: {},
  -  crops: [],
  -  patches: [],
  -  granularity: 100, 		// 100x100 meters
  -  width: 0,
  -  height: 0,
  -  water: undefined
  +	rate: 0,                      // in ms
  +	clock: {
  +		time: new Date(<%= @simulation.start_on.strftime("%Y, %-m, %-d")%>).getTime(),
  +		elapsed_time: 0,           // in minutes
  +	},
  +	weather: {},
  +	soil: {},
  +	crops: [],
  +	patches: [],
  +	granularity: 100, 		// 100x100 meters
  +	width: 0,
  +	height: 0,
  +	water: undefined
   };
   
   postMessage({start_time: '<%= @simulation.start_on.to_s %>'});
  
positive.code: var index = 0
  <% for property in Soil::PROPERTIES %>
  function get_<%= property %>() {
    return simulation.soil.<%= property %>[index];
  }
  
  function set_<%= property %>(value) {
    simulation.soil.<%= property %>[index] = value;
  }
  <% end %>
  
  
negative.code: var crop_index = 0
  <% for property in Crop::PROPERTIES %>
  function get_<%= property %>() {
  	return simulation.crops[crop_index].<%= property %>[patch_index];
  }
  
  function set_<%= property %>(value) {
  	simulation.crops[crop_index].<%=property %>[patch_index] = value;
  }
  <% end %>
  
  