Compatibility charter (draft)
Takes effect at v1.0. Until then the format is a v0.x draft and may change.
Open Video Menu is meant to outlive any one player, tool or maintainer. These rules are permanent from v1.0 onward:
- Old manifests keep working. Every valid manifest from any earlier version MUST keep working in every later player.
- Nothing is removed or redefined. Fields are never removed or renamed, and never change meaning. Minor versions only add optional fields.
- Unknown fields are ignored. Readers MUST ignore fields and extensions they don't understand, so newer manifests still work in older players.
- The basic floor never moves. Every manifest MUST include the
fallbacklist. A player that can show that list and play media works with every manifest ever written. - The server API is covered too. Endpoints and fields of a released API version (e.g.
/v1/, see server-api.md) are never removed or redefined; breaking changes get a new version served alongside the old one. - Extensions first, core later. New features start as namespaced
x-<vendor>-*extensions. They join the core only through a public proposal, with conformance tests.
What "compatible" means
An implementation is compatible when it passes the conformance suite for the level it claims (0, 1, 2 or 3). The name, and any "compatible" badge, is reserved for implementations that pass. (A trademark policy will say this formally before v1.0.)
The code is Apache-2.0, so forks are welcome. A fork that breaks these rules just can't call itself Open Video Menu compatible.