Empty and invalid strings in ACS

ACS strings are actually integers containing string ids. Any integer can be either valid (referring to a string that exists) or invalid (referring to no string).

Using an invalid string id will either do nothing, crash the script or crash the engine. Invalid string ids should never be used.

In contrast, empty ACS strings (“”) are valid strings of length 0. They have a valid string id. All string operations on them are guaranteed not to crash.

Unlike some other ACS libraries, ACSUtils string functions only accept valid string ids (including empty strings) and never return invalid string ids (but sometimes return empty strings).