laminate 0.1.1

Progressive data shaping for Rust — type coercion, format detection, and fault-tolerant deserialization built on serde
Documentation
{
  "order_id": "ORD-2026-00142",
  "customer": {
    "id": "cust_789",
    "name": "Bob Smith",
    "email": "bob@example.com",
    "loyalty_tier": "gold"
  },
  "items": [
    {"sku": "WDG-001", "name": "Widget A", "quantity": 2, "unit_price": "12.99", "subtotal": "25.98", "weight_kg": "0.5"},
    {"sku": "GDG-002", "name": "Gadget D", "quantity": "1", "unit_price": 99.00, "subtotal": 99.00, "weight_kg": 2.0, "gift_wrap": true},
    {"sku": "BLT-001", "name": "Bolt M6x20", "quantity": "500", "unit_price": "0.12", "subtotal": "60.00", "weight_kg": "1.6", "hazmat": false}
  ],
  "shipping": {
    "method": "express",
    "cost": "15.99",
    "estimated_days": "2",
    "tracking": null,
    "address": {"line1": "123 Main St", "city": "Springfield", "state": "IL", "zip": "62701", "country": "US"}
  },
  "payment": {
    "method": "credit_card",
    "last_four": "4242",
    "amount": "200.97",
    "currency": "USD",
    "status": "captured",
    "transaction_id": "txn_abc123"
  },
  "discounts": [
    {"code": "GOLD10", "type": "percentage", "value": "10", "applied_to": "subtotal"},
    {"code": "FREESHIP", "type": "fixed", "value": "15.99", "applied_to": "shipping"}
  ],
  "totals": {
    "subtotal": "184.98",
    "discount": "-18.50",
    "shipping": "0.00",
    "tax": "12.34",
    "total": "178.82"
  },
  "created_at": "2026-03-31T14:30:00Z",
  "updated_at": "2026-03-31T14:35:00Z",
  "notes": null
}