{
	"all": "any type",
	"application": {
		"array": "<%= prefix %> <%= codeTagOpen %>Array<%= codeTagClose %> of <%= application %> <%= suffix %>",
		"object": "<%= prefix %> <%= codeTagOpen %>Object<%= codeTagClose %> with <%= application %> properties <%= suffix %>",
		"objectNonString": "<%= prefix %> <%= codeTagOpen %>Object<%= codeTagClose %> with <%= keyApplication %> keys and <%= application %> properties <%= suffix %>",
		"other": "<%= prefix %> <%= codeTagOpen %><%= type %> containing <%= application %> <%= suffix %>"
	},
	"function": {
		"extended": {
			"new": "Returns <%= functionNew %> when called with <%= codeTagOpen %>new<%= codeTagClose %>.",
			"returns": "Returns <%= type %>.",
			"signature": "function(<%= functionParams %>)",
			"this": "Within the function, <%= codeTagOpen %>this<%= codeTagClose %> refers to <%= functionThis %>."
		},
		"simple": {
			"new": "constructs <%= functionNew %>",
			"returns": "returns <%= type %>",
			"signature": "<%= prefix %> function(<%= functionParams %>) <%= functionReturns %>",
			"this": "<%= codeTagOpen %>this<%= codeTagClose %> = <%= functionThis %>"
		}
	},
	"modifiers": {
		"extended": {
			"nonNullable": "Must not be null.",
			"nullable": "May be null.",
			"optional": "Optional.",
			"prefix": "",
			"repeatable": "May be provided more than once.",
			"suffix": ""
		},
		"simple": {
			"nonNullable": "non-null",
			"nullable": "nullable",
			"optional": "optional",
			"prefix": "<%= optional %> <%= nullable %> <%= repeatable %>",
			"repeatable": "repeatable",
			"suffix": ""
		}
	},
	"name": "<%= codeTagOpen %>{{ name }}<%= codeTagClose %> <%= suffix %>",
	"null": "null",
	"params": {
		"first": {
			"one": "<%= param %>",
			"two": "<%= param %>, ",
			"many": "<%= param %>, "
		},
		"middle": {
			"many": "<%= param %>, "
		},
		"last": {
			"two": "<%= param %>",
			"many": "<%= param %>"
		}
	},
	"record": {
		"first": {
			"one": "<%= prefix %> {<%= field %>} <%= suffix %>",
			"two": "<%= prefix %> {<%= field %>, ",
			"many": "<%= prefix %> {<%= field %>, "
		},
		"middle": {
			"many": "<%= field %>, "
		},
		"last": {
			"two": "<%= field %>} <%= suffix %>",
			"many": "<%= field %>} <%= suffix %>"
		}
	},
	"field": {
		"typed": "<%= name %>: <%= type %>",
		"untyped": "<%= name %>"
	},
	"type": "<%= prefix %> <%= codeTagOpen %><%= type %><%= codeTagClose %> <%= suffix %>",
	"undefined": "undefined",
	"union": {
		"first": {
			"one": "<%= prefix %> <%= element %> <%= suffix %>",
			"two": "<%= prefix %> (<%= element %> ",
			"many": "<%= prefix %> (<%= element %>, "
		},
		"middle": {
			"many": "<%= element %>, "
		},
		"last": {
			"two": "or <%= element %>) <%= suffix %>",
			"many": "or <%= element %>) <%= suffix %>"
		}
	},
	"unknown": "unknown"
}