Forward compatibility (sometimes confused with extensibility) is the ability of a system to gracefully accept input intended for later versions of itself.
A forward-compatible system is expected to gracefully handle input which is intended for a newer version, by ignoring the unknowns and selecting the known subset of the data that the system is capable of handling. Forward compatibility is harder to achieve than backward compatibility because a system needs to cope gracefully with an unknown future data format or requests for unknown future features. Backward compatibility does not have this issue because it accepts a known data format.
An example of forward compatibility is a web browser ignoring the HTML tags that it does not (yet) recognize. It is typical for forward compatible systems to ignore unknown data or application instructions.
Many application software systems are designed with a robust and self-sufficient systems architecture so that they can operate adequately even when input for a more advanced version is entered.
In all cases, when the application system accepts the input data or operating system is not as expected, it will produce an output that will identify the problem accurately for the user.
If the choice is new functionality, then we break forward compatibility. But it is important now to build into v1 the ability to gracefully treat future inputs we could foresee (e.g., ignore attributes, such as "type", that the program does not understand).