Source: typedef.jsdoc

/**
 *
 * @description Custom type definitions to link Java, ModPE, and Rhino data types to
 *              JavaScript primitives, or to provide clearer documentation.
 *
 *////

/**
 *
 * @typedef     {org.mozilla.javascript.Scriptable} Scriptable
 * @description __`Rhino`__ Java interface that all objects in JavaScript must implement.
 *
 * @see {@link https://goo.gl/BBw9vp|Rhino Scriptable}
 *
 *////

/**
 *
 * @typedef     {org.mozilla.javascript.ScriptableObject} ScriptableObject
 * @description __`Rhino`__ This is the default implementation of the Scriptable interface in Rhino.
 *
 * @see {@link https://goo.gl/RVwY6V|Rhino ScriptableObject}
 *
 *////

/**
 *
 * @typedef     {java.lang.Class<Scriptable>} Class
 * @description __`Rhino`__ JavaScript object created by the Rhino Javascript engine.
 *
 * @extends ScriptableObject
 * @see {@link https://goo.gl/0FxrW3|Rhino ScriptableObject.defineClass}
 *
 *////

/**
 *
 * @typedef     {ScriptableObject} NativeApi
 * @description __`Rhino`__ JavaScript objects that allow access to the MCPE library
 *              via BlockLauncher and the Rhino JavaScript engine.
 *
 * @property {Class} NativeBlockApi    - public static class for the {@link Block|Block API}
 * @property {Class} NativeEntityApi   - public static class for the {@link Entity|Entity API}
 * @property {Class} NativeItemApi     - public static class for the {@link Item|Item API}
 * @property {Class} NativeLevelApi    - public static class for the {@link Level|Level API}
 * @property {Class} NativeModPEApi    - public static class for the {@link ModPE|ModPE API}
 * @property {Class} NativePlayerApi   - public static class for the {@link Player|Player API}
 * @property {Class} NativeRendererApi - public static class for the {@link Renderer|Renderer API}
 * @property {Class} NativeServerApi   - public static class for the {@link Server|Server API}
 *
 * @see {@link https://goo.gl/vpuxfe|Rhino Project}
 * @see {@link https://goo.gl/fbqeqS|Rhino Docs}
 *
 *////

/**
 *
 * @typedef     {number} double
 * @description __`Java`__ A double-precision 64-bit floating point
 *
 * @see {@link https://goo.gl/X1Onst|Java Data Types}
 *
 *////

/**
 *
 * @typedef     {number} float
 * @description __`Java`__ A single precision 32-bit floating point
 *
 * @see {@link https://goo.gl/X1Onst|Java Data Types}
 *
 *////

/**
 *
 * @typedef     {number} short
 * @description __`Java`__ A 16-bit integer value
 *
 * @see {@link https://goo.gl/X1Onst|Java Data Types}
 *
 *////

/**
 *
 * @typedef     {number} int
 * @description __`Java`__ A 32-bit integer value
 *
 * @see {@link https://goo.gl/X1Onst|Java Data Types}
 *
 *////

/**
 *
 * @typedef     {number} long
 * @description __`Java`__ A 64-bit integer value
 *
 * @see {@link https://goo.gl/X1Onst|Java Data Types}
 *
 *////

/**
 *
 * @typedef    {number} byte
 * @description __`Java`__ An 8-bit integer value
 *
 * @see {@link https://goo.gl/X1Onst|Java Data Types}
 *
 *////

/**
 *
 * @typedef     {string} char
 * @description __`Java`__ A single 16-bit Unicode character
 *
 * @see {@link https://goo.gl/X1Onst|Java Data Types}
 *
 *////

/**
 *
 * @typedef     {string} string
 * @description __`Java`__ A string of characters
 *
 * @see {@link https://goo.gl/HTKUtf|java.lang.String}
 *
 *////

/**
 *
 * @typedef     {java.util.HashMap<K,V>} HashMap
 * @description __`Java`__ A hash table based implementation of the Map interface.
 *              Data is stored as key-value pairs.
 *
 * @see {@link https://goo.gl/hLBli9|java.util.HashMap}
 *
 *////

/**
 *
 * @typedef     {number} number
 * @description __`JavaScript`__ According to the ECMAScript standard, there is only
 *              one number type: the double-precision 64-bit binary format IEEE 754
 *              value (number between -(2<sup>53</sup> -1) and 2<sup>53</sup> -1).
 *
 * @see {@link https://goo.gl/OBvlsb|JavaScript Number}
 *
 *////

/**
 *
 * @typedef     {boolean} boolean
 * @description __`JavaScript`__ A logical entity with two values: true, and false.
 *
 * @see {@link https://goo.gl/pzCjsZ|JavaScript Boolean}
 *
 *////