{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://scimon.co/rfq-intake.schema.json",
  "title": "SCiMon.co RFQ",
  "description": "What a complete RFQ to rfq@scimon.co contains. Send it as an email: put these fields in the body (plain text or this JSON) and attach the files. One RFQ per email. Never include ITAR, EAR, CUI or other export-controlled technical data.",
  "type": "object",
  "required": ["company", "contact_name", "contact_email", "parts", "need_by", "ship_to"],
  "properties": {
    "company": { "type": "string", "description": "Buyer's company name." },
    "contact_name": { "type": "string" },
    "contact_email": { "type": "string", "format": "email", "description": "Where quotes and questions go. Replies stay in the same email thread." },
    "contact_phone": { "type": "string" },
    "project_name": { "type": "string", "description": "Optional internal project or program name." },
    "stage": { "type": "string", "enum": ["design", "prototype", "pilot", "production", "box build"], "description": "Where the work is today." },
    "parts": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": ["part_number", "description", "quantities", "files"],
        "properties": {
          "part_number": { "type": "string" },
          "revision": { "type": "string" },
          "description": { "type": "string", "description": "What the part is and what it does." },
          "process": {
            "type": "string",
            "description": "Preferred process if known.",
            "enum": ["CNC machining", "sheet metal", "die casting", "injection molding", "PCBA", "cable assembly", "aluminum extrusion", "custom rubber", "3D printing", "subassembly", "box build", "design services", "not sure"]
          },
          "material": { "type": "string", "description": "Material and grade, e.g. 6061-T6 aluminum." },
          "finish": { "type": "string", "description": "Finish or coating, e.g. black anodize, powder coat RAL 9005." },
          "critical_tolerances": { "type": "string", "description": "Tightest tolerances and critical features, if not clear on the drawing." },
          "quantities": {
            "type": "array",
            "minItems": 1,
            "items": { "type": "integer", "minimum": 1 },
            "description": "Quantity breaks to quote, e.g. [10, 100, 1000]."
          },
          "annual_volume": { "type": "integer", "minimum": 1, "description": "Expected yearly volume, if known." },
          "files": {
            "type": "array",
            "minItems": 1,
            "items": { "type": "string" },
            "description": "Attached file names. Preferred: STEP (.step/.stp) plus a PDF drawing with tolerances. For PCBA: Gerbers, BOM (CSV or XLSX) and pick-and-place file."
          },
          "certifications_required": { "type": "array", "items": { "type": "string" }, "description": "Certifications the supplier must hold, e.g. ISO 9001, ISO 13485, IATF 16949, UL." },
          "inspection_requirements": { "type": "string", "description": "e.g. FAI, CMM report, certificate of conformance, material certs." }
        }
      }
    },
    "need_by": { "type": "string", "format": "date", "description": "Date parts are needed at the ship-to location (YYYY-MM-DD)." },
    "quote_due": { "type": "string", "format": "date", "description": "When you need quotes back, if there is a deadline." },
    "ship_to": { "type": "string", "description": "City, state/province and country. Quotes are EXW factory; the buyer arranges freight." },
    "target_price": { "type": "string", "description": "Optional target unit price and currency." },
    "preferred_regions": { "type": "array", "items": { "type": "string", "enum": ["Asia", "Mexico", "USA", "no preference"] } },
    "nda_required": { "type": "boolean", "description": "True if your own NDA must be signed before files are shared. All SCiMon.co partners are already under a mutual NDA with SCiMon.co." },
    "notes": { "type": "string" }
  }
}
