Hi.
My idea was to ask concrete metaobject for new object definition:

Class <<< #MyClass
superclass: #Object;
uses: #MyTrait;
vars: { #a. #b };
classVars: { #A. #B };
package: #MyPackage;
tags: #(Core);
layout: #MethodDictionaryLayout.

for class side:

Metaclass <<< #MyClass
vars: { ��}.

Or:

Class classSide <<< #MyClass

for trait:��

Trait <<< #MyTrait
uses: #AnotherTrait;
package: #MyPackage;
tags: #(Core Traits)

for trait class side:

ClassTrait <<< #MyTrait
uses: #AnotherClassSideTrait����


2017-05-22 9:25 GMT+02:00 Luc Fabresse <luc.fabresse@gmail.com>:
"basic mechanics, only THIS one in the image!"
ClassDefinition new
superclass: Object; "optional. If not specified, Object by default ;-)"
name: #A; "optional and create an anonymous class if not specified"
instVars: 'a b c';��
traits: {TEquality};
package: 'Plop';
createClass. " this message sent might be hidden by the browser when accepting"

I would not call it #createClass but something like #install. Because #createClass can be also interesting message to get new class without affecting live system.
And #install should be default version of #installInto: anEnvironment.