code: function schema(opts: Options): Object {
      const constructedSchema = {
          blocks: {
              [opts.typeItem]: {
                  parent: { types: opts.types },
                  nodes: [{ objects: ['block'] }],
  
                  normalize: normalize({
                      parent_type_invalid: (change, context) =>
                          change.unwrapBlockByKey(context.node.key, {
                              normalize: false
                          }),
                      child_object_invalid: (change, context) =>
                          wrapChildrenInDefaultBlock(opts, change, context.node)
                  })
              }
          }
      };
  
      // validate all list types, ensure they only have list item children
      opts.types.forEach(type => {
          constructedSchema.blocks[type] = {
              nodes: [{ types: [opts.typeItem] }],
              normalize: normalize({
                  child_type_invalid: (change, context) =>
                      change.wrapBlockByKey(context.child.key, opts.typeItem, {
                          normalize: false
                      })
              })
          };
      });
  
      return constructedSchema;
  }
docs: Create a schema definition with rules to normalize lists