1. A computer system that adapts a functionality to a client and server combination, comprising: a processor, the processor is configured to: retrieve, responsive to a request of a client for a functionality, pre-configured properties of the client, pre-configured properties of the requested functionality, and pre-configured properties of a server on which the requested functionality is run; perform an availability check, based on the retrieved pre-configured properties of the client, pre-configured properties of the server, and pre-configured properties of the requested functionality, to eliminate properties of the requested functionality which are not capable of functioning on a combination of the client and the server; and provide the result of the availability check as a set of properties which is available for the requested functionality on the combination of the client and the server, wherein the pre-configured properties define different property types, property values of the different property types, functionality values for each property value, and rules that instruct the processor how to perform the availability check based on the property types, the property values and the functionality values.