lib/interfaceFactory.js
function (params) {
        // Schema defines fields and can be used for validation and form generation (optional)
        this.schema = params.schema;
        // The name of the interface, this should be unique
        this.name = params.name;
        // Additional properties that aren't exposed as form data, in the future this might be 
        // used to check that objects fulfill the implementation
        this.members = params.members;
        
        this.interfaceId = uuid.v4();
        
        // console.log("[SCHEMA] Created interface [" + this.name + "] with id: " + this.interfaceId);
    }
function (params) {
        // Schema defines fields and can be used for validation and form generation (optional)
        this.schema = params.schema;
        // The name of the interface, this should be unique
        this.name = params.name;
        // Additional properties that aren't exposed as form data, in the future this might be 
        // used to check that objects fulfill the implementation
        this.members = params.members;
        
        this.interfaceId = uuid.v4();
        
        // console.log("[SCHEMA] Created interface [" + this.name + "] with id: " + this.interfaceId);
    }
TODO: If extends other interfaces then concatenate schemas from those, order sets precedence (first is overrides). Then superimpose given schema on top of these.