A data processing apparatus for embedding a library in a program, such that when the program is executed on an electronic device it invokes functionality of the embedded library to control data flow within the electronic device via JavaScript Object Notation (JSON) data in accordance with one or more JSON schema sources that define the JSON data structures; the apparatus comprising a processor arranged to execute software comprising: a compiler operative to receive one or more JavaScript Object Notation (JSON) Software Development Kit sources and to output a JSON SDK library, the compiler also outputting a debugger based on the one or more JSON SDK sources; the debugger operative to accept the one or more JSON schema sources as inputs to allow a user of the JSON SDK to analyze and debug the JSON data, and the debugger further operative to output one or more schema for use in embedded program sources and based on the one or more JSON schema sources supplied by a user of the JSON SDK; the compiler further operative to accept plural embedded program sources including the one or more schema, a JSON SDK header file for the JSON SDK library and a source for the program executed on the electronic device, wherein each of the embedded program sources comprise C-programming language embedded program sources, and to output one or more binary objects created from the embedded program sources; and a linker accepting the binary objects and the JSON SDK library and acting to embed the JSON SDK library in the binary objects and to output a binary program with an embedded JSON SDK library; wherein the compiler is configurable by a switch such as a software-defined configuration parameter that, when activated, causes the compiler to: turn off functionality in the JSON SDK library that is not necessary for the operation of the electronic device; turn off error messages in the library for functions that are not used by the electronic device; and reduce a memory footprint of the embedded JSON SDK library, based on turning off the functionality and turning off the error messages. a compiler operative to receive one or more JavaScript Object Notation (JSON) Software Development Kit sources and to output a JSON SDK library, the compiler also outputting a debugger based on the one or more JSON SDK sources; the debugger operative to accept the one or more JSON schema sources as inputs to allow a user of the JSON SDK to analyze and debug the JSON data, and the debugger further operative to output one or more schema for use in embedded program sources and based on the one or more JSON schema sources supplied by a user of the JSON SDK; the compiler further operative to accept plural embedded program sources including the one or more schema, a JSON SDK header file for the JSON SDK library and a source for the program executed on the electronic device, wherein each of the embedded program sources comprise C-programming language embedded program sources, and to output one or more binary objects created from the embedded program sources; and a linker accepting the binary objects and the JSON SDK library and acting to embed the JSON SDK library in the binary objects and to output a binary program with an embedded JSON SDK library; wherein the compiler is configurable by a switch such as a software-defined configuration parameter that, when activated, causes the compiler to: turn off functionality in the JSON SDK library that is not necessary for the operation of the electronic device; turn off error messages in the library for functions that are not used by the electronic device; and reduce a memory footprint of the embedded JSON SDK library, based on turning off the functionality and turning off the error messages. turn off functionality in the JSON SDK library that is not necessary for the operation of the electronic device; turn off error messages in the library for functions that are not used by the electronic device; and reduce a memory footprint of the embedded JSON SDK library, based on turning off the functionality and turning off the error messages.