Expand/Shrink

dynamic

Definition: class identifier dynamic [extends base]
    { [(public|private)[:]] ( field | method ) [ ',' ... ] }
end class
-- or --
class|identifier variable ( ';' | '=' ( new() | expr ) ) [ ',' ... ]
-- or --
bool res = class|identifier(object o)
Description: By default, you have to explicitly declare all fields and methods of each class/structure, however you can also create fully dynamic classes by making the base class dynamic.
pwa/p2js: Not supported.
Example:
class wobbly dynamic
end class
wobbly wobble = new()
?wobble.jelly           -- NULL
wobble.jelly = "green"
?wobble.jelly           -- "green"

Obviously you can create several fields/methods as normal, or as shown above create all of them dynamically.
All dynamically-added fields are implicitly public and of type object.
Implementation: As per struct
See Also: class
Expand/Shrink