[
  {
    "label": "Vendor", 
    "type_id": 4, 
    "required": true, 
    "field_name": "vendor_id", 
    "data_column": "vendor_id", 
    "order_index": 1,
    "options": {
      "source": "/api/vendors",
      "value_field": "id",
      "label_field": "name",
      "searchable": true
    }
  },
  {
    "label": "Invoice Number", 
    "type_id": 1, 
    "required": true, 
    "field_name": "invoice_number", 
    "data_column": "invoice_number", 
    "order_index": 2
  },
  {
    "label": "Invoice Date", 
    "type_id": 3, 
    "required": true, 
    "field_name": "invoice_date", 
    "data_column": "invoice_date", 
    "order_index": 3
  },
  {
    "label": "Due Date", 
    "type_id": 3, 
    "required": true, 
    "field_name": "due_date", 
    "data_column": "due_date", 
    "order_index": 4
  },
  {
    "label": "Amount", 
    "type_id": 10, 
    "required": true, 
    "field_name": "amount", 
    "data_column": "amount", 
    "order_index": 5,
    "validation": {
      "min": 0.01
    }
  },
  {
    "label": "Expense Account", 
    "type_id": 4, 
    "required": true, 
    "field_name": "expense_account_id", 
    "data_column": "expense_account_id", 
    "order_index": 6,
    "options": {
      "source": "/api/finance/accounts?type=expense",
      "value_field": "id",
      "label_field": "name_with_code"
    }
  },
  {
    "label": "Description", 
    "type_id": 7, 
    "required": false, 
    "field_name": "description", 
    "data_column": "description", 
    "order_index": 7
  },
  {
    "label": "Auto-post to GL", 
    "type_id": 5, 
    "required": false, 
    "field_name": "auto_post_gl", 
    "data_column": "auto_post_gl", 
    "order_index": 8,
    "default_value": true,
    "help_text": "Automatically create GL entry when bill is saved"
  }
]