Currently construct uses numbers and strings as values in expressions. Any other type: Boolean, dictionaries, arrays, etc.. are manipulated via actions and expressions. For example the Boolean expressions effectively converts to numbers. Anyways, it’s not alone in doing this, clickteam products do or did this (haven’t used them in a while).
The closest we got to another value type was immutable arrays in construct classic. You could specify an array like {1,2,3} then store it in variables, or index them with someNumber. You couldn’t change them after they were defined though. It was prone to crashing but was interesting.
It would be nice to have arrays and dictionaries as variable types too. Mainly to avoid having to deal with picking and to possibly make things look cleaner.
What’s being suggested here are structs, which would be a nice way to group values. Currently we can kind of do that with sprites with instance variables, or a dictionary with a fixed set of keys. The sprite is better than the dictionary method because the expression editor will catch typos at edit time. Both aren’t ideal because they have to be picked. Picking is fine with simple cases but often we end up having to do juggling with how things are picked to access and modify things.
The json object is an improvement since you can have as many arrays and dictionaries in it as you like. You still have to pick it, but that’s usually fine since you can get away with a single instance. The main downfall of it is if you make typos in the json paths you won’t know until running it. But I guess that’s the nature of dynamic data structures, you have to check at runtime.
Structs are nice because you define it at edit time and the editor can catch a typos you make before the game runs. You wouldn’t have to worry about something silently returning 0, or having to check the browser console for errors.
Anyways just some thoughts.