in - passed from client to server
out - passed from server to client
optional - argument is optional
readonly - cannot be assigned to
partial_ignore - pointer to potentially uninitialized data
defaultvalue - default value for optional argument
retval - return value
ptr - full pointer, can be NULL and have aliases
ref - reference pointer, cannot be NULL and cannot have aliases
unique - unique pointer, can be NULL but cannot have aliases
force_allocate - always allocate dynamically
byte_count - size of referenced data
first_is - index of first array item
last_is - index of last array item
length_is - length of array
switch_is - discriminant of a union
pipe - stream between client and server
comm_status - failure code on communication error
fault_status - failure code on server error