service_schema = {
    'name': {
        'type': 'string',
        'required': True,
    },
    'fields': {
        'type': 'dict',
        'required': True,
    },
    'unique': {
        'type': 'boolean',
        'default': False,
    },
    'description': {
        'type': 'string',
    },
    'group': {
        'type': 'string',
    },
    'keywords': {
        'type': 'list',
        'schema': {
            'type': 'string',
        },
    },
    'protocol_type': {
        'type': 'string',
    },
    'service_name': {
        'type': 'string',
        'required': True,
    },
    'service_code': {
        'type': 'string',
        'required': True,
        'unique': True,
    },
}

@@ -1,16 +1,1658 @@
+field_schema = %7B%0A    'type': %7B%0A        'type': 'string',%0A        'allowed': %5B'string',%0A                    'boolean',%0A                    'integer',%0A                    'float',%0A                    'number',%0A                    'datetime',%0A                    'dict',%0A                    'list',%0A                    'objectid',%0A                    'file'%5D,%0A    %7D,%0A    'required': %7B%0A        'type': 'boolean',%0A        'default': False,%0A    %7D,%0A    'readonly': %7B%0A        'type': 'boolean',%0A        'default': False,%0A    %7D,%0A    'minlength': %7B%0A        'type': 'integer',%0A    %7D,%0A    'maxlength': %7B%0A        'type': 'integer',%0A    %7D,%0A    'min': %7B%0A        'type': 'integer',%0A    %7D,%0A    'max': %7B%0A        'type': 'integer',%0A    %7D,%0A    'allowed': %7B%0A        'type': 'list',%0A    %7D,%0A    'empty': %7B%0A        'type': 'boolean',%0A        'default': True,%0A    %7D,%0A    'items': %7B%0A        'type': 'list',%0A    %7D,%0A    'scheam': %7B%0A        'type': 'dict',%0A    %7D,%0A    'unique': %7B%0A        'type': 'boolean',%0A        'default': False,%0A    %7D,%0A    'data_relation': %7B%0A        'type': 'dict',%0A        'schema': %7B%0A            'resource': %7B%0A                'type': 'string',%0A            %7D,%0A            'field': %7B%0A                'type': 'string',%0A            %7D,%0A            'embeddable': %7B%0A                'type': 'boolean',%0A                'default': False,%0A            %7D,%0A            'version': %7B%0A                'type': 'boolean',%0A                'default': False,%0A            %7D,%0A        %7D,%0A    %7D,%0A    'nullable': %7B%0A        'type': 'boolean',%0A        'default': False,%0A    %7D,%0A    'default': %7B%7D,%0A    'versioned': %7B%0A        'type': 'boolean',%0A        'default': True,%0A    %7D,%0A%7D%0A%0A
 service_schema =
@@ -1785,32 +1785,67 @@
 equired': True,%0A
+        'keyschema': field_schema,%0A
     %7D,%0A    'uniq

Define the schema for fields