12.5.7 Font Information
Facilities in this clause require the font-info feature.
(font-property string list #!key size: name: family-name: weight: posture: structure: proportionate-width: writing-mode:)
Returns the value of a property in a font resource.  The arguments name:, family-name:, weight:, posture:, structure:, or proportionate-width: select the font in the same manner as the corresponding characteristics, with a prefix of font- added, of a character flow object.  The size: argument is a length specifying the size of the font, which shall be supplied if the ISO/IEC 9541-1 data type of the value is REL-RATIONAL.  string is a string representing a public identifier specifying the name of the property.  list is a list, each of whose members is either:

•  a string, or

•  a list of three strings and an object.
The property value to be returned shall be determined as follows. Initially, the active property-list is the font-resource property-list.  Each member of list in turn shall set the active property-list to a property-list nested in the active property-list, as follows:

•  If the member is a string, then it shall set the property-list to the property-list that is the value of the property of that name in the active property-list.

•  Otherwise, the active property-list shall be searched for a property whose name is equal to the first string. The value of the property shall be a property-list. The active property-list shall be set to the value of the property in that list whose name is equal to the second string and whose value is a property-list that contains a property whose name is equal to the third string and whose value is equal to the fourth member of the list.
Finally, the value of the property whose name is string in the active property-list shall be returned.
The optional writing-mode: argument shall have one of the values left-to-right, right-to-left, or top-to-bottom. The value left-to-right is equivalent to prefixing list with the list
("ISO/IEC 9541-1//WRMODES"
 "ISO/IEC 9541-1//WRMODE"
 "ISO/IEC 9541-1//WRMODENAME"
 "ISO/IEC 9541-1//LEFT-TO-RIGHT")
and so on for the other allowed values.
The object returned shall depend on the data type of the value of the property as defined in ISO/IEC 9541-1:

•  for a BOOLEAN property, a boolean value shall be returned.

•  for a STRUCTURED-NAME, a string containing the ISO 9070 canonical representation shall be returned.

•  for MATCH-STRING or MESSAGE, a string shall be returned.

•  for OCTET, INTEGER, CARDINAL, or CODE, a number shall be returned.

•  for REL-RATIONAL, a length shall be returned which is obtained by scaling the font size.

•  for ANGLE, a number shall be returned corresponding to the angle in degrees.

•  for an OCTET-STRING, a list of integers shall be returned.

•  for a value-list or an ordered-value-list, a list containing the result of converting the members of the value-list or ordered-value-list shall be returned.
Other types of values shall cause an error to be signaled.