{
  "services": [
    {
      "name": "Orders",
      "description": "Replace with a sentence about the service, or remove this line.",
      "assemblies": ["Contoso.Orders.Domain.dll"],
      "connectionString": "Orders",
      "domain": {
        "streams":     [ { "type": "Contoso.Orders.Domain.OrderId" } ],
        "events":      [ { "namespace": "Contoso.Orders.Domain.Events" } ],
        "aggregates":  [ { "type": "Contoso.Orders.Domain.Order", "id": "Contoso.Orders.Domain.OrderId" } ],
        "projections": [ { "type": "Contoso.Orders.Domain.OrderSummary" } ],
        "naming":      { "events": "class-name", "aggregates": "class-name", "projections": "class-name" },
        "labels":      { "projections": { "one": "summary", "many": "summaries" } },
        "fold":        { "methods": ["Apply"], "version": "Version" },
        "serializer":  { "kind": "system-text-json" },
        "hidden":      ["Id", "Version"]
      },
      "store": {
        "events": {
          "table": "dbo.Events",
          "streamId": "StreamName", "sequence": "StreamPosition", "type": "EventType", "payload": "Body",
          "written": "TODATETIMEOFFSET(AppendedAt, 0)", "writtenBy": "AppendedBy", "id": "Id", "metadata": "Metadata"
        },
        "snapshots": [
          {
            "table": "dbo.OrderSnapshots", "typeName": "Order",
            "streamId": "StreamName", "id": "OrderId", "version": "Version", "payload": "State",
            "created": "TODATETIMEOFFSET(CreatedAt, 0)", "updated": "TODATETIMEOFFSET(UpdatedAt, 0)"
          },
          {
            "table": "dbo.OrderSummaries", "where": "IsDeleted = 0", "kind": "projection", "typeName": "OrderSummary",
            "streamId": "StreamName", "id": "OrderId", "version": "Version", "payload": "Summary",
            "updated": "TODATETIMEOFFSET(UpdatedAt, 0)"
          }
        ]
      }
    }
  ]
}
