{
  "Math.abs": "Returns the absolute value of a number (the value without regard to whether it is positive or negative). \nFor example, the absolute value of -5 is the same as the absolute value of 5.",
  "Math.abs|param|x": "A numeric expression for which the absolute value is needed.",
  "Math.max": "Returns the larger of two supplied numeric expressions.",
  "Math.min": "Returns the smaller of two supplied numeric expressions.",
  "Math.pow": "Returns the value of a base expression taken to a specified power.",
  "Math.pow|param|x": "The base value of the expression.",
  "Math.pow|param|y": "The exponent value of the expression.",
  "Math.random": "Returns a pseudorandom number between 0 and `max`.",
  "Math.randomBoolean": "Generates a `true` or `false` value randomly, just like flipping a coin.",
  "Math.sign": "Returns the sign of the x, indicating whether x is positive, negative or zero.",
  "Math.sign|param|x": "The numeric expression to test",
  "Math.sqrt": "Returns the square root of a number.",
  "Math.sqrt|param|x": "A numeric expression.",
  "String.charAt": "Returns the character at the specified index.",
  "String.charAt|param|index": "The zero-based index of the desired character.",
  "String.charCodeAt": "Returns the Unicode value of the character at the specified location.",
  "String.charCodeAt|param|index": "The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.",
  "String.compare": "Determines whether relative order of two strings (in ASCII encoding).",
  "String.compare|param|that": "String to compare to target string",
  "String.concat": "Returns a string that contains the concatenation of two or more strings.",
  "String.concat|param|other": "The string to append to the end of the string.",
  "String.fromCharCode": "Make a string from the given ASCII character code.",
  "String.isEmpty": "Returns a value indicating if the string is empty",
  "String.length": "Returns the length of a String object.",
  "String.substr": "Return substring of the current string.",
  "String.substr|param|length": "number of characters to extract",
  "String.substr|param|start": "first character index; can be negative from counting from the end, eg:0",
  "basic": "Provides access to basic micro:bit functionality.\n\nProvides access to basic micro:bit functionality.",
  "basic.clearScreen": "Turn off all LEDs",
  "basic.color": "Converts the color name to a number",
  "basic.forever": "Repeats the code forever in the background. On each iteration, allows other codes to run.",
  "basic.pause": "Pause for the specified time in milliseconds",
  "basic.pause|param|ms": "how long to pause for, eg: 100, 200, 500, 1000, 2000",
  "basic.plotLeds": "Draws an image on the LED screen.",
  "basic.plotLeds|param|leds": "pattern of LEDs to turn on/off",
  "basic.rgbw": "Converts red, green, blue channels into a RGB color",
  "basic.rgbw|param|blue": "value of the blue channel between 0 and 255. eg: 255",
  "basic.rgbw|param|green": "value of the green channel between 0 and 255. eg: 255",
  "basic.rgbw|param|red": "value of the red channel between 0 and 255. eg: 255",
  "basic.rgbw|param|white": "value of the white channel between 0 and 255. eg: 0",
  "basic.setLedColor": "Sets the color on the build-in LED. Set to 0 to turn off.",
  "basic.showAnimation": "Shows a sequence of LED screens as an animation.",
  "basic.showAnimation|param|interval": "time in milliseconds between each redraw",
  "basic.showAnimation|param|leds": "pattern of LEDs to turn on/off",
  "basic.showLeds": "Draws an image on the LED screen.",
  "basic.showLeds|param|interval": "time in milliseconds to pause after drawing",
  "basic.showLeds|param|leds": "the pattern of LED to turn on/off",
  "basic.showNumber": "Scroll a number on the screen. If the number fits on the screen (i.e. is a single digit), do not scroll.",
  "basic.showNumber|param|interval": "speed of scroll; eg: 150, 100, 200, -100",
  "basic.showString": "Display text on the display, one character at a time. If the string fits on the screen (i.e. is one letter), does not scroll.",
  "basic.showString|param|interval": "how fast to shift characters; eg: 150, 100, 200, -100",
  "basic.showString|param|text": "the text to scroll on the screen, eg: \"Hello!\"",
  "control": "Runtime and event utilities.",
  "control.assert": "If the condition is false, display msg on serial console, and panic with code 098.",
  "control.deviceName": "Gets a friendly name for the device derived from the its serial number",
  "control.deviceSerialNumber": "Derive a unique, consistent serial number of this device from internal data.",
  "control.eventSourceId": "Returns the value of a C++ runtime constant",
  "control.eventTimestamp": "Gets the timestamp of the last event executed on the bus",
  "control.eventValue": "Gets the value of the last event executed on the bus",
  "control.eventValueId": "Returns the value of a C++ runtime constant",
  "control.inBackground": "Schedules code that run in the background.",
  "control.onEvent": "Raises an event in the event bus.",
  "control.panic": "Display specified error code and stop the program.",
  "control.raiseEvent": "Raises an event in the event bus.",
  "control.raiseEvent|param|mode": "optional definition of how the event should be processed after construction (default is CREATE_AND_FIRE).",
  "control.raiseEvent|param|src": "ID of the MicroBit Component that generated the event e.g. MICROBIT_ID_BUTTON_A.",
  "control.raiseEvent|param|value": "Component specific code indicating the cause of the event.",
  "control.reset": "Resets the BBC micro:bit.",
  "control.runtimeWarning": "Display warning in the simulator.",
  "control.waitMicros": "Blocks the current fiber for the given microseconds",
  "control.waitMicros|param|micros": "number of micro-seconds to wait. eg: 4",
  "game": "A single-LED sprite game engine",
  "game.addLife": "Adds life points to the current life",
  "game.addLife|param|lives": "TODO",
  "game.addScore": "Adds points to the current score",
  "game.addScore|param|points": "amount of points to change, eg: 1",
  "game.createSprite": "Creates a new LED sprite pointing to the right.",
  "game.createSprite|param|x": "sprite horizontal coordinate, eg: 2",
  "game.createSprite|param|y": "sprite vertical coordinate, eg: 2",
  "game.currentTime": "Gets the remaining time (since `start countdown`) or current time (since the device started or `start stopwatch`) in milliseconds.",
  "game.gameOver": "Displays a game over animation.",
  "game.invalidSprite": "Gets an invalid sprite; used to initialize locals.",
  "game.isGameOver": "Indicates if the game is display the game over sequence.",
  "game.isRunning": "Gets a value indicating if the game is still running. Returns `false` if game over.",
  "game.level": "Gets the current level",
  "game.levelUp": "Increments the level and display a message.",
  "game.life": "Gets the current life",
  "game.removeLife": "Removes some life",
  "game.removeLife|param|life": "TODO",
  "game.score": "Gets the current score",
  "game.setLife": "Sets the current life value",
  "game.setLife|param|value": "TODO",
  "game.setScore": "Sets the current score value",
  "game.setScore|param|value": "TODO",
  "game.showScore": "Displays the score on the screen.",
  "game.startCountdown": "Starts a game countdown timer",
  "game.startCountdown|param|ms": "countdown duration in milliseconds, eg: 10000",
  "game.startStopwatch": "Starts a stopwatch timer. `current time` will return the elapsed time.",
  "images": "Creation, manipulation and display of LED images.",
  "images.createBigImage": "Creates an image with 2 frames.",
  "images.createImage": "Creates an image that fits on the LED screen.",
  "input": "Events and data from sensors",
  "input.acceleration": "Get the acceleration value in milli-gravitys (when the board is laying flat with the screen up, x=0, y=0 and z=-1024)",
  "input.acceleration|param|dimension": "TODO",
  "input.buttonIsPressed": "Get the button state (pressed or not) for ``A`` and ``B``.",
  "input.calibrate": "Obsolete, compass calibration is automatic.",
  "input.compassHeading": "Get the current compass heading in degrees.",
  "input.lightLevel": "Reads the light level applied to the LED screen in a range from ``0`` (dark) to ``255`` bright.",
  "input.magneticForce": "Get the magnetic force value in ``micro-Teslas`` (``µT``). This function is not supported in the simulator.",
  "input.magneticForce|param|dimension": "TODO",
  "input.onButtonPressed": "Do something when a button (``A``, ``B`` or both ``A+B``) is pressed",
  "input.onButtonPressed|param|body": "TODO",
  "input.onButtonPressed|param|button": "TODO",
  "input.onGesture": "Do something when when a gesture is done (like shaking the micro:bit).",
  "input.onGesture|param|body": "TODO",
  "input.onLogoDown": "Attaches code to run when the logo is oriented downwards and the board is vertical.",
  "input.onLogoDown|param|body": "TODO",
  "input.onLogoUp": "Attaches code to run when the logo is oriented upwards and the board is vertical.",
  "input.onLogoUp|param|body": "TODO",
  "input.onPinPressed": "Do something when a pin is pressed.",
  "input.onPinPressed|param|body": "the code to run when the pin is pressed",
  "input.onPinPressed|param|name": "the pin that needs to be pressed",
  "input.onPinReleased": "Do something when a pin is released.",
  "input.onPinReleased|param|body": "the code to run when the pin is released",
  "input.onPinReleased|param|name": "the pin that needs to be released",
  "input.onScreenDown": "Attaches code to run when the screen is facing down.",
  "input.onScreenDown|param|body": "TODO",
  "input.onScreenUp": "Attaches code to run when the screen is facing up.",
  "input.onScreenUp|param|body": "TODO",
  "input.onShake": "Attaches code to run when the device is shaken.",
  "input.onShake|param|body": "TODO",
  "input.pinIsPressed": "Get the pin state (pressed or not). Requires to hold the ground to close the circuit.",
  "input.pinIsPressed|param|name": "pin used to detect the touch",
  "input.rotation": "The pitch or roll of the device, rotation along the ``x-axis`` or ``y-axis``, in degrees.",
  "input.rotation|param|kind": "TODO",
  "input.runningTime": "Gets the number of milliseconds elapsed since power on.",
  "input.setAccelerometerRange": "Sets the accelerometer sample range in gravities.",
  "input.setAccelerometerRange|param|range": "a value describe the maximum strengh of acceleration measured",
  "input.temperature": "Gets the temperature in Celsius degrees (°C).",
  "led": "Control of the LED screen.",
  "led.brightness": "Get the screen brightness from 0 (off) to 255 (full bright).",
  "led.enable": "Turns on or off the display",
  "led.fadeIn": "Fades in the screen display.",
  "led.fadeIn|param|ms": "TODO",
  "led.fadeOut": "Fades out the screen brightness.",
  "led.fadeOut|param|ms": "TODO",
  "led.plot": "Turn on the specified LED using x, y coordinates (x is horizontal, y is vertical). (0,0) is upper left.",
  "led.plotAll": "Turns all LEDS on",
  "led.plotBarGraph": "Displays a vertical bar graph based on the `value` and `high` value.\nIf `high` is 0, the chart gets adjusted automatically.",
  "led.plotBarGraph|param|high": "maximum value. If 0, maximum value adjusted automatically, eg: 0",
  "led.plotBarGraph|param|value": "current value to plot",
  "led.plot|param|x": "TODO",
  "led.plot|param|y": "TODO",
  "led.point": "Get the on/off state of the specified LED using x, y coordinates. (0,0) is upper left.",
  "led.point|param|x": "TODO",
  "led.point|param|y": "TODO",
  "led.screenshot": "Takes a screenshot of the LED screen and returns an image.",
  "led.setBrightness": "Set the screen brightness from 0 (off) to 255 (full bright).",
  "led.setBrightness|param|value": "the brightness value, eg:255, 127, 0",
  "led.setDisplayMode": "Sets the display mode between black and white and greyscale for rendering LEDs.",
  "led.setDisplayMode|param|mode": "mode the display mode in which the screen operates",
  "led.stopAnimation": "Cancels the current animation and clears other pending animations.",
  "led.toggle": "Toggles a particular pixel",
  "led.toggleAll": "Inverts the current LED display",
  "led.toggle|param|x": "TODO",
  "led.toggle|param|y": "TODO",
  "led.unplot": "Turn off the specified LED using x, y coordinates (x is horizontal, y is vertical). (0,0) is upper left.",
  "led.unplot|param|x": "TODO",
  "led.unplot|param|y": "TODO",
  "motors": "Blocks to control the onboard motors",
  "motors.dualMotorPower": "Controls two motors attached to the board. Switches to dual-motor mode!",
  "motors.motorCommand": "Send break, coast or sleep commands to the motor. Has no effect in dual-motor mode.",
  "motors.motorPower": "Turns on the motor at a certain percent of power. Switches to single motor mode!",
  "motors.motorPower|param|power": "%percent of power sent to the motor. Negative power goes backward. eg: 50",
  "music": "Generation of music tones through pin ``P0``.",
  "music.beat": "Returns the duration of a beat in milli-seconds",
  "music.changeTempoBy": "Change the tempo by the specified amount",
  "music.changeTempoBy|param|bpm": "The change in beats per minute to the tempo, eg: 20",
  "music.noteFrequency": "Gets the frequency of a note.",
  "music.noteFrequency|param|name": "the note name",
  "music.playTone": "Plays a tone through ``speaker`` for the given duration.",
  "music.playTone|param|frequency": "pitch of the tone to play in Hertz (Hz)",
  "music.playTone|param|ms": "tone duration in milliseconds (ms)",
  "music.rest": "Rests (plays nothing) for a specified time through pin ``P0``.",
  "music.rest|param|ms": "rest duration in milliseconds (ms)",
  "music.ringTone": "Plays a tone through ``speaker``.",
  "music.ringTone|param|frequency": "pitch of the tone to play in Hertz (Hz)",
  "music.setTempo": "Sets the tempo to the specified amount",
  "music.setTempo|param|bpm": "The new tempo in beats per minute, eg: 120",
  "music.tempo": "Returns the tempo in beats per minute. Tempo is the speed (bpm = beats per minute) at which notes play. The larger the tempo value, the faster the notes will play.",
  "pins": "Control currents in Pins for analog/digital signals, servos, i2c, ...",
  "pins.analogPitch": "Emits a Pulse-width modulation (PWM) signal to the current pitch pin. Use `analog set pitch pin` to define the pitch pin.",
  "pins.analogPitch|param|frequency": "TODO",
  "pins.analogPitch|param|ms": "TODO",
  "pins.analogReadPin": "Read the connector value as analog, that is, as a value comprised between 0 and 1023.",
  "pins.analogReadPin|param|name": "pin to write to",
  "pins.analogSetPeriod": "Configures the Pulse-width modulation (PWM) of the analog output to the given value in **microseconds** or `1/1000` milliseconds.\nIf this pin is not configured as an analog output (using `analog write pin`), the operation has no effect.",
  "pins.analogSetPeriod|param|micros": "period in micro seconds. eg:20000",
  "pins.analogSetPeriod|param|name": "analog pin to set period to",
  "pins.analogSetPitchPin": "Sets the pin used when using `pins->analog pitch`.",
  "pins.analogSetPitchPin|param|name": "TODO",
  "pins.analogWritePin": "Set the connector value as analog. Value must be comprised between 0 and 1023.",
  "pins.analogWritePin|param|name": "pin name to write to",
  "pins.analogWritePin|param|value": "value to write to the pin between ``0`` and ``1023``. eg:1023,0",
  "pins.createBuffer": "Create a new zero-initialized buffer.",
  "pins.createBuffer|param|size": "number of bytes in the buffer",
  "pins.digitalReadPin": "Read the specified pin or connector as either 0 or 1",
  "pins.digitalReadPin|param|name": "pin to read from",
  "pins.digitalWritePin": "Set a pin or connector value to either 0 or 1.",
  "pins.digitalWritePin|param|name": "pin to write to",
  "pins.digitalWritePin|param|value": "value to set on the pin, 1 eg,0",
  "pins.i2cReadBuffer": "Read `size` bytes from a 7-bit I2C `address`.",
  "pins.i2cReadNumber": "Read one number from 7-bit I2C address.",
  "pins.i2cWriteBuffer": "Write bytes to a 7-bit I2C `address`.",
  "pins.i2cWriteNumber": "Write one number to a 7-bit I2C address.",
  "pins.map": "Re-maps a number from one range to another. That is, a value of ``from low`` would get mapped to ``to low``, a value of ``from high`` to ``to high``, values in-between to values in-between, etc.",
  "pins.map|param|fromHigh": "the upper bound of the value's current range, eg: 1023",
  "pins.map|param|fromLow": "the lower bound of the value's current range",
  "pins.map|param|toHigh": "the upper bound of the value's target range, eg: 4",
  "pins.map|param|toLow": "the lower bound of the value's target range",
  "pins.map|param|value": "value to map in ranges",
  "pins.onPulsed": "Configures this pin to a digital input, and generates events where the timestamp is the duration that this pin was either ``high`` or ``low``.",
  "pins.pulseDuration": "Gets the duration of the last pulse in micro-seconds. This function should be called from a ``onPulsed`` handler.",
  "pins.pulseIn": "Returns the duration of a pulse in microseconds",
  "pins.pulseIn|param|name": "the pin which measures the pulse",
  "pins.pulseIn|param|value": "the value of the pulse (default high)",
  "pins.servoSetPulse": "Configures this IO pin as an analog/pwm output, configures the period to be 20 ms, and sets the pulse width, based on the value it is given **microseconds** or `1/1000` milliseconds.",
  "pins.servoSetPulse|param|micros": "pulse duration in micro seconds, eg:1500",
  "pins.servoSetPulse|param|name": "pin name",
  "pins.servoWritePin": "Writes a value to the servo, controlling the shaft accordingly. On a standard servo, this will set the angle of the shaft (in degrees), moving the shaft to that orientation. On a continuous rotation servo, this will set the speed of the servo (with ``0`` being full-speed in one direction, ``180`` being full speed in the other, and a value near ``90`` being no movement).",
  "pins.servoWritePin|param|name": "pin to write to",
  "pins.servoWritePin|param|value": "angle or rotation speed, eg:180,90,0",
  "pins.setEvents": "Configures the events emitted by this pin. Events can be subscribed to\nusing ``control.onEvent()``.",
  "pins.setEvents|param|name": "pin to set the event mode on, eg: DigitalPin.P0",
  "pins.setEvents|param|type": "the type of events for this pin to emit, eg: PinEventType.Edge",
  "pins.setPull": "Configures the pull of this pin.",
  "pins.setPull|param|name": "pin to set the pull mode on",
  "pins.setPull|param|pull": "one of the mbed pull configurations: PullUp, PullDown, PullNone ",
  "pins.sizeOf": "Get the size in bytes of specified number format.",
  "pins.spiWrite": "Write to the SPI slave and return the response",
  "pins.spiWrite|param|value": "Data to be sent to the SPI slave",
  "serial": "Reading and writing data over a serial connection.",
  "serial.delimiters": "Returns the delimiter corresponding string",
  "serial.onDataReceived": "Registers an event to be fired when one of the delimiter is matched.",
  "serial.onDataReceived|param|delimiters": "the characters to match received characters against.",
  "serial.readLine": "Reads a line of text from the serial port.",
  "serial.readString": "Reads the buffered received data as a string",
  "serial.readUntil": "Reads a line of text from the serial port and returns the buffer when the delimiter is met.",
  "serial.readUntil|param|delimiter": "text delimiter that separates each text chunk",
  "serial.redirect": "Dynamically configuring the serial instance to use pins other than USBTX and USBRX.",
  "serial.redirect|param|rate": "the new baud rate. eg: 115200",
  "serial.redirect|param|rx": "the new reception pin, eg: SerialPin.P1",
  "serial.redirect|param|tx": "the new transmission pins, eg: SerialPin.P0",
  "serial.writeLine": "Prints a line of text to the serial",
  "serial.writeNumber": "Prints a numeric value to the serial",
  "serial.writeString": "Sends a piece of text through Serial connection.",
  "serial.writeValue": "Writes a ``name: value`` pair line to the serial.",
  "serial.writeValue|param|name": "name of the value stream, eg: x",
  "serial.writeValue|param|value": "to write"
}