@Override
            public <T> Schema<T> create(final RuntimeSchema<T> ms, Instantiator<T> instantiator,
                    Predicate.Factory factory, String[] args)
            {
                final HashMap<String, Field<T>> fieldsByName =
                        new HashMap<String, Field<T>>();

                int maxFieldNumber = includeAndAddTo(fieldsByName, ms.typeClass(), ms.getFields(), args);

                @SuppressWarnings("unchecked")
                Field<T>[] fields = new Field[fieldsByName.size()];
                int i = 0;
                for (Field<T> field : fieldsByName.values())
                {
                    fields[i++] = field;
                }

                return new PostFilteredSchema<T>(ms.typeClass(), instantiator, fields)
                {
                    @Override
                    public int getFieldNumber(String name)
                    {
                        final Field<T> field = fieldsByName.get(name);
                        return field == null ? 0 : field.number;
                    }

                    @Override
                    public void mergeFrom(Input input, T message) throws IOException
                    {
                        for (int number = input.readFieldNumber(this); number != 0;
                        number = input.readFieldNumber(this))
                        {
                            final Field<T> field = ms.getFieldByNumber(number);

                            if (field == null || !fieldsByName.containsKey(field.name))
                                input.handleUnknownField(number, this);
                            else
                                field.mergeFrom(input, message);
                        }
                    }

                    @Override
                    public String getFieldName(int number)
                    {
                        // only called during writes
                        final Field<T> field = ms.getFieldByNumber(number);

                        return field == null ? null : field.name;
                    }

                    @Override
                    public void writeTo(Output output, T message) throws IOException
                    {
                        for (Field<T> f : fields)
                            f.writeTo(output, message);
                    }
                };
            }
Include the fields for merging and writing.
<p>
The args param is required (the field names to include).
protostuff-runtime-view/src/main/java/io/protostuff/runtime/RuntimeView.java