fusible 0.18.0

Electronic linter: a fuse that blows to block firmware code generation
//! Annotated starter manifest for `fusible init`.

/// Annotated, clean template string for `fusible init`.
pub(super) const DEFAULT_MANIFEST: &str = r#"# Fusible project manifest
# Docs: https://github.com/KonoLabs/Fusible

name: sensor-node

# Circuit boards, by name. Commands take a board name as their target.
boards:
  main:
    # Board entry point (.tsx or circuit.json)
    entry: hardware/index.tsx
    # Output directory for board artifacts
    out_dir: dist
    # Dev server port for interactive previewer
    port: 3020
    # Target silicon identifier (e.g., stm32g431, esp32-s3, rp2040)
    mcu: stm32g431

# Firmware crates, by name. Each one runs on one board.
firmware:
  app:
    # Board this firmware runs on (optional with a single board)
    board: main
    # Directory containing firmware crate or code
    path: firmware
    # Firmware framework: embassy | cortex-m | esp-idf
    framework: embassy
    # Destination for auto-generated pin bindings
    pins_rs: firmware/src/pins.rs
    # Optional command to build firmware
    build_cmd: cargo build

# Physical bodies, by name: authored in any CAD tool, or generated by Fusible.
# bodies:
#   case:
#     source: bodies/case.step    # authored file; Fusible reads it, never overwrites it
#     build: python bodies/case.py  # optional: command that produces `source`
#   enclosure:
#     generate: enclosure         # Fusible owns this body and regenerates it
#     board: main                 # board it belongs to (optional with a single board)
#     format: step                # step | stl | glb | brep | all
#     out_dir: dist/bodies
#     wall_thickness: 2.0
#     height: 20.0                # derived from the board stack when omitted
#     cutouts: true               # notch walls where components reach the board edge
#     ventilation: none           # none | grid | slots
#     mounting: true              # screw bosses under each pcb_hole
"#;