Brand surface should be data. It should live in configuration that can be changed without creating another permanent codebase, while genuine divergence should be handled through a capability model, where features can be switched on and off depending on what each partner needs.