Have been trying to work out why the model was showing as
Code:
classname: null
then found this bug report from ExtJS 5.x which "had been fixed".

The reason for this behavioure can be found in the ext source for Ext.data.reader.Reader: In function onMetaChange which is called if the transmitted data contains a valid metaData property the model of the data will be created as Ext.data.Model:
However it appears it has reverted for some reason, this has reverted in ExtJS 6.x when looking at the source for Ext.data.reader.Reader

Code:
        if (fields) {
            newModel = Ext.define(null, {
                extend: 'Ext.data.Model',
                fields: fields,
                clientIdProperty: clientIdProperty
            });
            me.setModel(newModel);
            proxy = me.getProxy();
            if (proxy) {
                proxy.setModel(newModel);
            }
        } else if (clientIdProperty) {
            model = me.getModel();
            if (model) {
                model.self.prototype.clientIdProperty = clientIdProperty;
            }
        }
I am using the JSON reader which is the only difference from the previous bug, which was for Direct. Wondering if this was fixed for Direct but remained for JSON and possibly XML readers.