A method comprising: loading into memory a first application programming interface, API, set schema (340, 405) resolving a first API set contract to a first host binary, wherein the first host binary is an executable of a first subsystem, and the first API set contract is used by the first subsystem to communicate with compatible applications; loading into the memory a second API set schema (342, 405) resolving a second API set contract to a second different host binary, wherein: the second host binary is an executable of a second subsystem, and the second API set contract is used by the second subsystem to communicate with compatible applications; the first subsystem and the second subsystem are same-type subsystems that share a base operating system in a computing device; and the first API set contract and the second API set contract are identified by a same API set name; receiving an API call from an application running on the computing device, the API call being identified by the same API set name; evaluating a runtime context in which the API call was placed, wherein the runtime context is evaluated on a per-application basis, and wherein evaluating the runtime context resolves API calls of applications to an associated one of the first host binary or the second host binary; and either: mapping the API call to the first host binary when the API call is called within a first runtime context; and executing elements of the first host binary responsive to receipt of the API call within the first runtime context; or mapping the API call to the second different host binary when the API call is called within a second runtime context; and executing elements of the second different host binary responsive to receipt of the API call within the second runtime context. loading into memory a first application programming interface, API, set schema (340, 405) resolving a first API set contract to a first host binary, wherein the first host binary is an executable of a first subsystem, and the first API set contract is used by the first subsystem to communicate with compatible applications; loading into the memory a second API set schema (342, 405) resolving a second API set contract to a second different host binary, wherein: the second host binary is an executable of a second subsystem, and the second API set contract is used by the second subsystem to communicate with compatible applications; the first subsystem and the second subsystem are same-type subsystems that share a base operating system in a computing device; and the first API set contract and the second API set contract are identified by a same API set name; the second host binary is an executable of a second subsystem, and the second API set contract is used by the second subsystem to communicate with compatible applications; the first subsystem and the second subsystem are same-type subsystems that share a base operating system in a computing device; and the first API set contract and the second API set contract are identified by a same API set name; receiving an API call from an application running on the computing device, the API call being identified by the same API set name; evaluating a runtime context in which the API call was placed, wherein the runtime context is evaluated on a per-application basis, and wherein evaluating the runtime context resolves API calls of applications to an associated one of the first host binary or the second host binary; and either: mapping the API call to the first host binary when the API call is called within a first runtime context; and executing elements of the first host binary responsive to receipt of the API call within the first runtime context; or mapping the API call to the second different host binary when the API call is called within a second runtime context; and executing elements of the second different host binary responsive to receipt of the API call within the second runtime context. mapping the API call to the first host binary when the API call is called within a first runtime context; and executing elements of the first host binary responsive to receipt of the API call within the first runtime context; or mapping the API call to the second different host binary when the API call is called within a second runtime context; and executing elements of the second different host binary responsive to receipt of the API call within the second runtime context.