Empty and invalid strings in ACS

ACS strings are actually integers containing string ids. Any integer can either refer to a string that exists or not.

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).