paths:
  /print/:
    get:
      summary: Direct print using query parameters
      tags:
        - board-print
      parameters:
        - name: printerId
          in: query
          required: true
          schema:
            type: string
          description: Printer ID
        - name: data
          in: query
          required: true
          schema:
            type: string
          description: GRF string to print
      responses:
        '200':
          description: Successful print
          content:
            text/plain:
              schema:
                type: string
    post:
      summary: Direct print using request body
      tags:
        - board-print
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                printerId:
                  type: string
                  description: Printer ID
                data:
                  type: string
                  description: GRF string to print
      responses:
        '200':
          description: Successful print
          content:
            text/plain:
              schema:
                type: string
  /print-label/{id}:
    get:
      summary: Print label for released version board
      tags:
        - board-print
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: Label ID
        - name: orientation
          in: query
          required: false
          schema:
            type: string
          description: Orientation of the label
        - name: mirror
          in: query
          required: false
          schema:
            type: boolean
          description: Whether to mirror the label
        - name: upsideDown
          in: query
          required: false
          schema:
            type: boolean
          description: Whether to print the label upside down
        - name: printerId
          in: query
          required: true
          schema:
            type: string
          description: Printer ID
      responses:
        '200':
          description: Successful print
          content:
            text/plain:
              schema:
                type: string
  /print-label-draft/{id}:
    get:
      summary: Print label for draft version board
      tags:
        - board-print
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: Label ID
        - name: orientation
          in: query
          required: false
          schema:
            type: string
          description: Orientation of the label
        - name: mirror
          in: query
          required: false
          schema:
            type: boolean
          description: Whether to mirror the label
        - name: upsideDown
          in: query
          required: false
          schema:
            type: boolean
          description: Whether to print the label upside down
        - name: printerId
          in: query
          required: true
          schema:
            type: string
          description: Printer ID
      responses:
        '200':
          description: Successful print
          content:
            text/plain:
              schema:
                type: string
