ID:1711209
 
(See the best response by Nadrew.)
I was not sure if there is such a thing in BYOND but I didn't get any errors for this:

Item
var/global/prototypes
var/global/list/stacks
var/global/list/names

proc/global/NewPrototype(title="",stack=0)
prototypes++
stacks.len = prototypes
stacks[prototypes] = stack
names.len = prototypes
names[prototypes] = title


Item.NewPrototype("Apple",1)

Now I don't know how to access the class. When I try just class name I get this error:
Item.dm:9:error: Item.NewPrototype: undefined var

Q: Is there any other way of integrating this system besides using helper class?
Best response
var/Item/item_handler = new()
item_handler.NewPrototype("Apple",1)


You'd be fine defining the variables in the global scope outright (as putting the global keyword where it is does that anyways), you'll also need to initialize those lists.
I have never thought of it that way before. The fun part is that I can name the handler like the class itself and mask it perfectly.
But still, it looks treacherous.

Well, at least I'm good to go, thanks.