{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "hourlyRate": {
            "type": "object",
            "properties": {
                "amount": {
                    "type": "integer"
                },
                "currency": {
                    "type": "string"
                }
            },
            "required": [
                "amount",
                "currency"
            ]
        },
        "clientId": {
            "type": "string"
        },
        "workspaceId": {
            "type": "string"
        },
        "billable": {
            "type": "boolean"
        },
        "memberships": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "userId": {
                        "type": "string"
                    },
                    "hourlyRate": {
                        "type": "null"
                    },
                    "costRate": {
                        "type": "null"
                    },
                    "targetId": {
                        "type": "string"
                    },
                    "membershipType": {
                        "type": "string"
                    },
                    "membershipStatus": {
                        "type": "string"
                    }
                },
                "required": [
                    "userId",
                    "hourlyRate",
                    "costRate",
                    "targetId",
                    "membershipType",
                    "membershipStatus"
                ]
            }
        },
        "color": {
            "type": "string"
        },
        "estimate": {
            "type": "object",
            "properties": {
                "estimate": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            },
            "required": [
                "estimate",
                "type"
            ]
        },
        "archived": {
            "type": "boolean"
        },
        "clientName": {
            "type": "string"
        },
        "note": {
            "type": "string"
        },
        "timeEstimate": {
            "type": "object",
            "properties": {
                "estimate": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "resetOption": {
                    "type": "null"
                },
                "active": {
                    "type": "boolean"
                },
                "includeNonBillable": {
                    "type": "boolean"
                }
            },
            "required": [
                "estimate",
                "type",
                "resetOption",
                "active",
                "includeNonBillable"
            ]
        },
        "estimateReset": {
            "type": "null"
        },
        "template": {
            "type": "boolean"
        },
        "public": {
            "type": "boolean"
        }
    },
    "required": [
        "id",
        "name",
        "hourlyRate",
        "clientId",
        "workspaceId",
        "billable",
        "memberships",
        "color",
        "estimate",
        "archived",
        "duration",
        "clientName",
        "note",
        "costRate",
        "timeEstimate",
        "budgetEstimate",
        "estimateReset",
        "template",
        "public"
    ],
    "version": 1
}
