message: Reformat CanvasLayer
diff: /**
  * An abstract pattern for primary layers of the game canvas to implement
  - * (extends: `PIXI.Container`)
  */
  -declare class CanvasLayer extends PIXI.Container {
  +declare abstract class CanvasLayer extends PIXI.Container {
  + constructor();
  +
  /**
  * Track whether the canvas layer is currently active for interaction
  * @defaultValue `false`
  */
  - _active: boolean;
  + protected _active: boolean;
  /**
  * @defaultValue `false`
  @@ -19,52 +20,64 @@ declare class CanvasLayer extends PIXI.Container {
  */
  interactiveChildren: boolean;
  + /* -------------------------------------------- */
  + /* Properties and Attributes
  + /* -------------------------------------------- */
  +
  /**
  - * The canonical name of the CanvasLayer
  - * @remarks Foundry defines this as a getter, but since CanvasLayer extends
  - * PIXI.Container, it has to be a property.
  + * Customize behaviors of this CanvasLayer by modifying some behaviors at a class level.
  */
  - name: string;
  + static get layerOptions(): CanvasLayer.LayerOptions;
  - constructor();
  + /* -------------------------------------------- */
  /**
  * Return a reference to the active instance of this canvas layer
  */
  static get instance(): CanvasLayer;
  + /* -------------------------------------------- */
  +
  /**
  - * Customize behaviors of this CanvasLayer by modifying some behaviors at a
  - * class level.
  + * The canonical name of the CanvasLayer
  + * @remarks Foundry defines this as a getter, but since CanvasLayer extends PIXI.Container, it has to be a property.
  */
  - static get layerOptions(): CanvasLayer.LayerOptions;
  + name: string;
  +
  + /* -------------------------------------------- */
  + /* Rendering
  + /* -------------------------------------------- */
  /**
  - * Activate the CanvasLayer, deactivating other layers and marking this
  - * layer's children as interactive.
  - * @returns The layer instance, now activated
  + * Deconstruct data used in the current layer in preparation to re-draw the canvas
  */
  - activate(): this;
  + tearDown(): void;
  +
  + /* -------------------------------------------- */
  /**
  - * Deactivate the CanvasLayer, removing interactivity from its children.
  - * @returns The layer instance, now inactive
  + * Draw the canvas layer, rendering its internal components and returning a Promise
  + * The Promise resolves to the drawn layer once its contents are successfully rendered.
  */
  - deactivate(): void;
  + draw(): Promise<this | PlaceableObject[]>;
  +
  + /* -------------------------------------------- */
  + /* Methods
  + /* -------------------------------------------- */
  /**
  - * Draw the canvas layer, rendering its internal components and returning a
  - * Promise
  - * The Promise resolves to the drawn layer once its contents are successfully
  - * rendered.
  + * Activate the CanvasLayer, deactivating other layers and marking this layer's children as interactive.
  + * @returns The layer instance, now activated
  */
  - draw(): Promise<this | PlaceableObject[]>;
  + activate(): this;
  +
  + /* -------------------------------------------- */
  /**
  - * Deconstruct data used in the current layer in preparation to re-draw the
  - * canvas
  + * Deactivate the CanvasLayer, removing interactivity from its children.
  + * @returns The layer instance, now inactive
  */
  - tearDown(): void;
  + deactivate(): void;
  }
  declare namespace CanvasLayer {
  