g | x | w | all
Bytes Lang Time Link
071Vyxal 3 j240904T144509Zpacman25
07405AB1E240506T080301ZKevin Cr
120Ruby240505T014637ZLevel Ri
053Charcoal240504T201031ZNeil

Vyxal 3 j, 71 bytes

"ᵇḟ}₇Ḟ≠[ḃṖᵉṖΩḂΦᴿ-^4ϩṙḂṖ=q₂$↑=TỌ₂⊻¥∥»ΦB1Ṛ⌐ɾḄᵏᵂᵞ↑Ḟ¿uȦ₈≤“12ykD"[=])+("⊻i6÷

Try it Online!

Similar compression trick, but the lines constant and some compression advantages save a few bytes

05AB1E, 74 bytes

•2%jи
Aß#™`@¬:¨úëH±ç†∍{Þθ¶@M/Š[cmγ¾?N¨‹}ÚŦaoé€-èα¤ÆÖÑMÓ•"_ \/|
-[=])+("Åв

Outputs as a list of characters.

Try it online. (The J in the footer is to join all characters together to a single string. Feel free to remove it to see the actual result.)

Explanation:

Compressing the entire thing (using the default ASCII-art compression technique) seems to be the shortest..

•2%jи\nAß#™`@¬:¨úëH±ç†∍{Þθ¶@M/Š[cmγ¾?N¨‹}ÚŦaoé€-èα¤ÆÖÑMÓ•
                  # Push compressed integer 5469072357431047243168628920623877613141385035707549597465492997649394965642722070200968674642555323502935338931850326894978849043270
 "_ \/|\n-[=])+(" # Push this string
  Åв              # Convert the large integer to this custom base,
                  # basically converting it to base-length, and indexing into the string
                  # (after which the list of characters is output implicitly as result)

See this 05AB1E tip of mine (section How to compress large integers?) to understand why •2%jи\nAß#™`@¬:¨úëH±ç†∍{Þθ¶@M/Š[cmγ¾?N¨‹}ÚŦaoé€-èα¤ÆÖÑMÓ• is 5469072357431047243168628920623877613141385035707549597465492997649394965642722070200968674642555323502935338931850326894978849043270.

Ruby, 122 120 bytes

-3.upto(2){|j|puts (k=j.abs)<1?'|--[=| (+) [=|-[]-|':'`D;:>hXQQQYVV`D;:>f'.bytes.map{|i|'|  _\/  _'[i*6/6**k%6*k/j]}*''}

Try it online!

This prints the centre row as a literal, and uses two slightly different base-6 encodings for the upper and lower rows as follows

      Upper Lower
    0   |     |
    1   _   space
    2 space space
    3 space   _
    4   /     \
    5   \     /  

This is the same length as the output, so it just beats the "print the literal" solution. It can probably be shortened a bit, but printing the literal with a few naive substitutions might be a shorter approach.

Charcoal, 53 bytes

“ HX⁵⌊ω#⊘δ⌈L¿≦ M”‖MC¹³¦⁰M²↑-[=M²↑“ ↙~⌕EF℅≔?⌊Σ⁵À⌈Xζ“2~

Try it online! Link is to verbose version of code. Explanation:

“ HX⁵⌊ω#⊘δ⌈L¿≦ M”

Draw the left half of the outside of a wing using a compressed string.

‖M

Reflect to complete the wing.

C¹³¦⁰

Copy it to the other wing.

M²↑-[=

Change the left wing to be an inside view.

M²↑“ ↙~⌕EF℅≔?⌊Σ⁵À⌈Xζ“2~

Draw the body using a compressed string.