{
  "name": "scale_linear",
  "type": "function",
  "description": "Transforms a given value from an input domain to an output range using linear interpolation.",
  "arguments": [
	{"arg":"val", "description":"A value in the input domain. The function will return a corresponding scaled value in the output range."},
	{"arg":"domain_min", "description":"Specifies the minimum value in the input domain, the smallest value the input value should take."},
	{"arg":"domain_max", "description":"Specifies the maximum value in the input domain, the largest value the input value should take."},
	{"arg":"range_min", "description":"Specifies the minimum value in the output range, the smallest value which should be output by the function."},
	{"arg":"range_max", "description":"Specifies the maximum value in the output range, the largest value which should be output by the function."}
  ],
  "examples": [
	{ "expression":"scale_linear(5,0,10,0,100)", "returns":"50"},
	{ "expression":"scale_linear(0.2,0,1,0,360)", "returns":"72", "note": "scaling a value between 0 and 1 to an angle between 0 and 360"},
	{ "expression":"scale_linear(1500,1000,10000,9,20)", "returns":"9.6111111", "note": "scaling a population which varies between 1000 and 10000 to a font size between 9 and 20"}
  ]
}